yangyin
2024-08-21 04e1d0a290ff76bf623bd9de075b350b8b77ba25
WinFrmUI/Yw.WinFrmUI.Hydro.Core/02-model/HydroModelMgrPage.cs
@@ -1,4 +1,10 @@
namespace Yw.WinFrmUI
using DevExpress.CodeParser;
using DevExpress.Utils.About;
using DevExpress.XtraEditors;
using Yw.EPAnet;
using Yw.WinFrmUI.Page;
namespace Yw.WinFrmUI
{
    /// <summary>
    /// 
@@ -20,6 +26,16 @@
        /// 查看模型事件
        /// </summary>
        public event Action<Yw.Dto.HydroModelDto> ViewModelEvent;
        /// <summary>
        /// 计算模型事件
        /// </summary>
        public event Action<Yw.Dto.HydroModelDto> CalcuModelEvent;
        /// <summary>
        /// 校验模型事件
        /// </summary>
        public event Action<Yw.Dto.HydroModelDto> ValidModelEvent;
        private List<HydroModelMgrViewModel> _allBindingList = null;
        private Lazy<Yw.BLL.HydroModel> _bll = new(() => new Yw.BLL.HydroModel());
@@ -67,9 +83,44 @@
        /// <summary>
        /// 查看模型
        /// </summary>
        protected virtual void ViewModel(Yw.Dto.HydroModelDto dto)
        protected virtual async void ViewModel(Yw.Dto.HydroModelDto dto)
        {
            var info = await new Yw.BLL.HydroModelInfo().GetByID(dto.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);
            }
        }
        /// <summary>
        /// 计算模型
        /// </summary>
        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();
            XtraMessageBox.Show(JsonHelper.Object2FormatJson(list));
        }
        /// <summary>
        /// 校验模型
        /// </summary>
        protected virtual async void ValidModel(Yw.Dto.HydroModelDto dto)
        {
            var info = await new Yw.BLL.HydroModelInfo().GetByID(dto.ID);
            var netWork = Yw.Hydro.ParseHelper.ToNetwork(info);
            var result = netWork.Check();
            XtraMessageBox.Show(JsonHelper.Object2FormatJson(result));
        }
@@ -125,7 +176,7 @@
        }
        //查看模型
        //模型查看
        private void barBtnViewModel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            var vm = GetCurrentViewModel();
@@ -135,6 +186,59 @@
            }
            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);
        }
        //导出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 HydroParterListDlg();
            dlg.SetBindingData(info);
            dlg.Show();
        }
        //上移
@@ -155,6 +259,34 @@
        }
        #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);
            }
        }
    }
}