From a2f11a5e60bb577fb793949191793a59953e236b Mon Sep 17 00:00:00 2001
From: Shuxia Ning <NingShuxia0927@outlook.com>
Date: 星期一, 02 十二月 2024 15:22:44 +0800
Subject: [PATCH] Name 属性

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs |  405 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 345 insertions(+), 60 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs
index 83c8aeb..60c0b84 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs
@@ -1,5 +1,7 @@
 锘縰sing DevExpress.Utils;
+using DevExpress.XtraTreeList;
 using HStation.WinFrmUI.Xhs;
+using Timer = System.Threading.Timer;
 
 namespace HStation.WinFrmUI
 {
@@ -9,14 +11,34 @@
         {
             InitializeComponent();
             this.treeList1.InitialMultiColSettings();
+            this.treeList1.Appearance.Row.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Default;
             this.PageTitle.Caption = "椤圭洰绠$悊";
             this.PageTitle.HeaderSvgImage = this.svgImg32[0];
             this.PageTitle.SvgImageSize = new Size(24, 24);
+            this.Load += XhsProjectMgrPage_Load;
+        }
+
+        private void XhsProjectMgrPage_Load
+            (object sender, EventArgs e)
+        {
+            repositoryItemImageComboBox1.Items.AddEnum(typeof(XhsProjectMgrViewModel.eFileStatus));
+            var a = typeof(XhsProjectMgrViewModel.eFileStatus);
+            repositoryItemImageComboBox1.Items[0].ImageIndex = 0;
+            repositoryItemImageComboBox1.Items[1].ImageIndex = 1;
+            repositoryItemImageComboBox1.Items[2].ImageIndex = 2;
+            repositoryItemImageComboBox1.Items[3].ImageIndex = 3;
+            repositoryItemImageComboBox1.Items[4].ImageIndex = 4;
+            repositoryItemImageComboBox1.Items[5].ImageIndex = 5;
+            repositoryItemImageComboBox1.Items[6].ImageIndex = 6;
+            repositoryItemImageComboBox1.Items[7].ImageIndex = 7;
+            repositoryItemImageComboBox1.Items[8].ImageIndex = 8;
         }
 
         private List<XhsProjectMgrViewModel> _allProjectList = null;
 
-        private BLL.XhsProject _Bll = null;
+        private BLL.XhsProjectExtensions _bll = null;
+
+        private event Action ImportProjectCompletedEvent = null;
 
         /// <summary>
         /// 鍒濆鍖栨暟鎹簮
@@ -24,79 +46,72 @@
         public override async void InitialDataSource()
         {
             base.InitialDataSource();
-            _Bll = new BLL.XhsProject();
-            var allProjectList = await _Bll.GetAll();
+            this.SetBindingData();
+        }
+
+        private async void SetBindingData()
+        {
+            _bll = new BLL.XhsProjectExtensions();
+            var allProjectList = await _bll.GetAll();
             _allProjectList = new List<XhsProjectMgrViewModel>();
             if (allProjectList != null && allProjectList.Count > 0)
             {
                 foreach (var project in allProjectList)
                 {
-                    var vm = new XhsProjectMgrViewModel(project);
-                    _allProjectList.Add(vm);
+                    var mapinfo = await new Yw.BLL.MapInfo().Get(HStation.Xhs.DataType.XhsProject, project.ID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location);
+                    var bimFile = await BimfaceFileStateHelper.IsHaveBimFace(project.ID);
+                    if (bimFile != null)
+                    {
+                        //濡傛灉鏂囦欢鐘舵�佷负涓婁紶涓垯杩涜瀹氭椂璇锋眰鍒锋柊鐘舵��
+                        if (bimFile.FileStatus == 0)
+                        {
+                            Task.Factory.StartNew(() =>
+                            {
+                                StartTimer(300, bimFile.ID);
+                            });
+                        }
+                        var vm = new XhsProjectMgrViewModel(project, true, bimFile.FileStatus, mapinfo);
+                        _allProjectList.Add(vm);
+                    }
+                    else
+                    {
+                        var vm = new XhsProjectMgrViewModel(project, false, 8, mapinfo);
+                        _allProjectList.Add(vm);
+                    }
                 }
             }
             this.xhsProjectMgrViewModelBindingSource.DataSource = _allProjectList;
         }
 
-        //鍙戝竷
-        private void barBtnPublish_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        //璁℃椂鍣�(鍒锋柊涓婁紶鐘舵��)
+        public void StartTimer(int intervalMilliseconds, long ID)
         {
+            // 鍒涘缓涓�涓� Timer锛屽畠灏嗗湪缁欏畾鐨勬椂闂撮棿闅斿悗瑙﹀彂鍥炶皟鏂规硶
+            var timer = new System.Threading.Timer(TimerCallback, ID, Timeout.Infinite, intervalMilliseconds);
+            // 鍚姩 Timer
+            timer.Change(intervalMilliseconds, intervalMilliseconds);
         }
 
-        //鏌ョ湅bimface妯″瀷
-        private async void barBtnViewBimface_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        private async void TimerCallback(object state)
         {
-            var vm = GetCurrentViewModel();
-            if (vm == null)
+            var tupleState = (Tuple<long, Timer>)state;
+            long iD = tupleState.Item1;
+            Timer timer = tupleState.Item2;
+            try
             {
-                return;
+                var stateResult = await BimfaceHelper.GetFileTranslateStatus(iD);
+                if (stateResult == 0)
+                {
+                    this.SetBindingData();
+                }
+                else
+                {
+                    timer.Dispose();
+                }
             }
-            var guid = new PageGuid()
+            catch (Exception ex)
             {
-                Modular = Yw.WinFrmUI.PageModular.Bimface,
-                MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab,
-                Function = Yw.WinFrmUI.PageFunction.ViewBimface3d,
-                TagName = $"{vm.ID}"
-            };
-
-            if (!IsExistPage(guid, true))
-            {
-                var page = new ViewXhsProjectBimfacePage();
-                await page.SetBindingData(vm.ID);
-                CreatePage(page, guid);
             }
-        }
-
-        //鍏ㄩ儴灞曞紑
-        private void barBtnExpandAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
-        {
-            this.treeList1.ExpandAll();
-        }
-
-        //鍏ㄩ儴鎶樺彔
-        private void barBtnCollpseAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
-        {
-            this.treeList1.CollapseAll();
-        }
-
-        /// <summary>
-        /// 鏍戠嚎
-        /// </summary>
-        private void barCkTreeLine_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
-        {
-            this.treeList1.OptionsView.ShowTreeLines = this.barCkTreeLine.Checked ? DefaultBoolean.True : DefaultBoolean.False;
-        }
-
-        //鏌ヨ
-        private void barBtnSearch_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
-        {
-            this.treeList1.OptionsFind.AlwaysVisible = !this.treeList1.OptionsFind.AlwaysVisible;
-        }
-
-        //鍒锋柊
-        private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
-        {
-            this.RefreshData();
         }
 
         #region 褰撳墠
@@ -128,22 +143,292 @@
         #region 鍩虹鎿嶄綔
 
         //娣诲姞
-        private void barBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        private async void barBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
-            var dlg = new AddProjectDlg();
-            dlg.ShowDialog();
+            /*            var dlg = new AddProjectDlg();
+                        dlg.ReloadDataEvent += async (rhs, mapinfo) =>
+                        {
+                            var bll = new BLL.XhsProjectExtensions();
+                            var id = await bll.Insert(rhs);
+                            if (id > 0)
+                            {
+                                rhs.ID = id;
+                                var vmo = await _bll.GetByID(id);
+                                _allProjectList.Add(new XhsProjectMgrViewModel(vmo, false));
+                                this.xhsProjectMgrViewModelBindingSource.ResetBindings(false);
+                                if (mapinfo != null)
+                                {
+                                    mapinfo.ObjectID = id;
+                                    mapinfo.ObjectName = rhs.Name;
+                                    var mapinfoid = await new Yw.BLL.MapInfo().Insert(mapinfo);
+                                    if (mapinfoid < 0)
+                                    {
+                                        TipFormHelper.ShowError("鍦板浘淇℃伅娣诲姞閿欒");
+                                    }
+                                }
+                                return true;
+                            }
+                            return false;
+                        };
+                        dlg.ShowDialog();
+            */
+            var dlg = new ImportXhsProjectDlg();
+            dlg.SetBindingData();
+            if (dlg.ShowDialog() == DialogResult.OK)
+            {
+                var prj = dlg.ViewModel;
+                if (prj.ProjectID == null)
+                    return;
+                var vmo = await _bll.GetByID((long)prj.ProjectID);
+                if (vmo == null)
+                {
+                    TipFormHelper.ShowError("瀵煎叆澶辫触!");
+                    return;
+                }
+                else
+                {
+                    TipFormHelper.ShowSucceed("瀵煎叆鎴愬姛!");
+                    var mapinfo = await new Yw.BLL.MapInfo().Get(HStation.Xhs.DataType.XhsProject, (long)prj.ProjectID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location);
+                    var bimFile = await BimfaceFileStateHelper.IsHaveBimFace((long)prj.ProjectID);
+                    if (bimFile != null)
+                    {
+                        _allProjectList.Add(new XhsProjectMgrViewModel(vmo, true, bimFile.FileStatus, mapinfo));
+                    }
+                    else
+                    {
+                        _allProjectList.Add(new XhsProjectMgrViewModel(vmo, false, 8, mapinfo));
+                    }
+                    this.xhsProjectMgrViewModelBindingSource.ResetBindings(false);
+                }
+            }
         }
 
         //缂栬緫
         private void barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
