/* ============================================================================== * 功能描述:VmVerticalPipeCheck * 创 建 者:Garrett * 创建日期:2019/11/5 15:25:33 * ==============================================================================*/ using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using FWindSoft.Wpf; using Saga.PlugIn.CreateFacility; using Saga.PlugIn.ModelCheck; using SAGA.DotNetUtils.WPF; using SAGA.RevitUtils; namespace Saga.PlugIn.VerticalPipeCheck { /// /// VmVerticalPipeCheck /// public class VmVerticalPipeCheck:BaseViewModelStub { #region Property private string m_UpFilePath; /// /// /// public string UpFilePath { get { return m_UpFilePath; } set { m_UpFilePath = value; NotifyPropertyChanged("UpFilePath"); } } private string m_DownFilePath; /// /// /// public string DownFilePath { get { return m_DownFilePath; } set { m_DownFilePath = value; NotifyPropertyChanged("DownFilePath"); } } private string m_SaveDir; /// /// 保存路径 /// public string SaveDir { get { return m_SaveDir; } set { m_SaveDir = value; NotifyPropertyChanged("SaveDir"); } } private string m_SavePath; /// /// 保存路径 /// public string SavePath { get { return m_SavePath; } set { m_SavePath = value; NotifyPropertyChanged("SavePath"); } } private ModelCheckState m_ModelCheckState; public ModelCheckState ModelCheckState { get { return m_ModelCheckState; } set { m_ModelCheckState = value; NotifyPropertyChanged(nameof(ModelCheckState)); } } #endregion [Command] public void Execute(object param) { try { switch (ModelCheckState) { case ModelCheckState.Prepare: WpfSysCmd.DoEvent(); ModelCheckState = ModelCheckState.Progress; string savePath = Path.Combine(SaveDir, $"{"模型规范检查报告"}{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx"); var tuple=VerticalPipeUtil.Execute(UpFilePath,DownFilePath,savePath); ModelCheckState = ModelCheckState.Ending; //为了Ending的界面显示,出问题注释掉 SavePath = savePath; WinTipVPipeCheckComplete win = new WinTipVPipeCheckComplete(tuple?.Item1,tuple?.Item2); win.ShowDialog(); WpfSysCmd.DoEvent(); break; case ModelCheckState.Progress: break; case ModelCheckState.Ending: System.Diagnostics.Process.Start("explorer.exe", SaveDir); break; } } catch (Exception e) { MessageShow.Show(e); } } public bool CanExecute(object param) { return ModelCheckState.Progress != ModelCheckState; } } }