using System.Net; using YandexMusic.API.Common.Debug; using YandexMusic.API.Common.Providers; using YandexMusic.API.Models.Account; using YandexMusic.API.Requests.Common; namespace YandexMusic.API.Common { /// /// Хранилище данных пользователя /// public class AuthStorage { #region Свойства /// /// Http-контекст /// public HttpContext Context { get; } public DebugSettings Debug { get; set; } /// /// Флаг авторизации /// public bool IsAuthorized { get; internal set; } /// /// Идентификатор устройства /// public string DeviceId { get; set; } = "csharp"; /// /// Токен авторизации /// public string Token { get; internal set; } /// /// Аккаунт /// public YAccount User { get; set; } /// /// Провайдер запросов /// public IRequestProvider Provider { get; } /// /// Токен доступа /// public YAccessToken AccessToken { get; set; } internal YAuthToken AuthToken { get; set; } #endregion Свойства /// /// Конструктор /// public AuthStorage(DebugSettings settings = null) { User = new YAccount(); Context = new HttpContext(); Debug = settings; Provider = new DefaultRequestProvider(this); if (Debug is { ClearDirectory: true }) { Debug.Clear(); } } /// /// Конструктор /// public AuthStorage(IRequestProvider provider, DebugSettings settings = null) { User = new YAccount(); Context = new HttpContext(); Debug = settings; Provider = provider; if (Debug is { ClearDirectory: true }) { Debug.Clear(); } } /// /// Установка прокси для пользователия /// /// Прокси public void SetProxy(IWebProxy proxy) { Context.WebProxy = proxy; } } }