lixiaojun
2024-10-17 4cb1f00f84d160f97afd0fb86cf600e1be667dd5
WinFrmUI/Yw.WinFrmUI.Hydro.Core/02-model/HydroModelMgrPage.cs
@@ -1,8 +1,6 @@
using DevExpress.CodeParser;
using DevExpress.Utils.About;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors;
using Yw.EPAnet;
using Yw.EPAnet.Calcu;
using Yw.WinFrmUI.Page;
namespace Yw.WinFrmUI
{
@@ -25,29 +23,25 @@
        /// <summary>
        /// 查看模型事件
        /// </summary>
        public event Action<Yw.Dto.HydroModelDto> ViewModelEvent;
        public event Action<HydroModelVmo> ViewModelEvent;
        /// <summary>
        /// 计算模型事件
        /// </summary>
        public event Action<Yw.Dto.HydroModelDto> CalcuModelEvent;
        public event Action<HydroModelVmo> CalcuModelEvent;
        /// <summary>
        /// 校验模型事件
        /// </summary>
        public event Action<Yw.Dto.HydroModelDto> ValidModelEvent;
        public event Action<HydroModelVmo> ValidModelEvent;
        private List<HydroModelMgrViewModel> _allBindingList = null;
        private Lazy<Yw.BLL.HydroModel> _bll = new(() => new Yw.BLL.HydroModel());
        private Lazy<Yw.BLL.HydroModelRelation> _bllRelation = new(() => new Yw.BLL.HydroModelRelation());
        //加载数据
        private async Task LoadData()
        {
            var allBindingList = await _bll.Value.GetAll();
            var allBindingRelationList = await _bllRelation.Value.GetAll();
            var allBindingList = await BLLFactory<Yw.BLL.HydroModel>.Instance.GetAll();
            var allBindingRelationList = await BLLFactory<Yw.BLL.HydroModelRelation>.Instance.GetAll();
            _allBindingList = new List<HydroModelMgrViewModel>();
            if (allBindingList != null && allBindingList.Count > 0)
            {
@@ -83,17 +77,30 @@
        /// <summary>
        /// 查看模型
        /// </summary>
        protected virtual void ViewModel(Yw.Dto.HydroModelDto dto)
        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);
            }
        }
        /// <summary>
        /// 计算模型
        /// </summary>
        protected virtual async void CalcuModel(Yw.Dto.HydroModelDto dto)
        protected virtual async void CalcuModel(HydroModelVmo vmo)
        {
            var info = await new Yw.BLL.HydroModelInfo().GetByID(dto.ID);
            var info = await new Yw.BLL.HydroModelInfo().GetByID(vmo.ID);
            var netWork = Yw.Hydro.ParseHelper.ToNetwork(info);
            var list = netWork.Calcu();
            XtraMessageBox.Show(JsonHelper.Object2FormatJson(list));
@@ -102,9 +109,9 @@
        /// <summary>
        /// 校验模型
        /// </summary>
        protected virtual async void ValidModel(Yw.Dto.HydroModelDto dto)
        protected virtual async void ValidModel(HydroModelVmo vmo)
        {
            var info = await new Yw.BLL.HydroModelInfo().GetByID(dto.ID);
            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));
@@ -171,8 +178,8 @@
            {
                return;
            }
            ViewModel(vm.Dto);
            this.ViewModelEvent?.Invoke(vm.Dto);
            ViewModel(vm.Vmo);
            this.ViewModelEvent?.Invoke(vm.Vmo);
        }
        //模型计算
@@ -183,8 +190,8 @@
            {
                return;
            }
            CalcuModel(vm.Dto);
            this.CalcuModelEvent?.Invoke(vm.Dto);
            CalcuModel(vm.Vmo);
            this.CalcuModelEvent?.Invoke(vm.Vmo);
        }
@@ -196,8 +203,8 @@
            {
                return;
            }
            ValidModel(vm.Dto);
            this.ValidModelEvent?.Invoke(vm.Dto);
            ValidModel(vm.Vmo);
            this.ValidModelEvent?.Invoke(vm.Vmo);
        }
        //导出inp
@@ -212,6 +219,20 @@
            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();
        }
        //上移
@@ -238,5 +259,28 @@
        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);
            }
        }
    }
}