示例#1
0
 public void Set(ConfigFull <T> configNew)
 {
     config           = configNew.config;
     LastModification = configNew.LastModification;
     Version          = configNew.Version;
     TypeConfigUnit   = configNew.TypeConfigUnit;
 }
示例#2
0
 public void Set(ConfigFull <ConfigAbstract> config)
 {
     if (Get == null)
     {
         Get = new ConfigFull <ConfigAbstract>();
     }
     Get.Set(new ConfigFull <ConfigAbstract>(config));
     EvntChanged?.Invoke(this, new BoolEventArgs(true));
 }
示例#3
0
        private ConfigFull <ConfigAbstract> ReadSerializedConfig(string filePath)
        {
            ConfigFull <ConfigAbstract> config = null;

            if (!(File.Exists(filePath)))
            {
                return(config);
            }

            FileInfo fi = new FileInfo(filePath);

            if (fi.Length == 0)
            {
                return(config);
            }


            BinaryFormatter formatter = new BinaryFormatter();
            string          message   = string.Empty;

            try
            {
                message += $"Try to read '{filePath}':{Environment.NewLine}";
                using (FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate))
                {
                    config   = (ConfigFull <ConfigAbstract>)formatter.Deserialize(fs);
                    message += "Success!";
                }
            }
            catch (Exception excpt)
            {
                message += $"{excpt.Message}:{Environment.NewLine}{excpt.ToString()}";
            }

            EvntInfoMessage?.Invoke(this, new TextEventArgs(message));
            EvntCollectionFull?.Invoke(this, new BoolEventArgs(true));//collection is full

            return(config);
        }
示例#4
0
        public void Write(string filePath, ConfigFull <ConfigAbstract> config)
        {
            string newFileName = Path.Combine(CommonConst.LocalBackupFolder, $"{DateTime.Now.ToString("yyyy-MM-dd HHmmss")} {Path.GetFileName(filePath)}.bak");

            CreateDirectory(CommonConst.LocalBackupFolder);

            Move(filePath, newFileName);

            EvntInfoMessage?.Invoke(this, new TextEventArgs($"Try to write '{nameof(ConfigFull<ConfigAbstract>)}' in file '{filePath}'"));
            using (FileStream fileStream = new FileStream(filePath, FileMode.OpenOrCreate))
            {
                try
                {
                    BinaryFormatter formatter = new BinaryFormatter();
                    formatter.Serialize(fileStream, config);

                    EvntInfoMessage?.Invoke(this, new TextEventArgs($"{nameof(ConfigFull<ConfigAbstract>)} was written."));
                }
                catch (Exception err)
                {
                    EvntInfoMessage?.Invoke(this, new TextEventArgs($"Writing error:{Environment.NewLine}{err.ToString()}"));
                }
            }
        }
示例#5
0
 public ConfigFull(ConfigFull <T> configNew)
 {
     Set(configNew);
 }
示例#6
0
 public void ReadConfig(string filePath)
 {
     config = ReadSerializedConfig(filePath);
 }