using DevExpress.XtraEditors; using Yw.Epanet; using Yw.WinFrmUI.Page; namespace Yw.WinFrmUI { /// /// /// public partial class HydroModelMgrPage : DocumentPage { public HydroModelMgrPage() { InitializeComponent(); this.gridView1.SetNormalView(); this.gridView1.RegistCustomDrawRowIndicator(); this.PageTitle.Caption = "水力模型"; this.PageTitle.HeaderSvgImage = this.svgImage32[0]; this.PageTitle.SvgImageSize = new Size(24, 24); } /// /// 查看模型事件 /// public event Action ViewModelEvent; /// /// 计算模型事件 /// public event Action CalcuModelEvent; /// /// 校验模型事件 /// public event Action ValidModelEvent; private List _allBindingList = null; //加载数据 private async Task LoadData() { var allBindingList = await BLLFactory.Instance.GetAll(); var allBindingRelationList = await BLLFactory.Instance.GetAll(); _allBindingList = new List(); if (allBindingList != null && allBindingList.Count > 0) { foreach (var item in allBindingList) { var hasRelation = allBindingRelationList == null ? false : allBindingRelationList.Exists(x => x.ModelID == item.ID); var vm = new HydroModelMgrViewModel(item, hasRelation); _allBindingList.Add(vm); } } this.hydroModelMgrViewModelBindingSource.DataSource = _allBindingList; this.hydroModelMgrViewModelBindingSource.ResetBindings(false); } /// ///初始化数据 /// public override async void InitialDataSource() { base.InitialDataSource(); await LoadData(); } /// /// 刷新数据 /// public override async void RefreshData() { base.RefreshData(); await LoadData(); } /// /// 查看模型 /// protected virtual async void ViewModel(HydroModelVmo vmo) { var info = await new Yw.BLL.HydroModelInfo().GetByID(vmo.ID); var guid = new PageGuid() { Modular = "Hydro", MoudingType = eMoudingType.Tab, Function = "HydroQ3d", TagName = info.ID.ToString() }; if (!IsExistPage(guid, true)) { //var page = new HydroQ3dViewPage(); //page.SetBindingData(info); //CreatePage(page, guid); } } /// /// 计算模型 /// protected virtual async void CalcuModel(HydroModelVmo vmo) { var info = await new Yw.BLL.HydroModelInfo().GetByID(vmo.ID); var netWork = Yw.Hydro.ParseHelper.ToNetwork(info); var list = netWork.CalcuH(); XtraMessageBox.Show(JsonHelper.Object2FormatJson(list)); } /// /// 校验模型 /// protected virtual async void ValidModel(HydroModelVmo vmo) { var info = await new Yw.BLL.HydroModelInfo().GetByID(vmo.ID); var netWork = Yw.Hydro.ParseHelper.ToNetwork(info); var result = netWork.Check(); XtraMessageBox.Show(JsonHelper.Object2FormatJson(result)); } #region 当前 //获取当前视图 private HydroModelMgrViewModel GetCurrentViewModel() { if (_allBindingList == null) { Yw.WinFrmUI.MessageBoxHelper.ShowError("数据初始化错误!"); return null; } if (_allBindingList.Count < 1) { Yw.WinFrmUI.MessageBoxHelper.ShowInfo("无数据"); return null; } var vm = this.gridView1.GetCurrentViewModel(_allBindingList); if (vm == null) { Yw.WinFrmUI.MessageBoxHelper.ShowInfo("请选择数据行"); return null; } return vm; } #endregion #region Ribbon //添加 private void barBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { } //编辑 private void barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { } //删除 private void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { } //详细信息 private void barBtnDetail_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { } //模型查看 private void barBtnViewModel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = GetCurrentViewModel(); if (vm == null) { return; } ViewModel(vm.Vmo); this.ViewModelEvent?.Invoke(vm.Vmo); } //模型计算 private void barBtnCalcuModel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = GetCurrentViewModel(); if (vm == null) { return; } CalcuModel(vm.Vmo); this.CalcuModelEvent?.Invoke(vm.Vmo); } //模型校验 private void barBtnValidModel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = GetCurrentViewModel(); if (vm == null) { return; } ValidModel(vm.Vmo); this.ValidModelEvent?.Invoke(vm.Vmo); } //导出inp private async void barBtnExportInp_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = GetCurrentViewModel(); if (vm == null) { return; } var info = await new Yw.BLL.HydroModelInfo().GetByID(vm.ID); var netWork = Yw.Hydro.ParseHelper.ToNetwork(info); var result = netWork.ToInpString(); XtraMessageBox.Show(result); } //组件 private async void barBtnParter_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = GetCurrentViewModel(); if (vm == null) { return; } var info = await new Yw.BLL.HydroModelInfo().GetByID(vm.ID); var dlg = new HydroVisualListDlg(); dlg.SetBindingData(info); dlg.Show(); } //上移 private void barBtnUp_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { } //下移 private void barBtnDown_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { } //刷新 private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { } #endregion private async void barBtnTest_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = GetCurrentViewModel(); if (vm == null) { return; } var info = await new Yw.BLL.HydroModelInfo().GetByID(vm.ID); var guid = new PageGuid() { Modular = "Hydro", MoudingType = eMoudingType.Tab, Function = "HydroL2d", TagName = info.ID.ToString() }; if (!IsExistPage(guid, true)) { //var page = new HydroL2dViewPage(); //page.SetBindingData(info); //CreatePage(page, guid); } } } }