/// <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); } }
/// <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); } }
/// <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) { } }