/// <summary>
        ///     Save contact confirmation email
        /// </summary>
        /// <param name="contact">Contact saved</param>
        /// <param name="distributorId">Name of the owner of the site</param>
        /// ///
        /// <param name="extension">Website extension</param>
        /// ///
        /// <param name="locale">Customer locale</param>
        /// ///
        /// <param name="domain">Domain for this locale</param>
        /// ///
        /// <param name="primaryLocale"></param>
        /// <param name="registrationSource">Where did the customer got the invitation</param>
        /// <param name="distributorName"></param>
        /// <param name="distributorEmail"></param>
        /// <param name="isDistributorCopied"></param>
        /// <returns>True if success</returns>
        public static bool SendContactConfirmationEmail(
            Contact_V01 contact,
            string distributorId,
            string extension,
            string locale,
            string domain,
            String distributorName,
            String distributorEmail,
            Boolean isDistributorCopied,
            String primaryLocale,
            RegistrationSource registrationSource = RegistrationSource.Other
            )
        {
            if (contact.EmailAddresses.Count < 1)
            {
                throw new ArgumentException("Argument can not be null", "Contact Email");
            }

            if (contact.LocalName == null)
            {
                throw new ArgumentException("Argument can not be null", "Contact Name");
            }

            if (string.IsNullOrEmpty(contact.DistributorID))
            {
                throw new ArgumentException("Argument can not be null", "Distributor ID");
            }

            var request = new TriggeredSendRequestRequest_V01();

            request.Data = new TriggeredSaveContactConformationSendData_V01
            {
                CustomerEmail       = contact.EmailAddresses[0].Address,
                CustomerName        = contact.LocalName,
                CustomerPhoneNumber =
                    (contact.Phones.Count > 0) ? contact.Phones.FirstOrDefault().Number : String.Empty,
                DistributorEmail    = distributorEmail,
                DistributorId       = distributorId,
                DistributorName     = distributorName,
                DataKey             = Guid.NewGuid().ToString(),
                Locale              = primaryLocale,
                Extension           = extension,
                IsDistributorCopied = isDistributorCopied,
                Domain              = domain,
                RegistrationSource  = registrationSource,
                EmailLanguageLocale = locale
            };

            using (var proxy = ServiceClientProvider.GetDistributorCRMServiceProxy())
            {
                try
                {
                    var response = proxy.SendTriggeredMessage(new SendTriggeredMessageRequest(request));
                    return(response.SendTriggeredMessageResult.Status == ServiceResponseStatusType.Success);
                }
                catch (Exception ex)
                {
                    Log(ex, proxy);
                    return(false);
                }
            }
        }
Пример #2
0
 RegistrationSourceViewModel CreateViewModel(RegistrationSource registrationSource)
 {
     return(new RegistrationSourceViewModel(registrationSource.Id, _navigator, registrationSource.Description));
 }