예제 #1
0
        static void Main(string[] args)
        {
            #region create tdms application and login
            TDMSApplication myapp = new TDMSApplication();

            if (!myapp.IsLoggedIn)
            {
                myapp.Login("sysadmin", "", "kosmos", @"192.168.16.8\tdmsserver");
            }

            #endregion

            #region get object_tom and files

            //подключаемся к объекту по GUID
            string     GUID           = "{49DFA37A-E760-4C83-A084-9C270A47DA39}";
            TDMSObject buildingObject = myapp.GetObjectByGUID(GUID);

            // получаем все Томы (object_tom) данного Объекта (object_object). Чертежи хранятся в файловом составе Томов
            // лучше создать ручную выборку для получения Томов в примере получение черерз метод ContentAll - сквозной состав объекта

            TDMSObjects toms = buildingObject.ContentAll.ObjectsByDef("OBJECT_TOM"); //метод ObjectsByDef позволяет во всей коллекции объектов осуществить фильтр по типу объекта

            TDMSObject firstTom  = toms[0];
            TDMSFiles  tomsFiles = firstTom.Files;
            TDMSFile   firstFile = tomsFiles[0];

            firstFile.CheckOut(firstFile.WorkFileName);
            #endregion

            Console.ReadKey();
            myapp.Quit();
        }
예제 #2
0
 internal override TDMSFile CheckInFile(TDMSFile tdmsFile,
                                        FileInfo file)
 {
     return
         (new FileCheckInSafe(
              new FileCheckInLogged(
                  //new FileCheckIn(tdmsFile, file)
                  new FileCheckInDirect(tdmsFile, file)
                  )
              ).CheckIn());
 }
예제 #3
0
        public IEnumerable <TDMSFile> CheckInFiles()
        {
            var result   = new List <TDMSFile>();
            var newFiles = new List <FileInfo>(Files);

            foreach (TDMSObject tdmsObject in TdmsObjects)
            {
                foreach (TDMSFile tdmsFile in tdmsObject.Files)
                {
                    foreach (FileInfo f in Files)
                    {
                        if (tdmsFile.FileName.Equals(f.Name))
                        {
                            TDMSFile checkInResult = CheckInFile(tdmsFile, f);
                            if (checkInResult != null)
                            {
                                result.Add(checkInResult);
                                newFiles.Remove(f);
                            }
                        }
                    }
                }
                foreach (FileInfo f in newFiles)
                {
                    if (!tdmsObject.Files.Has(f))
                    {
                        var      tdmsFile      = tdmsObject.Files.Create("FILE_ALL");
                        TDMSFile checkInResult = CheckInFile(tdmsFile, f);
                        if (checkInResult != null)
                        {
                            result.Add(checkInResult);
                        }
                    }
                }
            }
            return(result);
        }
예제 #4
0
        public async Task UploadFiles(CancellationToken ct)
        {
            if (serviceRunning)
            {
                Logger.Debug("Сервис UploadFiles уже был запущен ранее.");
                return;
            }
            serviceRunning = true;
            try
            {
                UploadFilesExtensionConfiguration cfg = UploadFilesExtensionConfiguration.Current;
                Logger.Debug("Запуск расширения загрузки файлов в объект...");

                #region Attributes
                if (string.IsNullOrEmpty(cfg.Guid))
                {
                    Logger.Error("Параметр Guid не задан в файле конфигурации расширения. Выполнение операции приостановлено!");
                    return;
                }
                if (string.IsNullOrEmpty(cfg.Folder))
                {
                    Logger.Error("Параметр Folder не задан в файле конфигурации расширения. Выполнение операции приостановлено!");
                    return;
                }
                if (string.IsNullOrEmpty(cfg.Filedef))
                {
                    Logger.Error("Параметр Filedef не задан в файле конфигурации расширения. Выполнение операции приостановлено!");
                    return;
                }
                #endregion

                if (!Application.FileDefs.Has(cfg.Filedef))
                {
                    Logger.Error("В базе не найден выбранный для загрузки тип файла: " + cfg.Filedef); return;
                }

                TDMSObject obj = Application.GetObjectByGUID(cfg.Guid);

                if (obj == null)
                {
                    Logger.Debug("Не найден объект для импорта файлов с GUID: " + cfg.Guid);
                }
                else
                {
                    TDMSFiles files = obj.Files;
                    foreach (var filePath in Directory.GetFiles(cfg.Folder))
                    {
                        string filename = Path.GetFileName(filePath);
                        if (!files.Has(filename))
                        {
                            TDMSFile f = files.Create(cfg.Filedef, filePath);
                            Logger.Info("Файл " + filename + " загружен в базу. Handle загруженного файла: " + f.Handle);
                        }
                        else
                        {
                            Logger.Info("Файл " + filename + " пропущен - файл с данным именем уже загружен в объект.");
                        }
                    }
                    obj.Update();
                }

                Logger.Debug("Загрузка файлов завершена.");
            }
            finally
            {
                serviceRunning = false;
            }
        }
 public FileCheckInDirect(TDMSFile tdmsFile, FileInfo fileInfo)
 {
     TdmsFile = tdmsFile;
     FileInfo = fileInfo;
 }
예제 #6
0
 internal abstract TDMSFile CheckInFile(TDMSFile tdmsFile, FileInfo file);