public void SetAttributeValue(IEnumerable <XElement> elements,
                               string attrName, AttributeValueModifier modifier)
 {
     foreach (var element in elements)
     {
         var    attr  = element.Attribute(attrName);
         bool   exist = attr != null;
         string value = attr?.Value;
         modifier.Invoke(ref exist, ref value);
         if (exist)
         {
             element.SetAttributeValue(attrName, value);
         }
         else if (attr != null)
         {
             attr.Remove();
         }
     }
 }
示例#2
0
        public static void SetAttributeValue(this AttributeValueModifier attributeValueModifier, Hyland.Unity.WorkView.Attribute attribute, object value)
        {
            if (attribute == null)
            {
                throw new ArgumentNullException(nameof(attribute));
            }

            switch (attribute.AttributeType)
            {
            case AttributeType.Document:
            case AttributeType.Relation:
            case AttributeType.Integer:
                attributeValueModifier.SetAttributeValue(attribute, (long)value);
                break;

            case AttributeType.Decimal:
            case AttributeType.Currency:
                attributeValueModifier.SetAttributeValue(attribute, (decimal)value);
                break;

            case AttributeType.Float:
                attributeValueModifier.SetAttributeValue(attribute, (double)value);
                break;

            case AttributeType.Date:
            case AttributeType.DateTime:
                attributeValueModifier.SetAttributeValue(attribute, (DateTime)value);
                break;

            case AttributeType.FormattedText:
            case AttributeType.Alphanumeric:
            case AttributeType.Text:
                attributeValueModifier.SetAttributeValue(attribute, (string)value);
                break;

            case AttributeType.Boolean:
                attributeValueModifier.SetAttributeValue(attribute, (bool)value);
                break;

            default:
                break;
            }
        }
 public void SetPageAttributes(string attrName, AttributeValueModifier modifier)
 {
     SetAttributeValue(doc.Root.Descendants(), attrName, modifier);
 }