private void Set(XElement element, string partName, string fieldName, string valueName, string value)
        {
            InfosetHelper.ThrowIfContainsInvalidXmlCharacter(value);

            var partElement = element.Element(partName);

            if (partElement == null)
            {
                partElement = new XElement(partName);
                element.Add(partElement);
            }
            var fieldElement = partElement.Element(fieldName);

            if (fieldElement == null)
            {
                fieldElement = new XElement(fieldName);
                partElement.Add(fieldElement);
            }
            if (string.IsNullOrEmpty(valueName))
            {
                fieldElement.Value = value;
            }
            else
            {
                fieldElement.SetAttributeValue(XmlConvert.EncodeLocalName(valueName), value);
            }
        }
Exemplo n.º 2
0
        public void Set(string partName, string fieldName, string valueName, string value, bool versionable = false)
        {
            InfosetHelper.ThrowIfContainsInvalidXmlCharacter(value);

            var element = versionable ? VersionInfoset.Element : Infoset.Element;

            var encodedPartName = XmlConvert.EncodeName(partName);
            var partElement     = element.Element(encodedPartName);

            if (partElement == null)
            {
                partElement = new XElement(encodedPartName);
                Infoset.Element.Add(partElement);
            }

            var encodedFieldName = XmlConvert.EncodeName(fieldName);
            var fieldElement     = partElement.Element(encodedFieldName);

            if (fieldElement == null)
            {
                fieldElement = new XElement(encodedFieldName);
                partElement.Add(fieldElement);
            }

            if (string.IsNullOrEmpty(valueName))
            {
                fieldElement.Value = value ?? "";
            }
            else
            {
                fieldElement.SetAttributeValue(XmlConvert.EncodeName(valueName), value);
            }
        }