/// <remarks> /// I'm not a huge fan of this manual cloning. /// However, I'm choosing this over taking a dependency on a mapper /// or performing a deep clone that includes the Recipients collection unnecessarily. /// </remarks> private static AddRecipient CloneWithoutRecipients(AddRecipient contact) { return(new AddRecipient() { DatabaseId = contact.DatabaseId, Columns = contact.Columns, UpdateIfFound = contact.UpdateIfFound, SyncFields = contact.SyncFields }); }
public virtual string Encode(AddRecipient message) { if (message == null) { throw new ArgumentNullException("message"); } var xml = new XElement(XName.Get("Envelope")); var bodyXml = new XElement(XName.Get("Body")); var addReceipentXml = new XElement(XName.Get("AddRecipient")); addReceipentXml.SetElementValue(XName.Get("LIST_ID"), message.DatabaseId); addReceipentXml.SetElementValue(XName.Get("CREATED_FROM"), message.CreatedFrom); addReceipentXml.SetElementValue(XName.Get("UPDATE_IF_FOUND"), message.UpdateIfFound); // Add COLUMNS if (message.Columns.Count > 0) { foreach (var column in message.Columns) { var columnXml = new XElement(XName.Get("COLUMN")); var name = new XElement(XName.Get("NAME")) { Value = column.Key }; var value = new XElement(XName.Get("VALUE")) { Value = column.Value }; columnXml.Add(name); columnXml.Add(value); addReceipentXml.Add(columnXml); } } // Add SYNC_COLUMNS if (message.SyncFields != null) { var syncColumnsXml = new XElement(XName.Get("SYNC_FIELDS")); foreach (var syncColumn in message.SyncFields) { var syncColumnXml = new XElement(XName.Get("SYNC_FIELD")); var name = new XElement(XName.Get("NAME")) { Value = syncColumn.Key }; var value = new XElement(XName.Get("VALUE")) { Value = syncColumn.Value }; syncColumnXml.Add(name); syncColumnXml.Add(value); syncColumnsXml.Add(syncColumnXml); } addReceipentXml.Add(syncColumnsXml); } bodyXml.Add(addReceipentXml); xml.Add(bodyXml); return(xml.ToString()); }