//установка значения атриибутов public void SetValueAttributes(IgObject gobj, AttributesDictionary source) { if (gobj == null) { throw new IgObjectsNullReferenceExceptions(); } if (source == null) { throw new ArgumentNullException($"Класс-слоаварь равен null"); } gobj.CheckOutWithCheckStatus(); foreach (var item in source) { IAttribute attr = gobj.GetAttributesAny()[item.Key]; if (attr.CommandResult.Successful && attr != null) { attr.SetValue(item.Value); } } gobj.SaveAndCheckIn(); if (!gobj.CommandResult.Successful) { throw new GalaxyExceptions($"Не удается охранить объект {gobj.Tagname}."); } }
//Проверить, существует ли такой атрибут. public static bool IsExistAttribute(this IgObject gobj, string attrname) { if (gobj == null) { throw new ArgumentNullException($" Объект {gobj.Tagname} не существует или NULL"); } if (string.IsNullOrWhiteSpace(attrname)) { throw new Exception($"Имя атрибутта {nameof(attrname)} не может быть пустым"); } try { var attrs = gobj.GetAttributesAny();// TODO: проверить нужно ли брать на редактирвоание var attr = attrs[attrname]; if (attr == null) { return(false); } return(true); } catch (Exception) { return(false); throw; //TODO: может и не надо прокидывать дальше } }
// возвращает значение атрибта в MX public IMxValue GetMxValueAttribute(IgObject gobj, string attr_name) { if (string.IsNullOrEmpty(attr_name)) { throw new AttributeNullReferenceException(); } var attrs = gobj.GetAttributesAny(); return(attrs[attr_name].value); }
public static string[] GetInhScriptsName(this IgObject gobj) { if (gobj == null) { throw new IgObjectsNullReferenceExceptions(); } var attrStringXml_mine = gobj.GetAttributesAny(false)["_InheritedExtensions"].value.GetString(); XmlSerializer xmlExtension_mine = new XmlSerializer(typeof(ExtensionInfo)); var attrString = new StringReader(attrStringXml_mine); var attrDeserialize = (ExtensionInfo)xmlExtension_mine.Deserialize(attrString); var res_mine = attrDeserialize.ObjectExtension.Extension.Select(x => x.Name).ToArray(); return(res_mine); }
// Получаем знаения UDA public static Dictionary <string, string> GetUDAValues(this IgObject gobj) { if (gobj == null) { throw new IgObjectsNullReferenceExceptions(); } Dictionary <string, string> udas = new Dictionary <string, string>(); var attrs = gobj?.GetAttributesAny(); var uda_names = gobj?.GetInheritsUDANames().Concat(gobj?.GetMineUDANames().ToArray()); foreach (var name in uda_names) { udas.Add(name, attrs[name].value.GetString()); } return(udas); }
//Полчучаем значение атрибута public static string GetAttributeValue(this IgObject gobj, string attrname) { if (gobj == null) { throw new ArgumentNullException($" Объект {gobj.Tagname} не существует или NULL"); } if (string.IsNullOrWhiteSpace(attrname)) { throw new Exception($"Имя атрибута {nameof(attrname)} не может быть пустым"); } if (gobj.IsExistAttribute(attrname)) { var attrs = gobj.GetAttributesAny(); return(attrs[attrname]?.value?.GetString()); } else { return(null); } }