Exemplo n.º 1
0
        public string GetEmailHtml(IExactTarget_Email emailItem)
        {
            var url          = _dependencies.SitecoreUrlWrapper.GetItemUrl(emailItem);
            var htmlResponse = _dependencies.WebClientWrapper.DownloadString(url);
            var inlineHtml   = _dependencies.Premailer.InlineCss(htmlResponse);

            return(inlineHtml);
        }
Exemplo n.º 2
0
 public FuelSDK.ET_Email PopulateEtModel(IExactTarget_Email emailItem)
 {
     return(new FuelSDK.ET_Email()
     {
         ID = emailItem.Exact_Target_External_Key,
         Subject = emailItem.Subject,
         Name = emailItem._Name,
         HTMLBody = GetEmailHtml(emailItem),
         TextBody = emailItem.Text_Body,
         CharacterSet = emailItem.Character_Set,
         CategoryID = emailItem.Category_Id,
         EmailType = "HTML",
         IsHTMLPaste = true
     });
 }
Exemplo n.º 3
0
        public PushEmailResponse PushEmail(IExactTarget_Email emailItem)
        {
            if (IsNullOrEmptyEmailItem(emailItem))
            {
                return(Respond(false, "Email not pushed to ExactTarget. Email item was null."));
            }

            _dependencies.LogWrapper.SitecoreInfo($"Email push to ExactTarget starting.  Email item Sitecore id: {emailItem._Id.ToString("B")}");

            FuelSDK.ET_Email etEmail;
            try
            {
                etEmail = PopulateEtModel(emailItem);
                if (string.IsNullOrWhiteSpace(etEmail.HTMLBody))
                {
                    throw new Exception("HTML body was empty.");
                }
            } catch (Exception ex)
            {
                return(Respond(false, $"Failed to populate email to send to ExactTarget.  Error: {ex.Message}"));
            }

            var response = IsEmailNewToExactTarget(emailItem)
                ? _dependencies.ExactTargetWrapper.CreateEmail(etEmail)
                : _dependencies.ExactTargetWrapper.UpdateEmail(etEmail);

            if (response.Success && IsEmailNewToExactTarget(emailItem))
            {
                UpdateSitecoreWithEmailId(emailItem, response);
            }

            if (response.Success)
            {
                return(Respond(true,
                               $"Email push to ExactTarget finished. Email item Sitecore id: {emailItem._Id.ToString("B")}, ET id: {emailItem.Exact_Target_External_Key}, "
                               + $"Result message: {response.Message}"));
            }
            else
            {
                return(Respond(false,
                               $"Email push to ExactTarget FAILED. Email item Sitecore id: {emailItem._Id.ToString("B")}, ET id: {emailItem.Exact_Target_External_Key}, "
                               + $"Result message: {response.Message}"));
            }
        }
Exemplo n.º 4
0
 private static bool IsNullOrEmptyEmailItem(IExactTarget_Email emailItem)
 => emailItem == null || emailItem._Id == Guid.Empty;
Exemplo n.º 5
0
 private static bool IsEmailNewToExactTarget(IExactTarget_Email emailItem) => emailItem.Exact_Target_External_Key == 0;
Exemplo n.º 6
0
 private void UpdateSitecoreWithEmailId(IExactTarget_Email etEmail, ExactTargetResponse response) =>
 _dependencies.SitecoreSecurityWrapper.WithSecurityDisabled(
     () => _dependencies.SitecoreServiceMaster.Save(
         etEmail.Alter(
             email => email.Exact_Target_External_Key = response.ExactTargetEmailId)));