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(); }
internal static IEnumerable <TDMSObject> GetObjectsByGUIDs( this TDMSApplication app, IEnumerable <string> guids ) { return(guids.Select(g => app.GetObjectByGUID(g))); }
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); }
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))); }
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}"); }
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}"); }
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}"); }
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; } }
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; } }