Esempio n. 1
0
        internal void EmitChanged(XmlElement root)
        {
            var xml = root.OwnerDocument;

            foreach (var v in _original.Values)
            {
                if (!_values.ContainsKey(v.Field.Id))
                {
                    var e    = xml.CreateElement("custom_field");
                    var attr = xml.CreateAttribute("id");
                    attr.Value = XmlConvert.ToString(v.Field.Id);
                    e.Attributes.Append(attr);
                    root.AppendChild(e);
                }
            }
            foreach (var v in _values.Values)
            {
                CustomFieldValue original;
                if (_original.TryGetValue(v.Field.Id, out original) && original.Value == v.Value)
                {
                    continue;
                }
                var e    = xml.CreateElement("custom_field");
                var attr = xml.CreateAttribute("id");
                attr.Value = XmlConvert.ToString(v.Field.Id);
                e.Attributes.Append(attr);
                var ev = xml.CreateElement("value");
                RedmineUtility.EmitString(ev, v.Value);
                e.AppendChild(ev);
                root.AppendChild(e);
            }
        }