using Aspose.Cells.Drawing; using Prism.Dialogs; using SWS.CAD.Models; using SWS.CAD.Services; using SWS.CAD.ViewModels.myViewModelBase; using SWS.CAD.Views; using SWS.CAD.Views.CustomControl; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Globalization; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Forms; using System.Windows.Interop; using Teigha.DatabaseServices; using Telerik.Windows.Controls; using Unity; using static Bricscad.Quad.QuadSelectionData; using DialogResult = System.Windows.Forms.DialogResult; using MessageBox = System.Windows.Forms.MessageBox; namespace SWS.CAD.ViewModels { public class DialogCheckInRecordViewModel : DialogBase, IDialogAware { DrawingServce _drawingService { get; set; } AnnexesService _annexesService; public DialogCheckInRecordViewModel() { title = "检入记录"; _drawingService = GlobalObject.container.Resolve(); _annexesService = GlobalObject.container.Resolve(); } public DialogCloseListener RequestClose { get; } public bool CanCloseDialog() { return true; } public void OnDialogClosed() { } private ObservableCollection _listData; public ObservableCollection listData { get { return _listData; } set { _listData = value; RaisePropertyChanged(nameof(listData)); } } private ec_drawing_syn _selectData; public ec_drawing_syn selectData { get { return _selectData; } set { _selectData = value; RaisePropertyChanged(nameof(selectData)); } } private ec_drawing_file dwgFile; public async void OnDialogOpened(IDialogParameters parameters) { dwgFile = parameters.GetValue(GlobalObject.dialogPar.info.ToString()); title = $"【{dwgFile.DrawingFileName}】的检入记录"; var list = await _drawingService.GetCheckInLog(dwgFile.DrawingFileID); if (list != null) { listData=new ObservableCollection(list); } } public override async void ExecuteOKCommandAsync(object para) { if (selectData==null) { MessageBox.Show("请先选择要下载的数据!"); return; } #region 保存 SaveFileDialog saveDlg = new SaveFileDialog(); saveDlg.Filter = "图纸文件(*.dwg)|*.dwg"; saveDlg.FilterIndex = 1; saveDlg.RestoreDirectory = true; var dwgName = selectData.CreateTime?.ToString("yyyy-MM-dd HH.mm.ss") + "_" + selectData.DrawingFile; saveDlg.FileName = dwgName; if (saveDlg.ShowDialog() == DialogResult.OK) { var filePath = saveDlg.FileName; if (File.Exists(filePath)) { File.Delete(filePath); } var dwgfileDto = await _annexesService.GetAnnexesFile(selectData.FolderId); var msg = await _annexesService.DownloadFile(filePath, dwgfileDto.F_Id); if (string.IsNullOrEmpty(msg)) { MessageBox.Show("下载图纸文件成功!"); } else { MessageBox.Show("下载图纸文件异常:"+msg); } } #endregion } public override void ExecuteCloseCommand(object parameter) { if (parameter as string == "ClickNo") { RequestClose.Invoke(ButtonResult.No); } else { RequestClose.Invoke(ButtonResult.Cancel); } this.Dispose(); } } }