public LoginPageVM( IPixivSettingStore settingStore, PixivSetting setting, PixivClientService clientService, EHunterDbContextResolver <EHunterDbContext> eHunterContextResolver, EHunterDbContextResolver <PixivDbContext> pixivContextResolver) { _settingStore = settingStore; _setting = setting; _clientService = clientService; _connectionMode = _setting.ConnectionMode.Value; string?savedToken = settingStore.RefreshToken; if (!string.IsNullOrEmpty(savedToken)) { RefreshToken = savedToken; LoginWithToken(); } InitDatabase(); async void InitDatabase() { await Task.WhenAll(eHunterContextResolver.InitializeTask, pixivContextResolver.InitializeTask).ConfigureAwait(true); DatabaseInitState = eHunterContextResolver.Resolve() is not null && pixivContextResolver.Resolve() is not null; CheckInitialize(); } }
public DownloadManager(PixivSetting setting, DownloaderService downloader, ICustomResolver <PixivClient> clientResolver) { _setting = setting; Downloader = downloader; _settingSubscriber = _setting.MaxDownloadsInParallel.Subscribe( _ => CheckStartNew()); ResumeDownloads(); async void ResumeDownloads() { var client = clientResolver.Resolve(); try { await foreach (int id in downloader.GetResumableDownloads().ConfigureAwait(true)) { var illust = await client.GetIllustDetailAsync(id).ConfigureAwait(true); var vm = GetOrAddDownloadable(illust); vm.SetWaiting(); QueueOne(vm); } } catch { return; } } }
public PixivClientService(IProxySetting proxySetting, PixivSetting pixivSetting) { _subscribeDisposable = proxySetting.Proxy .CombineLatest(pixivSetting.ConnectionMode, (proxy, mode) => mode switch { PixivConnectionMode.SystemProxy => new HttpClientHandler { UseProxy = true, Proxy = HttpClient.DefaultProxy }, PixivConnectionMode.ApplicationProxy => new HttpClientHandler { UseProxy = true, Proxy = proxy }, PixivConnectionMode.NoProxy => new HttpClientHandler { UseProxy = false }, PixivConnectionMode.DirectConnect => (HttpMessageHandler) new DirectConnectHandler(), _ => throw new InvalidOperationException($"Unknown enum value {mode}.") })
public PixivSettingsVM(PixivSetting settings, ICustomResolver <PixivClient> clientResolver) { _settings = settings; _maxDownloadsInParallel = _settings.MaxDownloadsInParallel.Value; _connectionMode = _settings.ConnectionMode.Value; Client = clientResolver.Resolve(); }