+            var currentVm = this.GetCurrentViewModel();
+            if (currentVm == null)
+            {
+                MessageBoxHelper.ShowWarning("璇烽�夋嫨鏁版嵁琛�!");
+                return;
+            }
+            var dlg = new EditProjectDlg();
+            dlg.SetBindingData(currentVm.ID);
+            dlg.ReloadDataEvent += async (rhs, mapinfo) =>
+            {
+                if (await _bll.Update(rhs))
+                {
+                    currentVm.Reset(rhs);
+                    this.xhsProjectMgrViewModelBindingSource.ResetBindings(false);
+                    if (mapinfo != null)
+                    {
+                        //  mapinfo.ObjectID = id;
+                        mapinfo.ObjectName = rhs.Name;
+                        var bol = await new Yw.BLL.MapInfo().Update(mapinfo);
+                        if (!bol)
+                        {
+                            TipFormHelper.ShowError("鍦板浘淇℃伅缂栬緫閿欒");
+                        }
+                    }
+                    return true;
+                }
+                return false;
+            };
+            dlg.ShowDialog();
         }
 
         //鍒犻櫎
-        private void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        private async void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            var currentVm = GetCurrentViewModel();
+            if (currentVm == null)
+            {
+                MessageBoxHelper.ShowWarning("璇烽�夋嫨鏁版嵁琛岋紒");
+                return;
+            }
+            if (MessageBoxHelper.IsClickOk($"纭鍒犻櫎鏁版嵁琛�?", "鎻愮ず"))
+                return;
+            var groupresult = await _bll.DeleteByID(currentVm.ID);
+            if (groupresult)
+            {
+                _allProjectList.Remove(currentVm);
+                this.xhsProjectMgrViewModelBindingSource.ResetBindings(false);
+                TipFormHelper.ShowSucceed("鍒犻櫎鎴愬姛!");
+            }
+            else
+            {
+                TipFormHelper.ShowSucceed("鍒犻櫎澶辫触!");
+                return;
+            }
+        }
+
+        //璇︾粏淇℃伅
+        private void barBtnInfo_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
         }
 
         #endregion 鍩虹鎿嶄綔
