//Получаем все экземпляры Галактики public IgObjects GetAllInstances() { var objects = _galaxy.QueryObjects(EgObjectIsTemplateOrInstance.gObjectIsInstance, EConditionType.namedLike, " ", EMatch.MatchCondition); GalaxyExceptions.ThrowIfNoSuccess(CommandResult); return(objects); }
//Возвращает пустую коллекцию public IgObjects CreateEmptyGalaxyObjectCollection() { var collection = _galaxy.CreategObjectCollection(); GalaxyExceptions.ThrowIfNoSuccess(CommandResult); return(collection); }
// Возвращает все редактируемые экземпляры public IgObjects GetAllCheckedOutInstances() { var objects = _galaxy.QueryObjects(EgObjectIsTemplateOrInstance.gObjectIsInstance, EConditionType.checkoutStatusIs, ECheckoutStatus.checkedOutToMe, EMatch.MatchCondition); GalaxyExceptions.ThrowIfNoSuccess(CommandResult); return(objects); }
// Возвращает IgObjects коллекцию по списку имен public IgObjects GetTemplates(string[] tagNames) { var objects = _galaxy.QueryObjectsByName(EgObjectIsTemplateOrInstance.gObjectIsTemplate, ref tagNames); GalaxyExceptions.ThrowIfNoSuccess(CommandResult); return(objects); }
// возвращает набор экземпляров (имена еоторых примерно совпадаю) из указананного списка public IgObjects GetInstancesLike(string tagName) { if (string.IsNullOrEmpty(tagName)) { throw new ArgumentException(nameof(tagName)); } var objects = _galaxy.QueryObjects(EgObjectIsTemplateOrInstance.gObjectIsInstance, EConditionType.namedLike, tagName, EMatch.MatchCondition); GalaxyExceptions.ThrowIfNoSuccess(CommandResult); return(objects); }
// Подключение к Galaxy public void Login(string userName = null, string password = null, bool bForceSynchronization = false) { if (!bForceSynchronization) { _galaxy.Login(userName, password); } else { _galaxy.LoginEx(userName, password, bForceSynchronization); } GalaxyExceptions.ThrowIfNoSuccess(CommandResult); }
//Возвращает шаблоны производные от заданного шаблона (выдает только первое поколение) public IgObjects GetTemplatesDerivedFrom(string tagName) { if (string.IsNullOrWhiteSpace(tagName)) { throw new ArgumentNullException(nameof(tagName)); } var objects = _galaxy.QueryObjects(EgObjectIsTemplateOrInstance.gObjectIsTemplate, EConditionType.derivedOrInstantiatedFrom, tagName, EMatch.MatchCondition); GalaxyExceptions.ThrowIfNoSuccess(CommandResult); return(objects); }
// Получить экземпляр если он существует public IInstance GetInstanceIfExists(string tagName) { if (string.IsNullOrWhiteSpace(tagName)) { throw new ArgumentException(nameof(tagName)); } var objects = _galaxy.QueryObjects(EgObjectIsTemplateOrInstance.gObjectIsInstance, EConditionType.NameEquals, tagName, EMatch.MatchCondition); GalaxyExceptions.ThrowIfNoSuccess(CommandResult); if (objects == null || objects.count == 0) { return(null); } return((IInstance)(objects[tagName])); }
//Создание шаблона из шаблона public ITemplate CreateTemplate(string tagName, ITemplate parent) { if (string.IsNullOrWhiteSpace(tagName)) { throw new ArgumentException(nameof(tagName)); } if (parent == null) { throw new ArgumentNullException(nameof(parent)); } ITemplate result = parent.CreateTemplate(tagName, true); GalaxyExceptions.ThrowIfNoSuccess(CommandResult); return(result); }
//получение Galaxy по имени public static IGalaxy GetGalaxy(string galaxyName, string nodeName) { if (string.IsNullOrEmpty(galaxyName)) { throw new ArgumentException(nameof(galaxyName)); } _grAccessApp = null; _grAccessApp = new GRAccessApp(); var galaxies = _grAccessApp.QueryGalaxies(nodeName); GalaxyExceptions.ThrowIfNoSuccess(_grAccessApp.CommandResult); IGalaxy galaxy = galaxies[galaxyName]; GalaxyExceptions.ThrowIfNoSuccess(_grAccessApp.CommandResult); return(galaxy == null ? throw new GalaxyObjectNotFoundException(galaxyName) : galaxy); }
// Возвращает набор экземпляров из указанного списка public IgObjects GetInstances(string[] tagNames) { if (tagNames.Length <= 0) { throw new Exception("$Список тегов не может быть пустым."); } foreach (var item in tagNames) { if (string.IsNullOrWhiteSpace(item)) { throw new ArgumentException(nameof(tagNames)); } } var objects = _galaxy.QueryObjectsByName(EgObjectIsTemplateOrInstance.gObjectIsInstance, ref tagNames); GalaxyExceptions.ThrowIfNoSuccess(CommandResult); return(objects); }
//Создаем и возвращаем экземпляр из указанного шаблона - добавлять area или нет ???? public IInstance CreateInstance(string tagName, ITemplate template, string containerName = null) { if (string.IsNullOrWhiteSpace(tagName)) { throw new ArgumentException(nameof(tagName)); } if (template == null) { throw new ArgumentNullException(nameof(template)); } IInstance instance = template.CreateInstance(tagName, true); if (instance == null) { string msg = string.Format($"Объект с именем {tagName} не создан! " + _galaxy.CommandResult != null && !_galaxy.CommandResult.Successful ? _galaxy.CommandResult.Text + " " + _galaxy.CommandResult.CustomMessage : "Возможно такой объект уже существует."); throw new GalaxyCannotCreateInstanceException(tagName, msg, template, template.CommandResult); } if (!string.IsNullOrWhiteSpace(containerName)) { try { ((IgObject)instance).CheckOutWithCheckStatus(); instance.Container = containerName; var text = instance.CommandResult.Text + " - " + instance.CommandResult.CustomMessage; GalaxyExceptions.ThrowIfNoSuccess(instance.CommandResult, $"Ошибка при назначении объекту {tagName} контейнера {containerName}\n"); } catch { throw; } finally { ((IgObject)instance).SaveAndCheckIn($"Установка для объекта {tagName} Container={containerName}"); } } GalaxyExceptions.ThrowIfNoSuccess(CommandResult); return(instance); }
// Возвращает экземпляры производыне от заданного шаблона public IgObjects GetInstancesDerividedFrom(string tagName) { IgObjects gobjects = null; try { if (string.IsNullOrEmpty(tagName)) { throw new ArgumentNullException(nameof(tagName)); } gobjects = _galaxy.QueryObjects(EgObjectIsTemplateOrInstance.gObjectIsInstance, EConditionType.derivedOrInstantiatedFrom, tagName, EMatch.MatchCondition); GalaxyExceptions.ThrowIfNoSuccess(CommandResult); return(gobjects); } catch (Exception) { throw; } finally { gobjects = null; GC.Collect(); } }