public KompasAttrAutoImport(IPersonalSettings personalSettings) { Key = "KompasAttrAutoImport-E74EA6D5-C31E-4FE2-84E9-5AB64E503126"; Title = "Автоимпорт атрибутов из КОМПАС-3D"; Editor = null; _doc = null; var setting = new SettingLoader(personalSettings); _pairPilotKompasAttrs = GetListPairPilotKompasAttr(setting.Json); }
public bool Handle(string filePath, string sourceFilePath, AutoimportSource autoimportSource) { _doc = null; if (string.IsNullOrWhiteSpace(sourceFilePath)) { return(false); } // если исходный файл компас. Проверяем расширения. if (!IsFileExtension(sourceFilePath, CDW_EXT) && !IsFileExtension(sourceFilePath, SPW_EXT)) { return(false); } // Тут выполняем анализ документа и извлекаем из него информацию об обознаяении и наименовании try { using (var inputStream = new FileStream(sourceFilePath, FileMode.Open, FileAccess.Read)) { var ms = new MemoryStream(); inputStream.Seek(0, SeekOrigin.Begin); inputStream.CopyTo(ms); ms.Position = 0; if (IsFileExtension(sourceFilePath, SPW_EXT)) { var taskOpenSpwFile = new Task <SpwAnalyzer>(() => new SpwAnalyzer(ms)); taskOpenSpwFile.Start(); taskOpenSpwFile.Wait(); if (taskOpenSpwFile.Result.IsCompleted) { var spc = taskOpenSpwFile.Result.GetSpecification; spc.FileName = sourceFilePath; _doc = spc; } else { _doc = null; } } if (IsFileExtension(sourceFilePath, CDW_EXT)) { var taskOpenCdwFile = new Task <CdwAnalyzer>(() => new CdwAnalyzer(ms)); taskOpenCdwFile.Start(); taskOpenCdwFile.Wait(); if (taskOpenCdwFile.Result.IsCompleted) { var drawing = taskOpenCdwFile.Result.Drawing; _doc = drawing; } else { _doc = null; } } } } catch (Exception) { _doc = null; return(false); } Thread.Sleep(2000); return(false); }