+
+        private void treeList1_CustomDrawRow(object sender, DevExpress.XtraTreeList.CustomDrawRowEventArgs e)
+        {
+            var a = repositoryItemButtonEdit1.ReadOnly = true;
+        }
+
+        private async void treeList1_RowCellClick(object sender, RowCellClickEventArgs e)
+        {
+            if (_allProjectList == null || _allProjectList.Count < 1)
+                return;
+            var vm = GetCurrentViewModel();
+            if (vm == null)
+            {
+                return;
+            }
+            if (e.Column != this.ColViewBimface)
+                return;
+            if (!vm.IsHaveBimface)
+            {
+                TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣�!");
+                return;
+            }
+            var guid = new PageGuid()
+            {
+                Modular = Yw.WinFrmUI.PageModular.Bimface,
+                MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab,
+                Function = Yw.WinFrmUI.PageFunction.ViewSchemeMgr,
+                TagName = $"{vm.ID}"
+            };
+
+            if (!IsExistPage(guid, true))
+            {
+                var page = new XhsProjectSimulationMgrPage();
+                await page.SetBindingData(vm.ID);
+                CreatePage(page, guid);
+            }
+        }
+
+        #region 鏇村鎿嶄綔
+
+        //鍏ㄩ儴灞曞紑
+        private void barBtnExpandAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            this.treeList1.ExpandAll();
+        }
+
+        //鍏ㄩ儴鎶樺彔
+        private void barBtnCollpseAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            this.treeList1.CollapseAll();
+        }
+
+        /// <summary>
+        /// 鏍戠嚎
+        /// </summary>
+        private void barCkTreeLine_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            this.treeList1.OptionsView.ShowTreeLines = this.barCkTreeLine.Checked ? DefaultBoolean.True : DefaultBoolean.False;
+        }
+
+        //鏌ヨ
+        private void barBtnSearch_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            this.treeList1.OptionsFind.AlwaysVisible = !this.treeList1.OptionsFind.AlwaysVisible;
+        }
+
+        //鍒锋柊
+        private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            this.SetBindingData();
+        }
+
+        #endregion 鏇村鎿嶄綔
+
+        //鏌ョ湅bimface妯″瀷
+        private async void barBtnViewBimface_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            var vm = GetCurrentViewModel();
+            if (vm == null)
+            {
+                return;
+            }
+            if (!vm.IsHaveBimface)
+            {
+                TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣�!");
+                return;
+            }
+            var guid = new PageGuid()
+            {
+                Modular = Yw.WinFrmUI.PageModular.Bimface,
+                MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab,
+                Function = Yw.WinFrmUI.PageFunction.ViewBimface3d,
+                TagName = $"{vm.ID}"
+            };
+
+            if (!IsExistPage(guid, true))
+            {
+                var page = new ViewXhsProjectBimfacePage();
+                await page.SetBindingData(vm.ID);
+                CreatePage(page, guid);
+            }
+        }
+
+        //鏌ョ湅姘村姏妯″瀷
+        private void barBtnViewHydro_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            if (_allProjectList == null || _allProjectList.Count < 1)
+                return;
+            var vm = GetCurrentViewModel();
+            if (vm == null)
+            {
+                return;
+            }
+            if (!vm.IsHaveBimface)
+            {
+                TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣�!");
+                return;
+            }
+            var guid = new PageGuid()
+            {
+                Modular = "Hydro",
+                MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab,
+                Function = "ViewModel",
+            };
+            if (!IsExistPage(guid, true))
+            {
+                var page = new HydroQ3dViewPage();
+                page.SetBindingData(vm.ID);
+                CreatePage(page, guid);
+            }
+        }
+
+        //瀵煎叆鏂囦欢
+        private async void BtnAddBimfaceFile_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            var currentVm = this.GetCurrentViewModel();
+            if (currentVm == null)
+            {
+                MessageBoxHelper.ShowWarning("璇烽�夋嫨鏁版嵁琛�!");
+                return;
+            }
+            if (currentVm.ModelState != XhsProjectMgrViewModel.eFileStatus.Noupload)
+            {
+                MessageBoxHelper.ShowWarning("宸茬粡瀛樺湪妯″瀷鏂囦欢!");
+                return;
+            }
+            var dlg = new ImportXhsProjectFileDlg();
+            dlg.SetBindingData(currentVm.ID);
+            if (dlg.ShowDialog() == DialogResult.OK)
+            {
+                var prj = dlg.ViewModel;
+                if (prj.ProjectID == null)
+                    return;
+                var mapinfo = await new Yw.BLL.MapInfo().Get(HStation.Xhs.DataType.XhsProject, (long)prj.ProjectID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location);
+                var bimFile = await BimfaceFileStateHelper.IsHaveBimFace((long)prj.ProjectID);
+                if (bimFile != null)
+                {
+                    currentVm.Reset(currentVm, bimFile.FileStatus);
+                    this.xhsProjectMgrViewModelBindingSource.ResetBindings(false);
+                }
+            }
+        }
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3