/// <summary> /// Add customer tokens /// </summary> /// <param name="tokens">List of already added tokens</param> /// <param name="customer">Customer</param> public virtual void AddCustomerTokens(IList <Token> tokens, Customer customer) { tokens.Add(new Token("Customer.Email", customer.Email)); tokens.Add(new Token("Customer.Username", customer.Username)); tokens.Add(new Token("Customer.FullName", customer.GetFullName())); tokens.Add(new Token("Customer.FirstName", customer.GetAttribute <string>(SystemCustomerAttributeNames.FirstName))); tokens.Add(new Token("Customer.LastName", customer.GetAttribute <string>(SystemCustomerAttributeNames.LastName))); var customAttributesXml = customer.GetAttribute <string>(SystemCustomerAttributeNames.CustomCustomerAttributes); tokens.Add(new Token("Customer.CustomAttributes", _customerAttributeFormatter.FormatAttributes(customAttributesXml), true)); //note: we do not use SEO friendly URLS because we can get errors caused by having .(dot) in the URL (from the email address) //TODO add a method for getting URL (use routing because it handles all SEO friendly URLs) var passwordRecoveryUrl = string.Format("{0}passwordrecovery/confirm?token={1}&email={2}", GetStoreUrl(), customer.GetAttribute <string>(SystemCustomerAttributeNames.PasswordRecoveryToken), HttpUtility.UrlEncode(customer.Email)); var accountActivationUrl = string.Format("{0}customer/activation?token={1}&email={2}", GetStoreUrl(), customer.GetAttribute <string>(SystemCustomerAttributeNames.AccountActivationToken), HttpUtility.UrlEncode(customer.Email)); var emailRevalidationUrl = string.Format("{0}customer/revalidateemail?token={1}&email={2}", GetStoreUrl(), customer.GetAttribute <string>(SystemCustomerAttributeNames.EmailRevalidationToken), HttpUtility.UrlEncode(customer.Email)); tokens.Add(new Token("Customer.PasswordRecoveryURL", passwordRecoveryUrl, true)); tokens.Add(new Token("Customer.AccountActivationURL", accountActivationUrl, true)); tokens.Add(new Token("Customer.EmailRevalidationURL", emailRevalidationUrl, true)); //event notification _eventPublisher.EntityTokensAdded(customer, tokens); }
/// <summary> /// Add customer tokens /// </summary> /// <param name="tokens">List of already added tokens</param> /// <param name="customer">Customer</param> public virtual void AddCustomerTokens(IList <Token> tokens, Customer customer) { tokens.Add(new Token("Customer.Email", customer.Email)); tokens.Add(new Token("Customer.Username", customer.Username)); tokens.Add(new Token("Customer.FullName", _customerService.GetCustomerFullName(customer))); tokens.Add(new Token("Customer.FirstName", _genericAttributeService.GetAttribute <string>(customer, GSCustomerDefaults.FirstNameAttribute))); tokens.Add(new Token("Customer.LastName", _genericAttributeService.GetAttribute <string>(customer, GSCustomerDefaults.LastNameAttribute))); tokens.Add(new Token("Customer.VatNumber", _genericAttributeService.GetAttribute <string>(customer, GSCustomerDefaults.VatNumberAttribute))); tokens.Add(new Token("Customer.VatNumberStatus", ((VatNumberStatus)_genericAttributeService.GetAttribute <int>(customer, GSCustomerDefaults.VatNumberStatusIdAttribute)).ToString())); var customAttributesXml = _genericAttributeService.GetAttribute <string>(customer, GSCustomerDefaults.CustomCustomerAttributes); tokens.Add(new Token("Customer.CustomAttributes", _customerAttributeFormatter.FormatAttributes(customAttributesXml), true)); //note: we do not use SEO friendly URLS for these links because we can get errors caused by having .(dot) in the URL (from the email address) var passwordRecoveryUrl = RouteUrl(routeName: "PasswordRecoveryConfirm", routeValues: new { token = _genericAttributeService.GetAttribute <string>(customer, GSCustomerDefaults.PasswordRecoveryTokenAttribute), email = customer.Email }); var accountActivationUrl = RouteUrl(routeName: "AccountActivation", routeValues: new { token = _genericAttributeService.GetAttribute <string>(customer, GSCustomerDefaults.AccountActivationTokenAttribute), email = customer.Email }); var emailRevalidationUrl = RouteUrl(routeName: "EmailRevalidation", routeValues: new { token = _genericAttributeService.GetAttribute <string>(customer, GSCustomerDefaults.EmailRevalidationTokenAttribute), email = customer.Email }); var wishlistUrl = RouteUrl(routeName: "Wishlist", routeValues: new { customerGuid = customer.CustomerGuid }); tokens.Add(new Token("Customer.PasswordRecoveryURL", passwordRecoveryUrl, true)); tokens.Add(new Token("Customer.AccountActivationURL", accountActivationUrl, true)); tokens.Add(new Token("Customer.EmailRevalidationURL", emailRevalidationUrl, true)); tokens.Add(new Token("Wishlist.URLForCustomer", wishlistUrl, true)); //event notification _eventPublisher.EntityTokensAdded(customer, tokens); }
private string GetCustomCustomerAttributes(Customer customer) { var selectedCustomerAttributes = customer.GetAttribute <string>(SystemCustomerAttributeNames.CustomCustomerAttributes, _genericAttributeService); return(_customerAttributeFormatter.FormatAttributes(selectedCustomerAttributes, ";")); }