| | |
| | | using DevExpress.Utils; |
| | | using DevExpress.XtraTreeList; |
| | | using HStation.WinFrmUI.Xhs; |
| | | using System.Data; |
| | | using NetTaste; |
| | | using System; |
| | | using Timer = System.Threading.Timer; |
| | | |
| | | namespace HStation.WinFrmUI |
| | | { |
| | |
| | | this.PageTitle.Caption = "项目管理"; |
| | | this.PageTitle.HeaderSvgImage = this.svgImg32[0]; |
| | | this.PageTitle.SvgImageSize = new Size(24, 24); |
| | | repositoryItemImageComboBox1.Items.AddEnum(typeof(Yw.WinFrmUI.Bimface.eFileStatus)); |
| | | var a = typeof(Yw.WinFrmUI.Bimface.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; |
| | | } |
| | | |
| | | private List<XhsProjectMgrViewModel> _allProjectList = null; |
| | |
| | | { |
| | | foreach (var project in allProjectList) |
| | | { |
| | | if (await IsHaveBimFace(project.ID)) |
| | | var bimFile = await BimfaceFileStateHelper.IsHaveBimFace(project.ID); |
| | | if (bimFile != null) |
| | | { |
| | | var vm = new XhsProjectMgrViewModel(project, true); |
| | | //如果文件状态为上传中则进行定时请求刷新状态 |
| | | if (bimFile.FileStatus == 0) |
| | | { |
| | | Task.Factory.StartNew(() => |
| | | { |
| | | StartTimer(300, bimFile.ID); |
| | | }); |
| | | } |
| | | var vm = new XhsProjectMgrViewModel(project, true, bimFile.FileStatus); |
| | | _allProjectList.Add(vm); |
| | | } |
| | | else |
| | |
| | | this.xhsProjectMgrViewModelBindingSource.DataSource = _allProjectList; |
| | | } |
| | | |
| | | //查找项目是否存在模型 |
| | | private async Task<bool> IsHaveBimFace(long ProjectID) |
| | | //计时器(刷新上传状态) |
| | | public void StartTimer(int intervalMilliseconds, long ID) |
| | | { |
| | | 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; |
| | | // 创建一个 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(); |
| | | } |
| | | var guid = new PageGuid() |
| | | else |
| | | { |
| | | Modular = Yw.WinFrmUI.PageModular.Bimface, |
| | | MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab, |
| | | Function = Yw.WinFrmUI.PageFunction.ViewBimface3d, |
| | | TagName = $"{vm.ID}" |
| | | }; |
| | | |
| | | if (!IsExistPage(guid, true)) |
| | | timer.Dispose(); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | var page = new ViewXhsProjectBimfacePage(); |
| | | await page.SetBindingData(vm.ID); |
| | | CreatePage(page, guid); |
| | | } |
| | | } |
| | | |
| | |
| | | { |
| | | 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 XhsSchemeMultiMgrPage(); |
| | | await page.SetBindingData(vm.ID); |
| | | CreatePage(page, guid); |
| | | } |
| | | } |
| | | |
| | | //查看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}" |
| | | }; |
| | |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | } |