/// <summary> /// Создать дефолтные настройки для новых типов. /// </summary> /// <param name="query">Коллекция уже имеющихся настроек.</param> /// <returns>Коллекция всех настроек.</returns> private static void CreateDefaultMangaSettings(List <MangaSetting> query) { var settings = new List <MangaSetting>(query); var plugins = ConfigStorage.Plugins; foreach (var plugin in plugins) { if (settings.Any(s => Equals(s.Manga, plugin.MangaGuid))) { continue; } var setting = new MangaSetting { Folder = AppConfig.DownloadFolderName, Manga = plugin.MangaGuid, MangaName = plugin.Name, DefaultCompression = Compression.CompressionMode.Manga, Login = Login.Get(plugin.LoginType) }; setting.Save(); settings.Add(setting); } }
/// <summary> /// Создать дефолтные настройки для новых типов. /// </summary> /// <param name="context">Контекст подключения к БД.</param> /// <param name="databaseConfig">Настройки приложения.</param> /// <returns>Коллекция всех настроек.</returns> private static async Task CreateDefaultMangaSettings(RepositoryContext context, DatabaseConfig databaseConfig) { var settings = await context.Get <MangaSetting>().ToListAsync().ConfigureAwait(false); var plugins = ConfigStorage.Plugins; foreach (var plugin in plugins) { if (settings.Any(s => Equals(s.Manga, plugin.MangaGuid))) { continue; } var setting = new MangaSetting { Folder = AppConfig.DownloadFolderName, Manga = plugin.MangaGuid, MangaName = plugin.Name, DefaultCompression = Compression.CompressionMode.Manga, ProxySetting = await context.Get <ProxySetting>().SingleAsync(s => s.SettingType == ProxySettingType.Parent).ConfigureAwait(false), Login = await Login.Get(plugin.LoginType).ConfigureAwait(false) }; await context.Save(setting).ConfigureAwait(false); settings.Add(setting); } MangaSettingCache.Set(new MangaSettingCache(databaseConfig)); foreach (var setting in settings.Where(s => s.ProxySetting != null)) { MangaSettingCache.Set(new MangaSettingCache(setting)); } }
/// <summary> /// Создать дефолтные настройки для новых типов. /// </summary> /// <param name="context">Контекст подключения к БД.</param> /// <returns>Коллекция всех настроек.</returns> private static async Task CreateDefaultMangaSettings(RepositoryContext context) { var settings = await context.Get <MangaSetting>().ToListAsync().ConfigureAwait(false); var plugins = ConfigStorage.Plugins; foreach (var plugin in plugins) { if (settings.Any(s => Equals(s.Manga, plugin.MangaGuid))) { continue; } var setting = new MangaSetting { Folder = AppConfig.DownloadFolderName, Manga = plugin.MangaGuid, MangaName = plugin.Name, DefaultCompression = Compression.CompressionMode.Manga, Login = await Login.Get(plugin.LoginType).ConfigureAwait(false) }; await context.Save(setting).ConfigureAwait(false); settings.Add(setting); } }
public MangaSettingModel(MangaSetting setting) { this.mangaSetting = setting; this.Header = setting.MangaName; this.CompressionModes = Generic.GetEnumValues <Compression.CompressionMode>(); this.CompressManga = this.mangaSetting.CompressManga; this.DefaultCompression = this.mangaSetting.DefaultCompression; this.Folder = this.mangaSetting.Folder; this.OnlyUpdate = this.mangaSetting.OnlyUpdate; this.Login = new LoginModel(this.mangaSetting.Login) { IsEnabled = true }; this.FolderNamingStrategy = new FolderNamingModel(); this.FolderNamingStrategy.Strategies.Insert(0, new FolderNamingStrategyDto() { Name = "Использовать общие настройки" }); this.FolderNamingStrategy.SelectedGuid = mangaSetting.FolderNamingStrategy; }