using Yw.EPAnet; using HStation.Vmo; using Yw.DAL.Basic; namespace HStation.WinFrmUI { public partial class XhsProjectSimulationCorePage : DocumentPage { public XhsProjectSimulationCorePage() { InitializeComponent(); this.PageTitle.Caption = "水力模拟"; this.PageTitle.HeaderSvgImage = this.svgImg32[0]; } private HStation.Vmo.XhsProjectVmo _project = null;//项目 private HStation.Vmo.XhsProjectSiteVmo _projectSite = null;//项目站 private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息 private Yw.Model.HydroParterInfo _parter = null; private List _allCalcuParterList = null; /// /// 绑定数据 /// public async Task SetBindingData ( HStation.Vmo.XhsProjectVmo project, HStation.Vmo.XhsProjectSiteVmo projectSite, Yw.Model.HydroModelInfo hydroInfo ) { if (project == null) { return; } _project = project; _projectSite = projectSite; _hydroInfo = hydroInfo; if (_projectSite == null) { _projectSite = await BLLFactory.Instance.GetDefaultByProjectID(_project.ID); } if (_hydroInfo == null) { var hydroRelation = await BLLFactory.Instance .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, _projectSite.ID, HStation.Xhs.Purpose.Simulation); _hydroInfo = await BLLFactory.Instance.GetByID(hydroRelation.ModelID); } } /// /// 初始化数据 /// public override async void InitialDataSource() { base.InitialDataSource(); if (_project == null) { return; } this.PageTitle.Caption = $"{_project.Name}\r\n水力模拟"; await this.xhsProjectSimulationBimfaceCtrl1.SetBindingData(_project, _projectSite); } //bimface 构件点击 private void XhsProjectHydroQ3dCtrl1_ClickParterEvent(string objectId) { //if (_hydro == null) //{ // _parter = null; // return; //} //var allParterList = _hydro.GetAllParters(); //_parter = allParterList.Find(x => x.Code == objectId); //this.xhsProjectSimulationPropertyCtrl1.SelectParter(_parter, allParterList); //if (_parter != null) //{ // if (_allCalcuParterList != null && _allCalcuParterList.Count > 0) // { // var calcuParter = _allCalcuParterList.Find(x => x.Id == _parter.Code); // if (calcuParter != null) // { // IHydroCalcuProperty calcuProperty = null; // if (calcuParter is CalcuNode calcuNode) // { // var calcuNodeProperty = new Yw.WinFrmUI.HydroCalcuNodeProperty(); // calcuNodeProperty.ID = _parter.ID; // calcuNodeProperty.CalcuPress = calcuNode.Press; // calcuNodeProperty.CalcuDemand = calcuNode.Demand; // calcuNodeProperty.CalcuHead = calcuNode.Head; // calcuProperty = calcuNodeProperty; // } // else if (calcuParter is CalcuLink calcuLink) // { // var calcuLinkProperty = new Yw.WinFrmUI.HydroCalcuLinkProperty(); // calcuLinkProperty.ID = _parter.ID; // calcuLinkProperty.CalcuHeadLoss = calcuLink.Headloss; // calcuLinkProperty.CalcuFlow = calcuLink.Flow; // calcuLinkProperty.CalcuVelocity = calcuLink.Velocity; // calcuProperty = calcuLinkProperty; // } // if (calcuProperty != null) // { // this.xhsProjectSimulationPropertyCtrl1.UpdateCalcuProperty(calcuProperty); // } // } // } //} } private void barBtnCheck_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { //if (_hydro == null) //{ // return; //} //var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydro); //var result = netWork.Check(); //XtraMessageBox.Show(JsonHelper.Object2FormatJson(result)); } private void barBtnCalcu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { //if (_hydro == null) //{ // return; //} //var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydro); //var result = netWork.Calcu(); //if (!result.Succeed) //{ // XtraMessageBox.Show(JsonHelper.Object2FormatJson(result)); // return; //} //_allCalcuParterList = result.GetParterList(); //TipFormHelper.ShowSucceed("计算成功"); //if (_parter != null) //{ // var calcuParter = _allCalcuParterList.Find(x => x.Id == _parter.Code); // if (calcuParter != null) // { // IHydroCalcuProperty calcuProperty = null; // if (calcuParter is CalcuNode calcuNode) // { // var calcuNodeProperty = new Yw.WinFrmUI.HydroCalcuNodeProperty(); // calcuNodeProperty.ID = _parter.ID; // calcuNodeProperty.CalcuPress = calcuNode.Press; // calcuNodeProperty.CalcuDemand = calcuNode.Demand; // calcuNodeProperty.CalcuHead = calcuNode.Head; // calcuProperty = calcuNodeProperty; // } // else if (calcuParter is CalcuLink calcuLink) // { // var calcuLinkProperty = new Yw.WinFrmUI.HydroCalcuLinkProperty(); // calcuLinkProperty.ID = _parter.ID; // calcuLinkProperty.CalcuHeadLoss = calcuLink.Headloss; // calcuLinkProperty.CalcuFlow = calcuLink.Flow; // calcuLinkProperty.CalcuVelocity = calcuLink.Velocity; // calcuProperty = calcuLinkProperty; // } // if (calcuProperty != null) // { // this.xhsProjectSimulationPropertyCtrl1.UpdateCalcuProperty(calcuProperty); // } // } //} } private void barBtnParter_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { //var dlg = new HydroParterListDlg(); //dlg.SetBindingData(_hydro); //dlg.Show(); } private void barBtnInp_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { //var fileName = Yw.WinFrmUI.FileDialogHelper.SaveInp("导出Inp文件"); //if (string.IsNullOrEmpty(fileName)) //{ // return; //} //var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydro); //var result = netWork.ToInpString(); //File.WriteAllText(fileName, result); //TipFormHelper.ShowSucceed("导出成功"); } private async void barBtnSave_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { //if (_hydro == null) //{ // return; //} //var bll = new Yw.BLL.HydroModelInfo(); //var result = await bll.Save(_hydro); //if (result > 0) //{ // Yw.WinFrmUI.TipFormHelper.ShowSucceed("保存成功"); //} } } }