Пример #1
0
        private List <BackupContainer <T> > loadBackupContainers <T>(string fileName, string backupName)
        {
            List <BackupContainer <T> > result = new List <BackupContainer <T> >();
            StreamReader reader = new StreamReader(fileName, Encoding.UTF8);

            try
            {
                reader.BaseStream.Position = 0;
                while (!reader.EndOfStream)
                {
                    string json = reader.ReadLine();
                    BackupContainer <object> res      = HelperSerialization.JSONDeserialization <BackupContainer <object> >(json);
                    BackupContainer <T>      clearRes = new BackupContainer <T>(res.Id, default, res.TimeString, res.Reason, res.ByWho);
Пример #2
0
        private void makeBackup(string name, object obj, object id, string reasonId = "", string byWho = "", bool delete = false)
        {
            string idStr      = id.ToString();
            string timeString = DateTime.Now.ToString(this._configDateTimeFormat);
            string dir        = $"{this._configDirectoryBackups}/{name}/";
            string fileName   = $"{dir}/stack.json";
            string backup     = "";

            try
            {
                BackupContainer <object> bc = new BackupContainer <object>(idStr, obj, timeString, reasonId, byWho);
                bc.Delete = delete;
                backup    = HelperSerialization.JSONSerialization(bc);
                lock (this.getLocker(name))
                {
                    Directory.CreateDirectory(dir);
                    StreamWriter writer = new StreamWriter(fileName, true, Encoding.UTF8);
                    long         size   = writer.BaseStream.Length;
                    writer.WriteLine(backup);
                    writer.Flush();
                    writer.Close();
                    if (size > 8000000) //больше 8 мб
                    {
                        Directory.CreateDirectory($"{dir}/stacks");
                        string newFileName = $"{dir}/stacks/{timeString}.json";
                        File.Move(fileName, newFileName);
                    }
                }
            }
            catch (Exception e)
            {
                if (this._logger != null)
                {
                    this._logger.Error(e, String.Format("Error of making backup '{0}' obj='{1}'.", name, obj.ToJSON()));
                }
                return;
            }
            if (this._logger != null)
            {
                this._logger.Info(String.Format("Made backup '{0}'.", name));
            }
        }