/// <summary> /// 添加Bug /// </summary> /// <param name="_name">Bug的名字</param> /// <param name="_priority">Bug的优先级</param> public void AddBug(string _name, PriorityType _priority) { //创建一个Bug BugData _bugData = new BugData(); _bugData.Id = DateTimeTool.DateTimeToLong(DateTime.UtcNow, TimeFormatType.YearMonthDayHourMinuteSecondMillisecond); _bugData.Name = new HighlightText() { Text = _name }; _bugData.Progress = ProgressType.Undone; _bugData.Priority = _priority; _bugData.CreateTime = DateTime.UtcNow; _bugData.UpdateTime = DateTime.UtcNow; _bugData.TemperamentId = 0; //把Bug添加到BugDatas中 BugDatas.Add(_bugData); //重新获取Bug的个数+页数 AppManager.Systems.BugSystem.CalculatedBugsNumber(); AppManager.Systems.PageSytem.CalculatedPagesNumber(); //重新排序 AppManager.Systems.SortSystem.Sort(); //重新过滤 AppManager.Systems.SearchSystem.Filter(); //重新计算页数 AppManager.Systems.PageSytem.CalculatedPagesNumber(); //显示Bug到当前页面 AppManager.Systems.PageSytem.Insert(_bugData); //显示ListBug的Tip AppManager.Uis.ListUi.UiControl.OpenOrCloseListTip(true, true, _bugData); //保存Bug文件 this.SaveBug(AppManager.Datas.ProjectData.ModeType, _bugData.Id); }
/// <summary> /// 读取一个Bug /// </summary> /// <param name="_modeType">项目模式的类型</param> /// <param name="_bugFilePath">要读取的Bug的编号</param> public void LoadBug(ModeType _modeType, long _bugId) { /* 读取 */ try { //判断项目的模式 switch (_modeType) { //如果项目是[默认模式]:所有的Bug,都在/Bug/Bugs.json文件中 case ModeType.Default: LoadBugs(ModeType.Default); break; //如果项目是[协同合作模式]:每一个Bug,分别在/Bug/Bug - 20200119080230555.json文件中 case ModeType.Collaboration: //Bug文件的路径(文件夹+文件名+后缀) string _bugFilePath = BugFolderPath + "/Bug - " + _bugId + AppManager.Systems.ProjectSystem.OtherFileSuffix; //FileInfo类 用于读取文件信息 FileInfo _bugFileInfo = new FileInfo(_bugFilePath); /* 判断文件是否存在 */ if (_bugFileInfo.Exists == true) //如果存在 { //读取[Bug]的Json文本中的内容 string _bugJsonText = File.ReadAllText(_bugFilePath); //然后把Json文本解析成BugBaseData对象 BugBaseData _bugBaseData = null; try { _bugBaseData = JsonMapper.ToObject <BugBaseData>(_bugJsonText); } catch (Exception e) { } //把BugBaseData对象,转化为BugData对象 BugData _bugData = BugBaseData.BaseDataToData(_bugBaseData); //如果BugData的完整度为true if (BugData.VerifyIntegrity(_bugData) == true) { //把BugData对象赋值 BugData _oldBugData = GetBugData(_bugData.Id); //通过BugId获取到旧的Bug对象 if (_oldBugData != null) //如果有旧的Bug对象 { //如果旧的Bug和新的Bug有不同的地方 if (BugData.Compare(CompareType.All, _bugData, _oldBugData) == false) { //修改旧的Bug对象的值 _oldBugData.Name.Text = _bugData.Name.Text; _oldBugData.Progress = _bugData.Progress; _oldBugData.Priority = _bugData.Priority; _oldBugData.CreateTime = _bugData.CreateTime; _oldBugData.SolveTime = _bugData.SolveTime; _oldBugData.UpdateTime = _bugData.UpdateTime; _oldBugData.UpdateNumber = _bugData.UpdateNumber; _oldBugData.TemperamentId = _bugData.TemperamentId; _oldBugData.IsDelete = _bugData.IsDelete; } } else { BugDatas.Add(_bugData); //把读取到的Bug对象,添加到列表中 } } } break; } } /* 如果有错误,就输出错误 */ catch (Exception e) { //输出错误 AppManager.Uis.ErrorUi.UiControl.TipContent = e.ToString(); AppManager.Uis.ErrorUi.OpenOrClose(true); } }