using System; using System.ComponentModel; using System.IO; using dotenv.net; using dotenv.net.Utilities; namespace Pf2e.Scrapper; /// /// Настройки программы. /// internal class ApplicationSettings { /// /// Конструктор класса . /// public ApplicationSettings() { DotEnv.Load(); DataDirPath = EnvReader.GetStringValue("DATA_DIR"); OutputDirPath = EnvReader.GetStringValue("OUTPUT_DIR"); DatabaseConnection = EnvReader.GetStringValue("DATABASE_CONNECTION"); MaxThreads = Convert.ToInt32(EnvReader.GetStringValue("MAX_THREADS")); } #region Настройки из .env /// /// Путь к папке с входными данными. /// [Browsable(true)] [ReadOnly(true)] [DisplayName("Путь к папке с входными данными.")] [Description("Редактирование через .env-файл.")] public string DataDirPath { get; } /// /// Папка в входными данными. /// [Browsable(false)] public DirectoryInfo DataDir => new(DataDirPath); /// /// Путь к папке для сохранения результатов. /// [Browsable(true)] [ReadOnly(true)] [DisplayName("Путь к папке для сохранения результатов.")] [Description("Редактирование через .env-файл.")] public string OutputDirPath { get; } /// /// Папка для сохранения результатов. /// [Browsable(false)] public string OutputDir => new(OutputDirPath); /// /// Строка подключения к базе данных. /// [Browsable(true)] [ReadOnly(true)] [DisplayName("Строка подключения к базе данных.")] [Description("Редактирование через .env-файл.")] public string DatabaseConnection { get; } /// /// Максимальное количество потоков. /// [Browsable(true)] [ReadOnly(true)] [DisplayName("Максимальное количество потоков.")] [Description("Редактирование через .env-файл.")] public int MaxThreads { get; } #endregion #region Основные настройки // #endregion }