コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }