using Yw.EPAnet; using Yw.EPAnet.Calcu; 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 Lazy _bll = new(() => new Yw.BLL.HydroModel()); private Lazy _bllRelation = new(() => new Yw.BLL.HydroModelRelation()); //加载数据 private async Task LoadData() { var allBindingList = await _bll.Value.GetAll(); var allBindingRelationList = await _bllRelation.Value.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 void ViewModel(Yw.Dto.HydroModelDto dto) { } /// /// 计算模型 /// protected virtual async void CalcuModel(Yw.Dto.HydroModelDto dto) { var info = await new Yw.BLL.HydroModelInfo().GetByID(dto.ID); var netWork = Yw.Hydro.ParseHelper.ToNetwork(info); var list = netWork.Calcu(); } /// /// 校验模型 /// protected virtual void ValidModel(Yw.Dto.HydroModelDto dto) { } #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.Dto); this.ViewModelEvent?.Invoke(vm.Dto); } //模型计算 private void barBtnCalcuModel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = GetCurrentViewModel(); if (vm == null) { return; } CalcuModel(vm.Dto); this.CalcuModelEvent?.Invoke(vm.Dto); } //模型校验 private void barBtnValidModel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = GetCurrentViewModel(); if (vm == null) { return; } ValidModel(vm.Dto); this.ValidModelEvent?.Invoke(vm.Dto); } //上移 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 } }