44 lines
1.7 KiB
C#
44 lines
1.7 KiB
C#
namespace SfeduSchedule.Plugin.UniVerse;
|
|
|
|
/// <summary>
|
|
/// Результат поиска пользователя.
|
|
/// </summary>
|
|
/// <param name="Status">Статус выполнения поиска.</param>
|
|
/// <param name="SubId">Найденный Sub ID пользователя.</param>
|
|
/// <param name="ErrorMessage">Описание ошибки вышестоящего сервиса.</param>
|
|
public sealed record UniverseUserLookupResult(
|
|
UniverseUserLookupStatus Status,
|
|
string? SubId = null,
|
|
string? ErrorMessage = null)
|
|
{
|
|
/// <summary>
|
|
/// Успешный результат поиска.
|
|
/// </summary>
|
|
/// <param name="subId">Найденный Sub ID пользователя.</param>
|
|
/// <returns>Результат со статусом Found.</returns>
|
|
public static UniverseUserLookupResult Found(string subId) =>
|
|
new(UniverseUserLookupStatus.Found, subId);
|
|
|
|
/// <summary>
|
|
/// Результат для случая, когда пользователь не найден.
|
|
/// </summary>
|
|
/// <returns>Результат со статусом NotFound.</returns>
|
|
public static UniverseUserLookupResult NotFound() =>
|
|
new(UniverseUserLookupStatus.NotFound);
|
|
|
|
/// <summary>
|
|
/// Результат ошибки вышестоящего сервиса.
|
|
/// </summary>
|
|
/// <param name="message">Описание ошибки.</param>
|
|
/// <returns>Результат со статусом UpstreamError.</returns>
|
|
public static UniverseUserLookupResult UpstreamError(string message) =>
|
|
new(UniverseUserLookupStatus.UpstreamError, ErrorMessage: message);
|
|
}
|
|
|
|
public enum UniverseUserLookupStatus
|
|
{
|
|
Found,
|
|
NotFound,
|
|
UpstreamError
|
|
}
|