コード例 #1
0
        public MailChimpCampaignRequest getRequestData(CampaignDocument campaign, List <CampaignSettingDocument> settings)
        {
            MailChimpCampaignRequest request = FillSendinBlueRequestFromCosmos(settings);

            request.Name = campaign.Name;
            request.Text = campaign.Text;
            return(request);
        }
コード例 #2
0
        public string SendCampaign(MailChimpCampaignRequest request)
        {
            string Id = string.Empty;

            try
            {
                CampaignCreateOptions cco = new CampaignCreateOptions()
                {
                    ListId    = request.ListId,
                    Title     = request.Name,
                    Subject   = request.Subject,
                    FromEmail = request.FromEmail,
                    FromName  = request.FromName
                };

                Dictionary <string, string> sections = new Dictionary <string, string>();


                CampaignCreateContent ccc = new CampaignCreateContent()
                {
                    Sections = sections,
                    HTML     = request.Text
                };

                IMailChimpManager mailChimpManager = new MailChimp.MailChimpManager(request.ApiKey);
                var campaignMailChimp = mailChimpManager.CreateCampaign("regular", cco, ccc, null, null);

                if (!String.IsNullOrEmpty(campaignMailChimp.Id))
                {
                    var resultSendCampaign = mailChimpManager.SendCampaign(campaignMailChimp.Id);
                    Id = resultSendCampaign.Complete ? campaignMailChimp.Id : string.Empty;
                }
            }
            catch (Exception e)
            {
                var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name);
                telemetria.Critical(messageException);
            }
            return(Id);
        }
コード例 #3
0
        public MailChimpCampaignRequest FillSendinBlueRequestFromCosmos(List <CampaignSettingDocument> campaignSettings)
        {
            MailChimpCampaignRequest request = new MailChimpCampaignRequest();

            if (this.settings.Count > 0)
            {
                foreach (var item in settings)
                {
                    switch (item.Name)
                    {
                    case "mailChimpApiToken":
                    {
                        request.ApiKey = item.Name.Equals("mailChimpApiToken") ? item.Value : string.Empty;
                    }
                    break;

                    case "mailChimpList":
                    {
                        request.ListId = item.Name.Equals("mailChimpList") ? item.Value : string.Empty;
                    }
                    break;

                    case "mailChimpTemplate":
                    {
                        request.TemplateId = item.Name.Equals("mailChimpTemplate") ? item.Value : string.Empty;
                    }
                    break;
                    }
                }
            }

            // from campaigns
            if (campaignSettings.Count > 0)
            {
                foreach (var setting in campaignSettings)
                {
                    switch (setting.Name)
                    {
                    case "mailChimpSubject":
                    {
                        request.Subject = setting.Name.Equals("mailChimpSubject") ? setting.Value : string.Empty;
                    }
                    break;

                    case "mailChimpFromName":
                    {
                        request.FromName = setting.Name.Equals("mailChimpFromName") ? setting.Value : string.Empty;
                    }
                    break;

                    case "mailChimpFromEmail":
                    {
                        request.FromEmail = setting.Name.Equals("mailChimpFromEmail") ? setting.Value : string.Empty;
                    }
                    break;
                    }
                }
            }

            return(request);
        }