ConfigParams.cs

43 lines | 1.387 kB Blame History Raw Download
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.IO;
using System.Windows.Forms;

using RW_Tool.Interface.Custom;

namespace ConfigurationTool.Config.Custom
{    
    public class ConfigParams<T1, T2>
    {
        //Имя или полный путь к файлу конфигурации
        public string ConfigFile { set; get; }
        //Флаг: испоьзовать ли в пути к файлу путь к .exe приложению
        public bool UseApplicationPathPrefix { set; get; } = true;

        //Формат в котором будет храниться конфиг
        public EnumFormat Format { set; get; } = EnumFormat.XML;

        //Трансформатор для преобразования формата из T1 в T2
        public ITransformator<T1, T2> Transformator { set; get; }

        //Путь по которому выполняются обращению к конфигу
        public string ConfigPath => (UseApplicationPathPrefix
            ?
             Path.Combine(Application.StartupPath, ConfigFile)
            :
             ConfigFile
            );


        public ConfigParams(string ConfigFile, ITransformator<T1, T2> Transformator)
        {
            this.ConfigFile = ConfigFile;
            this.Transformator = Transformator;
        }
    }
}