/// <summary> /// Generates an XML document for the given user. /// </summary> /// <param name="user">The user instance for which the XML should be generated.</param> /// <param name="settings">A settings object to drive the rendering.</param> internal string RenderUserXml(User user, RenderUserSettings settings) { var xmlDocument = BuildXmlDocument(); var tablesNode = CreateAndAppendTablesNode(xmlDocument, settings); tablesNode.AppendChild(BuildUserXml(xmlDocument, user, settings)); tablesNode.AppendChild(BuildSystemFields(xmlDocument, user)); tablesNode.AppendChild(BuildUserAddressesXml(xmlDocument, user)); if (settings.Beautify) { return(xmlDocument.Beautify()); } return(xmlDocument.InnerXml); }
private static XmlNode BuildUserXml(XmlDocument xmlDocument, User user, RenderUserSettings settings) { var tableNode = CreateTableNode(xmlDocument, "AccessUser"); var itemNode = CreateAndAppendItemNode(tableNode, "AccessUser"); itemNode.SetAttribute("userMode", settings.UserSyncMode.ToString()); AddChildXmlNode(itemNode, "AccessUserId", user.ID.ToString()); AddChildXmlNode(itemNode, "AccessUserCustomerNumber", user.CustomerNumber); AddChildXmlNode(itemNode, "AccessUserExternalId", user.ExternalID); AddChildXmlNode(itemNode, "AccessUserUserName", user.UserName); AddChildXmlNode(itemNode, "AccessUserName", user.Name); AddChildXmlNode(itemNode, "AccessUserTitle", user.Title); AddChildXmlNode(itemNode, "AccessUserFirstName", user.FirstName); AddChildXmlNode(itemNode, "AccessUserMiddleName", user.MiddleName); AddChildXmlNode(itemNode, "AccessUserLastName", user.LastName); AddChildXmlNode(itemNode, "AccessUserDepartment", user.Department); AddChildXmlNode(itemNode, "AccessUserEmail", user.Email); AddChildXmlNode(itemNode, "AccessUserPhone", user.Phone); AddChildXmlNode(itemNode, "AccessUserFax", user.Fax); AddChildXmlNode(itemNode, "AccessUserType", user.UserType.ToString()); AddChildXmlNode(itemNode, "AccessUserValidFrom", user.ValidFrom.ToIntegrationString()); AddChildXmlNode(itemNode, "AccessUserValidTo", user.ValidTo.ToIntegrationString()); AddChildXmlNode(itemNode, "AccessUserAddress", user.Address); AddChildXmlNode(itemNode, "AccessUserAddress2", user.Address2); AddChildXmlNode(itemNode, "AccessUserHouseNumber", user.HouseNumber); AddChildXmlNode(itemNode, "AccessUserZip", user.Zip); AddChildXmlNode(itemNode, "AccessUserCity", user.City); AddChildXmlNode(itemNode, "AccessUserState", user.State); AddChildXmlNode(itemNode, "AccessUserCountry", user.Country); AddChildXmlNode(itemNode, "AccessUserJobTitle", user.JobTitle); AddChildXmlNode(itemNode, "AccessUserCompany", user.Company); AddChildXmlNode(itemNode, "AccessUserPhonePrivate", user.PhonePrivate); AddChildXmlNode(itemNode, "AccessUserMobile", user.PhoneMobile); AddChildXmlNode(itemNode, "AccessUserCurrencyCode", user.Currency); AddChildXmlNode(itemNode, "AccessUserActive", user.Active.ToString()); AddChildXmlNode(itemNode, "AccessUserImage", user.Image); AddChildXmlNode(itemNode, "AccessUserBusiness", user.PhoneBusiness); AddChildXmlNode(itemNode, "AccessUserShopId", user.ShopID); AddChildXmlNode(itemNode, "AccessUserPointBalance", user.PointBalance.ToIntegrationString()); AddChildXmlNode(itemNode, "AccessUserGeoLocationLat", user.GeolocationLatitude.ToIntegrationString(6)); AddChildXmlNode(itemNode, "AccessUserGeoLocationLng", user.GeolocationLongitude.ToIntegrationString(6)); AddChildXmlNode(itemNode, "AccessUserGeoLocationIsCustom", user.IsGeolocationCustom.ToString()); AddChildXmlNode(itemNode, "AccessUserGeoLocationHash", user.GeolocationHashCode); AddChildXmlNode(itemNode, "AccessUserGeoLocationImage", user.GeolocationIcon); AddChildXmlNode(itemNode, "AccessUserNewsletterAllowed", user.EmailAllowed.ToString()); AddChildXmlNode(itemNode, "AccessUserCreatedOn", user.CreatedOn?.ToIntegrationString() ?? string.Empty); AddChildXmlNode(itemNode, "AccessUserUpdatedOn", user.UpdatedOn?.ToIntegrationString() ?? string.Empty); AddChildXmlNode(itemNode, "AccessUserCreatedBy", user.CreatedByUser); AddChildXmlNode(itemNode, "AccessUserUpdatedBy", user.UpdatedByUser); AddChildXmlNode(itemNode, "AccessUserEmailPermissionGivenOn", user.EmailPermissionGivenOn?.ToIntegrationString() ?? string.Empty); AddChildXmlNode(itemNode, "AccessUserEmailPermissionUpdatedOn", user.EmailPermissionUpdatedOn?.ToIntegrationString() ?? string.Empty); AddChildXmlNode(itemNode, "AccessUserVatRegNumber", user.VatRegNumber); AddChildXmlNode(itemNode, "AccessUserDisableLivePrices", user.IsLivePricesDisabled.ToString()); AddChildXmlNode(itemNode, "AccessUserLastLoginOn", user.LastLogOnOn?.ToIntegrationString() ?? string.Empty); AddChildXmlNode(itemNode, "AccessUserExported", user.Exported?.ToIntegrationString() ?? string.Empty); RenderCustomFields(itemNode, user); tableNode.AppendChild(itemNode); return(tableNode); }
internal static string BuildUserRequest(User user, RenderUserSettings renderUserSettings) { return(new UserXmlRenderer().RenderUserXml(user, renderUserSettings)); }