/// <summary> /// 保存所有的Bug /// </summary> /// <param name="_modeType">项目模式的类型</param> public void SaveBugs(ModeType _modeType) { /* 保存 */ try { //获取所有的Bug ObservableCollection <BugData> _bugDatas = BugDatas; //判断项目的模式 switch (_modeType) { //如果项目是[默认模式]:把所有的Bug,保存到/Bug/Bugs.json文件中 case ModeType.Default: //把BugData转换为BugBaseData List <BugBaseData> _bugBaseDatas = new List <BugBaseData>(); for (int i = 0; i < _bugDatas.Count; i++) { BugBaseData _bugBaseData = BugBaseData.DataToBaseData(_bugDatas[i]); if (_bugBaseData != null) { _bugBaseDatas.Add(_bugBaseData); } } //把BugBaseData转换为json string _bugsJsonText = JsonMapper.ToJson(_bugBaseDatas); //Bug文件的路径(文件夹+文件名+后缀) string _bugsFilePath = BugFolderPath + "/Bugs" + AppManager.Systems.ProjectSystem.OtherFileSuffix; //把json文件保存到[Bugs.json]文件里 File.WriteAllText(_bugsFilePath, _bugsJsonText, Encoding.Default); break; //如果项目是[协同合作模式]:把每一个Bug,分别保存到/Bug/Bug - 20200119080230555.json文件中 case ModeType.Collaboration: for (int i = 0; i < _bugDatas.Count; i++) { SaveBug(ModeType.Collaboration, _bugDatas[i].Id); } break; } } /* 如果有错误,就输出错误 */ catch (Exception e) { //输出错误 AppManager.Uis.ErrorUi.UiControl.TipContent = e.ToString(); AppManager.Uis.ErrorUi.OpenOrClose(true); } }
/// <summary> /// 保存一个Bug /// </summary> /// <param name="_modeType">项目模式的类型</param> /// <param name="_bugId">要保存的Bug的编号</param> public void SaveBug(ModeType _modeType, long _bugId) { /* 保存 */ try { //判断项目的模式 switch (_modeType) { //如果项目是[默认模式]:把所有的Bug,保存到/Bug/Bugs.json文件中 case ModeType.Default: SaveBugs(ModeType.Default); break; //如果项目是[协同合作模式]:把每一个Bug,分别保存到/Bug/Bug - 20200119080230555.json文件中 case ModeType.Collaboration: //通过Id取到Bug BugData _bugData = GetBugData(_bugId); if (_bugData != null) { //把BugData转换为BugBaseData BugBaseData _bugBaseData = BugBaseData.DataToBaseData(_bugData); //把BugBaseData转换为json string _bugJsonText = JsonMapper.ToJson(_bugBaseData); //Bug文件的路径(文件夹+文件名+后缀) string _bugFilePath = BugFolderPath + "/Bug - " + _bugBaseData.Id + AppManager.Systems.ProjectSystem.OtherFileSuffix; //把json文件保存到[Bug - BugId.json]文件里 File.WriteAllText(_bugFilePath, _bugJsonText, Encoding.Default); } break; } } /* 如果有错误,就输出错误 */ catch (Exception e) { //输出错误 AppManager.Uis.ErrorUi.UiControl.TipContent = e.ToString(); AppManager.Uis.ErrorUi.OpenOrClose(true); } }
/// <summary> /// 备份[Bug] ///(备份[Bug/Bugs.json]文件) /// </summary> public void BackupBug() { /* 格式:Backup/Bug/年月日时分秒.json */ try { /*创建[Backup/Bug]文件夹(_projectFolderPath/Backup/Bug/)*/ DirectoryInfo _bugBackupDirectoryInfo = new DirectoryInfo(BugBackupFolderPath); //如果没有文件夹,就创建文件夹 if (_bugBackupDirectoryInfo.Exists == false) { _bugBackupDirectoryInfo.Create(); } /*获取【Bug】文件的个数(如果文件超过10个,就删除最早创建的那个文件)*/ FileInfo[] _bugBackupFileInfos = _bugBackupDirectoryInfo.GetFiles(); if (_bugBackupFileInfos != null && _bugBackupFileInfos.Length > 10) { //找到Bug备份文件中,最早创建的那个文件 FileInfo _firstFileInfo = FindFirstBackupFile(_bugBackupFileInfos); //删除最早的1个文件 if (_firstFileInfo != null) { File.Delete(_firstFileInfo.FullName); } } /* 获取要备份的文件的路径 */ //当前的时间(年月日时分秒) string _nowDateTimeString = DateTimeTool.DateTimeToString(DateTime.UtcNow, TimeFormatType.YearMonthDayHourMinuteSecondMillisecond); //文件的备份路径 string _bugFilePath = BugBackupFolderPath + "/" + _nowDateTimeString + AppManager.Systems.ProjectSystem.OtherFileSuffix; /* 进行备份 */ //取到所有的Bug数据 ObservableCollection <BugData> _bugDatas = AppManager.Systems.BugSystem.BugDatas; //把BugData转换为BugBaseData List <BugBaseData> _bugBaseDatas = new List <BugBaseData>(); for (int i = 0; i < _bugDatas.Count; i++) { BugBaseData _bugBaseData = BugBaseData.DataToBaseData(_bugDatas[i]); if (_bugBaseData != null) { _bugBaseDatas.Add(_bugBaseData); } } //把BugBaseData转换为json string _bugsJsonText = JsonMapper.ToJson(_bugBaseDatas); //把json文件保存到[Bugs.json]文件里 File.WriteAllText(_bugFilePath, _bugsJsonText, Encoding.Default); } catch (Exception e) { } }