| | |
| | | namespace HStation.WinFrmUI |
| | | using Yw.Model; |
| | | |
| | | namespace HStation.WinFrmUI |
| | | { |
| | | /// <summary> |
| | | /// |
| | |
| | | public class CreateXhsSchemeHelper |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 创建 |
| | | /// </summary> |
| | | /// <param name="vm">通用视图Model</param> |
| | | /// <param name="feedBackMsg">信息反馈</param> |
| | | /// <param name="feedBackProgress">进度反馈</param> |
| | | /// <returns></returns> |
| | | public static async Task<bool> Create(CreateXhsSchemeViewModel vm, Action<string, Color> feedBackMsg, Action<int, int> feedBackProgress) |
| | | { |
| | | var msg = string.Empty; |
| | | if (vm == null) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | #region 第一步 复制水力信息 |
| | | |
| | | feedBackMsg?.Invoke("正在创建水力信息副本...", Color.Black); |
| | | var hydroInfoId = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.Copy(vm.HydroInfo.ID); |
| | | if (hydroInfoId < 1) |
| | | { |
| | | feedBackMsg?.Invoke("水力信息副本创建失败!!!", Color.Red); |
| | | return false; |
| | | } |
| | | feedBackMsg?.Invoke("水力信息副本创建成功。。。", Color.Green); |
| | | feedBackProgress?.Invoke(100, 30); |
| | | vm.HydroInfo = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(hydroInfoId); |
| | | |
| | | #endregion |
| | | |
| | | #region 第二步 创建方案 |
| | | |
| | | feedBackMsg?.Invoke("正在创建水力方案...", Color.Black); |
| | | var schemeId = await BLLFactory<HStation.BLL.XhsScheme>.Instance.Insert(vm.Scheme); |
| | | if (schemeId < 1) |
| | | { |
| | | feedBackMsg?.Invoke("水力方案创建失败!!!", Color.Red); |
| | | return true; |
| | | } |
| | | feedBackMsg?.Invoke("水力方案创建成功。。。", Color.Green); |
| | | feedBackProgress?.Invoke(100, 40); |
| | | vm.Scheme = await BLLFactory<HStation.BLL.XhsScheme>.Instance.GetByID(schemeId); |
| | | |
| | | #endregion |
| | | |
| | | #region 第三步 建立水力关联 |
| | | |
| | | feedBackMsg?.Invoke("正在建立水力关联...", Color.Black); |
| | | var relation = new Yw.Vmo.HydroModelRelationVmo(); |
| | | relation.ObjectType = HStation.Xhs.DataType.XhsScheme; |
| | | relation.ObjectID = vm.Scheme.ID; |
| | | relation.ModelID = vm.HydroInfo.ID; |
| | | relation.Purpose = Yw.Hydro.Purpose.Simulation; |
| | | relation.Content = null; |
| | | relation.SortCode = 1; |
| | | relation.Description = "自动生成"; |
| | | |
| | | relation.ID = await BLLFactory<Yw.BLL.HydroModelRelation>.Instance.Insert(relation); |
| | | if (relation.ID < 1) |
| | | { |
| | | feedBackMsg?.Invoke("水力关联失败!!!", Color.Red); |
| | | return true; |
| | | } |
| | | feedBackMsg?.Invoke("水力关联成功。。。", Color.Green); |
| | | feedBackProgress?.Invoke(100, 50); |
| | | |
| | | #endregion |
| | | |
| | | #region 第四步 更新水力信息 |
| | | |
| | | feedBackMsg?.Invoke("正在更新水力信息...", Color.Black); |
| | | if (vm.allChangeRecordList != null && vm.allChangeRecordList.Count > 0) |
| | | { |
| | | var allParterChangeList = new List<HydroParterInfo>(); |
| | | foreach (var changeRecord in vm.allChangeRecordList) |
| | | { |
| | | var parter = changeRecord.ViewModel.Vmo; |
| | | if (!allParterChangeList.Exists(x => x.Code == parter.Code)) |
| | | { |
| | | allParterChangeList.Add(changeRecord.ViewModel.Vmo); |
| | | } |
| | | } |
| | | var bol = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.Update(vm.HydroInfo, null, allParterChangeList, null); |
| | | if (!bol) |
| | | { |
| | | feedBackMsg?.Invoke("水力信息更新失败!!!", Color.Red); |
| | | } |
| | | } |
| | | feedBackMsg?.Invoke("水力信息更新成功。。。", Color.Green); |
| | | feedBackProgress?.Invoke(100, 100); |
| | | return true; |
| | | |
| | | |
| | | #endregion |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | } |