Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        /// <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));
            }
        }
Exemplo n.º 3
0
        /// <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);
            }
        }
Exemplo n.º 4
0
        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;
        }