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(); } } }
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); }