Exemplo n.º 1
0
        /// <summary>
        /// 保存所有记录
        /// </summary>
        /// <param name="_modeType">项目模式的类型</param>
        public void SaveRecords(ModeType _modeType)
        {
            /* 保存 */
            try
            {
                //获取所有的Record
                ObservableCollection <RecordData> _recordDatas = RecordDatas;

                //判断项目的模式
                switch (_modeType)
                {
                //如果项目是[默认模式]:把所有的Record,保存到/Record/Records.json文件中
                case ModeType.Default:
                    //把RecordData转换为RecordBaseData
                    List <RecordBaseData> _recordBaseDatas = new List <RecordBaseData>();
                    for (int i = 0; i < _recordDatas.Count; i++)
                    {
                        RecordBaseData _recordBaseData = RecordBaseData.DataToBaseData(_recordDatas[i]);
                        if (_recordBaseData != null)
                        {
                            _recordBaseDatas.Add(_recordBaseData);
                        }
                    }

                    //把RecordBaseData转换为json
                    string _recordsJsonText = JsonMapper.ToJson(_recordBaseDatas);

                    //Record文件的路径(文件夹+文件名+后缀)
                    string _recordsFilePath = RecordFolderPath + "/Records" + AppManager.Systems.ProjectSystem.OtherFileSuffix;

                    //把json文件保存到[Records.json]文件里
                    File.WriteAllText(_recordsFilePath, _recordsJsonText, Encoding.Default);
                    break;



                //如果项目是[协同合作模式]:把每一个Record,分别保存到/Record/Record - 20200119080230555.json文件中
                case ModeType.Collaboration:
                    for (int i = 0; i < _recordDatas.Count; i++)
                    {
                        SaveRecord(ModeType.Collaboration, _recordDatas[i].Id);
                    }
                    break;
                }
            }

            /* 如果有错误,就输出错误 */
            catch (Exception e)
            {
                //输出错误
                AppManager.Uis.ErrorUi.UiControl.TipContent = e.ToString();
                AppManager.Uis.ErrorUi.OpenOrClose(true);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 保存1个记录
        /// </summary>
        /// <param name="_modeType">项目模式的类型</param>
        /// <param name="_recordId">要保存的Record的编号</param>
        public void SaveRecord(ModeType _modeType, long _recordId)
        {
            /* 保存 */
            try
            {
                //判断项目的模式
                switch (_modeType)
                {
                //如果项目是[默认模式]:把所有的Record,保存到/Record/Records.json文件中
                case ModeType.Default:
                    SaveRecords(_modeType);
                    break;



                //如果项目是[协同合作模式]:把每一个Record,分别保存到/Record/Record - 20200119080230555.json文件中
                case ModeType.Collaboration:
                    //通过Id取到Record
                    RecordData _recordData = GetRecordData(_recordId);

                    if (_recordData != null)
                    {
                        //把RecordData转换为RecordBaseData
                        RecordBaseData _recordBaseData = RecordBaseData.DataToBaseData(_recordData);

                        //把RecordBaseData转换为json
                        string _recordJsonText = JsonMapper.ToJson(_recordBaseData);

                        //Record文件的路径(文件夹+文件名+后缀)
                        string _recordFilePath = RecordFolderPath + "/Record - " + _recordBaseData.Id + AppManager.Systems.ProjectSystem.OtherFileSuffix;

                        //把json文件保存到[Record - RecordId.json]文件里
                        File.WriteAllText(_recordFilePath, _recordJsonText, Encoding.Default);
                    }
                    break;
                }
            }

            /* 如果有错误,就输出错误 */
            catch (Exception e)
            {
                //输出错误
                AppManager.Uis.ErrorUi.UiControl.TipContent = e.ToString();
                AppManager.Uis.ErrorUi.OpenOrClose(true);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 备份[Record]
        ///(备份[Record/Records.json]文件)
        /// </summary>
        public void BackupRecord()
        {
            /* 格式:Backup/Record/年月日时分秒.json */
            try
            {
                /*创建[Backup/Record]文件夹(_projectFolderPath/Backup/Record/)*/
                DirectoryInfo _recordBackupDirectoryInfo = new DirectoryInfo(RecordBackupFolderPath);
                //如果没有文件夹,就创建文件夹
                if (_recordBackupDirectoryInfo.Exists == false)
                {
                    _recordBackupDirectoryInfo.Create();
                }

                /*获取【Record】文件的个数(如果文件超过10个,就删除最早创建的那个文件)*/
                FileInfo[] _recordBackupFileInfos = _recordBackupDirectoryInfo.GetFiles();
                if (_recordBackupFileInfos != null && _recordBackupFileInfos.Length > 10)
                {
                    //找到Record备份文件中,最早创建的那个文件
                    FileInfo _firstFileInfo = FindFirstBackupFile(_recordBackupFileInfos);

                    //删除最早的1个文件
                    if (_firstFileInfo != null)
                    {
                        File.Delete(_firstFileInfo.FullName);
                    }
                }



                /* 获取要备份的文件的路径 */
                //当前的时间(年月日时分秒)
                string _nowDateTimeString = DateTimeTool.DateTimeToString(DateTime.UtcNow, TimeFormatType.YearMonthDayHourMinuteSecondMillisecond);

                //文件的备份路径
                string _recordFilePath = RecordBackupFolderPath + "/"
                                         + _nowDateTimeString + AppManager.Systems.ProjectSystem.OtherFileSuffix;



                /* 进行备份 */
                //取到所有的Record数据
                ObservableCollection <RecordData> _recordDatas = AppManager.Systems.RecordSystem.RecordDatas;

                //把RecordData转换为RecordBaseData
                List <RecordBaseData> _recordBaseDatas = new List <RecordBaseData>();
                for (int i = 0; i < _recordDatas.Count; i++)
                {
                    RecordBaseData _recordBaseData = RecordBaseData.DataToBaseData(_recordDatas[i]);
                    if (_recordBaseData != null)
                    {
                        _recordBaseDatas.Add(_recordBaseData);
                    }
                }

                //把RecordBaseData转换为json
                string _recordsJsonText = JsonMapper.ToJson(_recordBaseDatas);

                //把json文件保存到[Records.json]文件里
                File.WriteAllText(_recordFilePath, _recordsJsonText, Encoding.Default);
            }
            catch (Exception e)
            {
            }
        }