示例#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 static IEnumerable <TDMSObject> GetObjectsByGUIDs(
     this TDMSApplication app,
     IEnumerable <string> guids
     )
 {
     return(guids.Select(g => app.GetObjectByGUID(g)));
 }
示例#3
0
        public TDMSObject CreateCaVersion(TDMSObject tdmsObject, int versionName)
        {
            var obj = app.GetObjectByGUID(tdmsObject.GUID);

            obj.Versions.Create(versionName, $"export @: {DateTime.Now}");
            var activeVersion = tdmsObject.Versions.Active;

            return(activeVersion);
        }
示例#4
0
 internal static IEnumerable <TDMSObject> GetObjectsByGUIDs(
     this TDMSApplication app,
     List <CacheItem> cache,
     string Id)
 {
     return(cache
            .Where(c => c.Id == Id)
            .Select(c => c.Guid)
            .Select(g => app.GetObjectByGUID(g)));
 }
示例#5
0
        public void GetRowsSafe_NoRowsTable_ReturnsEnumerableEmpty(
            TDMSApplication app)
        {
            var kspp = app.GetObjectByGUID(
                "{367F6686-E9BD-42C1-A1D3-05EAC8A55447}");
            var table = kspp.Attributes["A_Obj_Ref_Tbl"];

            var rows   = Utility.GetRowsSafe(table);
            var result = rows.Count();

            log.Debug("method: GetRowsSafe");
            log.Debug("scenario: NoRowsTable");
            log.Debug($"behavior: returns number of rows: {result}");
        }
示例#6
0
        public void GetRowsSafe_TableWithRows_ReturnsNumberOfRows(
            TDMSApplication app)
        {
            var kspp = app.GetObjectByGUID(
                "{7963AD9F-294E-4A7E-A0C4-3D2B52BD380B}");
            var table = kspp.Attributes["A_TblWorkability"];

            var rows   = Utility.GetRowsSafe(table);
            var result = rows.Count();

            log.Debug("method: GetRowsSafe");
            log.Debug("scenario: TableWithRows");
            log.Debug($"behavior: returns number of rows: {result}");
        }
示例#7
0
        public void GetRowsSafe_NotTable_ReturnsEnumerableEmpty(
            TDMSApplication app)
        {
            var kspp = app.GetObjectByGUID(
                "{7963AD9F-294E-4A7E-A0C4-3D2B52BD380B}");
            var table = kspp.Attributes["A_Fl_OutTechCntrl"];

            var rows   = Utility.GetRowsSafe(table);
            var result = rows.Equals(
                Enumerable.Empty <TDMSTableAttributeRow>());

            log.Debug("method: GetRowsSafe");
            log.Debug("scenario: ObjectHasNoTable");
            log.Debug($"behavior: returns enumerable empty: {result}");
        }
示例#8
0
        public void Execute()
        {
            var query        = application.Queries["Q_CorrectionAction"];
            var npp          = application.GetObjectByGUID("{7AEF6063-2D97-415D-ABDC-3F6FF62CC147}");
            var buildingCode = "UJA";

            //var systemCode = "";

            query.SetParameter("ObjRef", npp);
            query.SetParameter("CodeSys", String.Empty);
            query.SetParameter("CodeBld", buildingCode);

            //var queryObjs = query.Objects;

            return;


            //var objectDef = application.ObjectDefs.FirstOrDefault(objDef => objDef.SysName.Equals(T2ERootObjectDefName));
            //if (objectDef == null) return;

            //var objs = objectDef.Objects;
            //if (objs.Count == 0) return;
            //var obj = objs[0];



            //obj.Attributes["SampleAttributeDef-string"].Value = System.DateTime.Now.ToString();

            //var xmlString = httpClient.GetResponse("xml");
            //obj.Attributes["ATTR_SampleAttributeDef-xml"].Value = jsonString;

            //var invoker = new Invoker();
            ////var httpClient = new LocalHttpClient();
            //var httpClient = new EnoviaHttpClient();
            //var attributes = Application.
            //    GetObjectByGUID("{9CBED675-7CD0-4815-8D02-C8099D165C41}").
            //    Attributes;

            //var value = httpClient.GetResponse("json");
            //var command = new ChangeValue(attributes["ATTR_SampleAttributeDef-json"], value);
            //invoker.SetCommand(command);
            //invoker.ExecuteCommand();

            //value = httpClient.GetResponse("xml");
            //command = new ChangeValue(attributes["ATTR_SampleAttributeDef-xml"], value);
            //invoker.SetCommand(command);
            //invoker.ExecuteCommand();
        }
        /// <summary>
        /// Uploads files to Tdms objects
        /// </summary>
        /// <param name="cacheTdms"></param>
        /// <param name="Id"></param>
        /// <param name="folderPath"></param>
        /// <param name="fileName"></param>
        public void CheckInFiles(List <CacheItem> cacheTdms, string Id, string folderPath, string fileName)
        {
            try
            {
                if (!File.Exists($"{folderPath}\\{fileName}"))
                {
                    return;
                }

                var zipPath = $"{folderPath}\\{fileName}";
                var folder  = Directory.CreateDirectory($"{folderPath}\\{fileName.Substring(0, fileName.Length - "zip".Length)}");
                ZipFile.ExtractToDirectory(zipPath, folder.FullName);

                var match = cacheTdms.Where(cacheItem => cacheItem.id.Equals(Id));
                match.ToList().ForEach(cacheItem =>
                {
                    var cA    = application.GetObjectByGUID(cacheItem.guid);
                    var files = cA.Files;

                    var unZippedFiles = folder.GetFiles();

                    foreach (var item in unZippedFiles)
                    {
                        if (files.Has(item.Name))
                        {
                            files.Remove(files[item.Name]);
                        }
                        files.Create(application.FileDefs["FILE_ALL"], $"{item.FullName}");
                    }
                });
            }
            catch (Exception)
            {
                throw;
            }
        }
示例#10
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;
            }
        }