/// <summary> /// Restituisce se la risorsa ha un attributo attivo che abilita /// la procedura di intestatura /// </summary> /// <param name="endPoint">Risorsa di cui valutare gli attributi</param> /// <param name="attributeName">Attributo da ricercare</param> /// <returns>Se l'attributo è presente, attivo e con valore 1</returns> public static bool HasActiveBooleanAttribute(this IDncEndPoint endPoint, string attributeName) { if (endPoint == null) { return(false); } var channel = endPoint.GetChannel(); if (channel == null) { return(false); } var attributes = channel.Settings.Customization.Attributes; if (attributes == null) { return(false); } var outResult = false; var isValid = attributes.TryGetActiveAttribute(attributeName, ValueContainerType.Boolean, out outResult); return(isValid && outResult); }
/// <summary> /// Verifica se è presente un attributo di tipo stringa e ne restituisce il valore /// </summary> /// <param name="endPoint">EndPoint di cui valutare gli attributi</param> /// <param name="attributeName">Attributo da ricercare</param> /// <param name="attributeValue">Valore estratto dall'attributo</param> /// <returns>Se l'attributo è presente e con un valore valido</returns> public static bool TryGetActiveEndPointStringAttribute(this IDncEndPoint endPoint, string attributeName, out string attributeValue) { attributeValue = string.Empty; if (endPoint == null) { return(false); } var channel = endPoint.GetChannel(); if (channel == null) { return(false); } var attributes = channel.Settings.Customization.Attributes; if (attributes == null) { return(false); } var isValid = attributes.TryGetActiveAttribute(attributeName, ValueContainerType.String, out attributeValue); return(isValid); }
/// <summary> /// Verifica se è presente un attributo di tipo stringa e ne restituisce il valore /// </summary> /// <param name="endPoint">EndPoint di cui valutare gli attributi</param> /// <param name="attributeName">Attributo da ricercare</param> /// <param name="containerType">Tipo di dato</param> /// <param name="attributeValue">Valore estratto dall'attributo</param> /// <returns>Se l'attributo è presente e con un valore valido</returns> public static bool TryGetEndPointActiveAttribute <T>(this IDncEndPoint endPoint, string attributeName, ValueContainerType containerType, out T attributeValue) { attributeValue = default(T); if (endPoint == null) { return(false); } var channel = endPoint.GetChannel(); if (channel == null) { return(false); } var attributes = channel.Settings.Customization.Attributes; if (attributes == null) { return(false); } if (attributes == null || string.IsNullOrWhiteSpace(attributeName)) { return(false); } var attribute = attributes.FirstOrDefault(a => a.Name == attributeName); if (attribute == null) { return(false); } var isValid = attribute.IsValid && attribute.Type == containerType && attribute.TryConvertValueToType(out attributeValue); return(isValid); }