Exemplo n.º 1
0
        /// <summary>
        /// Serializes a customer to xml suitable for Examine indexer.
        /// </summary>
        /// <param name="customer">
        /// The customer.
        /// </param>
        /// <returns>
        /// The <see cref="XDocument"/>.
        /// </returns>
        internal static XDocument SerializeToXml(this ICustomer customer)
        {
            string xml;

            using (var sw = new StringWriter())
            {
                using (var writer = new XmlTextWriter(sw))
                {
                    writer.WriteStartDocument();
                    writer.WriteStartElement("customer");
                    writer.WriteAttributeString("id", ((Customer)customer).ExamineId.ToString(CultureInfo.InvariantCulture));
                    writer.WriteAttributeString("customerKey", customer.Key.ToString());
                    writer.WriteAttributeString("loginName", customer.LoginName);
                    writer.WriteAttributeString("firstName", customer.FirstName);
                    writer.WriteAttributeString("lastName", customer.LastName);
                    writer.WriteAttributeString("email", customer.Email);
                    writer.WriteAttributeString("taxExempt", customer.TaxExempt.ToString());
                    writer.WriteAttributeString("extendedData", customer.ExtendedDataAsJson());
                    writer.WriteAttributeString("notes", customer.Notes);
                    writer.WriteAttributeString("addresses", customer.AddressesAsJson());
                    writer.WriteAttributeString("lastActivityDate", customer.LastActivityDate.ToString("s"));
                    writer.WriteAttributeString("createDate", customer.CreateDate.ToString("s"));
                    writer.WriteAttributeString("updateDate", customer.UpdateDate.ToString("s"));
                    writer.WriteAttributeString("allDocs", "1");
                    writer.WriteEndElement();
                    writer.WriteEndDocument();
                    xml = sw.ToString();
                }
            }

            return(XDocument.Parse(xml));
        }