public void ShowEditDialog(PlanHistoryDTO existDetail, PlanDetailCreateSource source) { switch (source) { case PlanDetailCreateSource.New: IsPlanTypeVisible = Visibility.Collapsed; _operationPlan = _service.CreatePlanHistory(CurPlan, AllPlanHistories, ref editPlanAircraft, null, "引进", 1); //此时EditPlanAircraft=null EditPlanHistory = _operationPlan; IsChangeable = true; break; case PlanDetailCreateSource.PlanAircraft: IsPlanTypeVisible = Visibility.Collapsed; // 计划飞机已有的明细项肯定是引进计划,只能添加退出计划 _operationPlan = _service.CreatePlanHistory(CurPlan, AllPlanHistories, ref editPlanAircraft, null, existDetail != null ? "退出" : "引进", 1); //existDetail=null为计划飞机是预备状态的情况 EditPlanHistory = _operationPlan; ViewPlanHistories.Add(EditPlanHistory); AllPlanHistories.AddNew(EditPlanHistory); //这时不能修改机型和座机 IsChangeable = false; break; case PlanDetailCreateSource.Aircraft: IsPlanTypeVisible = Visibility.Visible; // 1、计划飞机已有明细项 if (existDetail != null) { // 已有的是变更计划,只能添加退出计划 if (existDetail.ActionType == "变更") { IsChangeEnabled = false; IsOperation = true; IsChange = false; OnOperation(); ViewPlanHistories.Add(EditPlanHistory); AllPlanHistories.AddNew(EditPlanHistory); } // 已有的是退出计划,只能添加变更计划 else { IsOperationEnabled = false; IsOperation = false; IsChange = true; OnOperation(); //生成之后,不让用户编辑,起到保存原计划历史的机型的作用,在取消时,能够用来恢复计划飞机数据 OnChange(); ViewPlanHistories.Add(EditPlanHistory); AllPlanHistories.AddNew(EditPlanHistory); } } // 2、计划飞机没有明细项 else { IsChangeEnabled = true; IsOperationEnabled = true; if (!IsOperation) IsOperation = true; OnOperation(); ViewPlanHistories.Add(EditPlanHistory); AllPlanHistories.AddNew(EditPlanHistory); } break; default: throw new ArgumentOutOfRangeException("source"); } editDialog.ShowDialog(); }
private void ShowEditDialog(PlanHistory existDetail, PlanDetailCreateSource source) { switch (source) { case PlanDetailCreateSource.New: this.IsPlanTypeVisible = Visibility.Collapsed; this._operationPlan = this.service.CreateOperationPlan(this.CurrentPlan, this._planAircraft, "引进"); this.PlanDetail = this._operationPlan; this.IsChangeable = true; break; case PlanDetailCreateSource.PlanAircraft: this.IsPlanTypeVisible = Visibility.Collapsed; // 计划飞机已有的明细项肯定是引进计划,只能添加退出计划 this._operationPlan = this.service.CreateOperationPlan(this.CurrentPlan, this._planAircraft, existDetail != null ? "退出" : "引进"); this.PlanDetail = this._operationPlan; //这时不能修改机型和座机 this.IsChangeable = false; break; case PlanDetailCreateSource.Aircraft: this.IsPlanTypeVisible = Visibility.Visible; // 1、计划飞机已有明细项 if (existDetail != null) { // 已有的是变更计划,只能添加退出计划 if (existDetail.ActionType == "变更") { this.IsChangeEnabled = false; this.IsOperation = true; this.IsChange = false; this.OnOperation(); } // 已有的是退出计划,只能添加变更计划 else { this.IsOperationEnabled = false; this.IsOperation = false; this.IsChange = true; this.OnOperation();//生成之后,不让用户编辑,起到保存原计划历史的机型的作用,在取消时,能够用来恢复计划飞机数据 this.OnChange(); } } // 2、计划飞机没有明细项 else { this.IsChangeEnabled = true; this.IsOperationEnabled = true; if (!this.IsOperation) this.IsOperation = true; this.OnOperation(); } break; default: throw new ArgumentOutOfRangeException("source"); } this.editDialog.ShowDialog(); }
/// <summary> /// 打开子窗体之前判断是否要打开 /// </summary> /// <param name="planAircraft">计划飞机</param> /// <param name="source">调用的来源</param> public void OpenEditDialog(PlanAircraftDTO planAircraft, PlanDetailCreateSource source) { editPlanAircraft = planAircraft; EditPlanHistory = null; _operationPlan = null; _changePlan = null; // 获取计划飞机在当前计划中的明细项集合 var planDetails = new List<PlanHistoryDTO>(); if (CurPlan != null && editPlanAircraft != null) planDetails = ViewPlanHistories.Where(ph => ph.PlanAircraftId == editPlanAircraft.Id).ToList(); // 1、计划飞机在当前计划中没有明细项(新增计划明细或计划飞机为预备状态) if (!planDetails.Any()) ShowEditDialog(null, source); // 2、计划飞机在当前计划中已有明细项 else { if (planDetails.Count == 1) { string content; switch (source) { case PlanDetailCreateSource.New: break; case PlanDetailCreateSource.PlanAircraft: content = "计划飞机在当前计划中已有引进计划明细项,是否要针对该计划飞机添加退出计划明细项?"; MessageConfirm("确认添加计划明细", content, (o, e) => { if (e.DialogResult == true) { ShowEditDialog(planDetails[0], source); } }); break; case PlanDetailCreateSource.Aircraft: content = planDetails[0].ActionType.Contains("变更") ? "飞机在当前计划中已有变更计划明细项,是否要针对该飞机添加退出计划明细项?" : "飞机在当前计划中已有退出计划明细项,是否要针对该飞机添加变更计划明细项?"; MessageConfirm("确认添加计划明细", content, (o, e) => { if (e.DialogResult == true) { ShowEditDialog(planDetails[0], source); } }); break; default: throw new ArgumentOutOfRangeException("source"); } } else { MessageAlert("提醒", "该计划飞机已有两条明细项,不能再添加新计划明细项!"); } } }
/// <summary> /// 打开子窗体之前判断是否要打开 /// </summary> /// <param name="planAircraft">计划飞机</param> /// <param name="source">调用的来源</param> internal void OpenEditDialog(PlanAircraft planAircraft, PlanDetailCreateSource source) { if (this.ViewPlanHistory == null || (!this.ViewPlanHistory.Any(p => p.HasValidationErrors))) { this._planAircraft = planAircraft; this._operationPlan = null; this._changePlan = null; // 获取计划飞机在当前计划中的明细项集合 var planDetails = new List<PlanHistory>(); if(planAircraft!=null) planDetails = this.ViewPlanHistory.Where(ph => ph.PlanAircraft == planAircraft).ToList(); // 1、计划飞机在当前计划中没有明细项 if (!planDetails.Any()) this.ShowEditDialog(null, source); // 2、计划飞机在当前计划中已有明细项 else { if (planDetails.Count == 1) { string content; switch (source) { case PlanDetailCreateSource.New: break; case PlanDetailCreateSource.PlanAircraft: content = "计划飞机在当前计划中已有引进计划明细项,是否要针对该计划飞机添加退出计划明细项?"; RadWindow.Confirm(this.SetConfirm("确认添加计划明细", "确认", "取消", content, 13, 250, (o, e) => { if (e.DialogResult == true) this.ShowEditDialog(planDetails[0], source); })); break; case PlanDetailCreateSource.Aircraft: content = planDetails[0].ActionType == "变更" ? "飞机在当前计划中已有变更计划明细项,是否要针对该飞机添加退出计划明细项?" : "飞机在当前计划中已有退出计划明细项,是否要针对该飞机添加变更计划明细项?"; RadWindow.Confirm(this.SetConfirm("确认添加计划明细", "确认", "取消", content, 13, 250, (o, e) => { if (e.DialogResult == true) this.ShowEditDialog(planDetails[0], source); })); break; default: throw new ArgumentOutOfRangeException("source"); } } else { RadWindow.Alert(this.SetAlter("提醒", "确认", "该计划飞机已有两条明细项,不能再添加新计划明细项!", 13, 250, () => { })); } } } }