using DevExpress.CodeParser; using DevExpress.Utils; using DevExpress.XtraTreeList; using HStation.WinFrmUI.Xhs; using System.Data; namespace HStation.WinFrmUI { public partial class XhsProjectMgrPage : DocumentPage { public XhsProjectMgrPage() { InitializeComponent(); this.treeList1.InitialMultiColSettings(); this.PageTitle.Caption = "项目管理"; this.PageTitle.HeaderSvgImage = this.svgImg32[0]; this.PageTitle.SvgImageSize = new Size(24, 24); } private List _allProjectList = null; private BLL.XhsProjectExtensions _bll = null; /// /// 初始化数据源 /// public override async void InitialDataSource() { base.InitialDataSource(); this.SetBindingData(); } private async void SetBindingData() { _bll = new BLL.XhsProjectExtensions(); var allProjectList = await _bll.GetAll(); _allProjectList = new List(); if (allProjectList != null && allProjectList.Count > 0) { foreach (var project in allProjectList) { if (await IsHaveBimFace(project.ID)) { var vm = new XhsProjectMgrViewModel(project, true); _allProjectList.Add(vm); } else { var vm = new XhsProjectMgrViewModel(project, false); _allProjectList.Add(vm); } } } this.xhsProjectMgrViewModelBindingSource.DataSource = _allProjectList; } //查找项目是否存在模型 private async Task IsHaveBimFace(long ProjectID) { var projectSite = await new BLL.XhsProjectSiteStd().GetDefaultByProjectID(ProjectID); if (projectSite == null) { return false; } var relation = await new Yw.BLL.BimfaceFileRelationStd() .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, projectSite.ID, Yw.Bimface.Purpose.Simulation); if (relation == null) { return false; } var bimfaceFile = await new Yw.BLL.BimfaceFileStd().GetByID(relation.BimfaceFileID); if (bimfaceFile == null) { return false; } return true; } //查看bimface模型 private async void barBtnViewBimface_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = GetCurrentViewModel(); if (vm == null) { 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 barBtnExpandAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { this.treeList1.ExpandAll(); } //全部折叠 private void barBtnCollpseAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { this.treeList1.CollapseAll(); } /// /// 树线 /// 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(); } #region 当前 //获取当前 private XhsProjectMgrViewModel GetCurrentViewModel() { if (_allProjectList == null) { Yw.WinFrmUI.MessageBoxHelper.ShowError("数据初始化错误!"); return null; } if (_allProjectList == null) { Yw.WinFrmUI.MessageBoxHelper.ShowInfo("无数据"); return null; } var vm = this.treeList1.GetCurrentViewModel(_allProjectList); if (vm == null) { Yw.WinFrmUI.MessageBoxHelper.ShowInfo("请选择数据行!"); return null; } return vm; } #endregion 当前 #region 基础操作 //添加 private void barBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { 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(); } //编辑 private void barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var currentVm = this.GetCurrentViewModel(); 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 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.ViewBimface3d, TagName = $"{vm.ID}" }; if (!IsExistPage(guid, true)) { var page = new ViewXhsProjectBimfacePage(); await page.SetBindingData(vm.ID); CreatePage(page, guid); } } } }