lixiaojun
2024-12-09 4607e20cecf567ee2e86f9a07158deaa1b74d622
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs
@@ -9,6 +9,7 @@
using Yw.WinFrmUI.Q3d;
using Yw.EPAnet;
using Mapster;
using Microsoft.CodeAnalysis.CSharp.Syntax;
namespace HStation.WinFrmUI
{
    public partial class XhsProjectSimulationWorkingPage : DocumentPage
@@ -18,32 +19,24 @@
            InitializeComponent();
            this.PageTitle.Caption = "水力模拟工况";
            this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
        }
        /// <summary>
        /// 更新工况事件
        /// </summary>
        public event Action<HydroWorkingVmo> UpdateWorkingEvent;
        /// <summary>
        /// 移除工况事件
        /// </summary>
        public event Action<HydroWorkingVmo> RemoveWorkingEvent;
        private HStation.Vmo.XhsProjectVmo _project = null;//项目
        private HStation.Vmo.XhsProjectSiteVmo _projectSite = null;//项目站
        private XhsSchemeVmo _scheme = null;//方案
        private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息
        private HydroWorkingVmo _working = null;//工况
        /// <summary>
        /// 绑定数据
        /// </summary>
        public void SetBindingData
            (
                XhsProjectVmo project,
                XhsProjectSiteVmo projectSite,
                Yw.Model.HydroModelInfo hydroInfo,
                HydroWorkingVmo working
            )
        {
            _project = project;
            _projectSite = projectSite;
            _hydroInfo = hydroInfo.Adapt<Yw.Model.HydroModelInfo>();
            _working = working;
            _hydroInfo.UpdateWorkingInfo(_working.WorkingInfo);
            this.PageTitle.Caption = $"水力模拟\r\n{_working.Name}";
        }
        /// <summary>
        /// 绑定数据
@@ -63,7 +56,14 @@
            _hydroInfo = hydroInfo.Adapt<Yw.Model.HydroModelInfo>();
            _working = working;
            _hydroInfo.UpdateWorkingInfo(_working.WorkingInfo);
            this.PageTitle.Caption = $"{scheme.Name}\r\n{_working.Name}";
            if (_scheme == null)
            {
                this.PageTitle.Caption = $"水力模拟\r\n{_working.Name}";
            }
            else
            {
                this.PageTitle.Caption = $"{scheme.Name}\r\n{_working.Name}";
            }
        }
        /// <summary>
@@ -80,10 +80,10 @@
        #region BIM控件
        //bimface控件
        private XhsProjectSimulationBimfaceCtrl _bimfaceCtrl = null;
        private SimulationBimfaceCtrl _bimfaceCtrl = null;
        //获取 bimface 控件
        private async Task<XhsProjectSimulationBimfaceCtrl> GetBimfaceCtrl()
        private async Task<SimulationBimfaceCtrl> GetBimfaceCtrl()
        {
            if (_hydroInfo == null)
            {
@@ -91,7 +91,7 @@
            }
            if (_bimfaceCtrl == null)
            {
                _bimfaceCtrl = new XhsProjectSimulationBimfaceCtrl();
                _bimfaceCtrl = new SimulationBimfaceCtrl();
                _bimfaceCtrl.Dock = DockStyle.Fill;
                await _bimfaceCtrl.InitialData(_project, _projectSite);
                _bimfaceCtrl.LoadCompletedEvent += async () =>
@@ -167,10 +167,10 @@
        #region 属性控件
        //属性控件
        private HydroVisualPropertyViewCtrl _propertyCtrl = null;
        private SimulationPropertyCtrl _propertyCtrl = null;
        //获取属性控件
        private HydroVisualPropertyViewCtrl GetPropertyCtrl()
        private SimulationPropertyCtrl GetPropertyCtrl()
        {
            if (_hydroInfo == null)
            {
@@ -178,11 +178,12 @@
            }
            if (_propertyCtrl == null)
            {
                _propertyCtrl = new HydroVisualPropertyViewCtrl();
                _propertyCtrl = new SimulationPropertyCtrl();
                _propertyCtrl.Dock = DockStyle.Fill;
                _propertyCtrl.HydroViewEvent += (visualViewModel) =>
                _propertyCtrl.AllowEdit = false;
                _propertyCtrl.HydroViewEvent += (visual) =>
                {
                    SelectVisual(GetVisual(visualViewModel), eVisualSource.Property);
                    SelectVisual(visual, eVisualSource.Property);
                };
                _propertyCtrl.BlinkLinkNodeEvent += async (link, linkNodeCode) =>
                { //强调连接节点
@@ -234,7 +235,7 @@
                {
                    if (this.controlContainerRight.Controls.Count > 0)
                    {
                        if (this.controlContainerRight.Controls[0] is XhsProjectSimulationPropertyCtrl)
                        if (this.controlContainerRight.Controls[0] is SimulationPropertyCtrl)
                        {
                            return true;
                        }
@@ -274,14 +275,6 @@
            _propertyCtrl?.UpdateRows();
        }
        //清理属性控件
        private void ClearPropertyCtrl()
        {
            if (_propertyCtrl != null)
            {
                _propertyCtrl.SelectedObject = null;
            }
        }
        #endregion
@@ -1712,9 +1705,63 @@
        #endregion
        #region 更新工况
        //编辑
        private void barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (_hydroInfo == null)
            {
                return;
            }
            if (_working == null)
            {
                return;
            }
            var dlg = new EditHydroWorkingDlg();
            dlg.SetBindingData(_working);
            dlg.ReloadDataEvent += (rhs) =>
            {
                _working = rhs;
                this.PageTitle.Caption = $"水力模拟\r\n{_working.Name}";
                UpdatePageTitle(this.PageGuid, this.PageTitle);
                this.UpdateWorkingEvent?.Invoke(_working);
            };
            dlg.ShowDialog();
        }
        #endregion
        #region 删除工况
        //删除
        private async void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (_hydroInfo == null)
            {
                return;
            }
            if (_working == null)
            {
                return;
            }
            var bol = XtraMessageBox.Show("请问是否删除当前工况?", "询问", MessageBoxButtons.YesNo) == DialogResult.Yes;
            if (!bol)
            {
                return;
            }
            bol = await BLLFactory<Yw.BLL.HydroWorking>.Instance.DeleteByID(_working.ID);
            if (!bol)
            {
                TipFormHelper.ShowError("删除失败!");
                return;
            }
            this.RemoveWorkingEvent?.Invoke(_working);
            TipFormHelper.ShowSucceed("删除成功!");
            ClosePage(this.PageGuid);
        }
        #endregion
    }