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;
}
}
}