Пример #1
0
        public MailJetCampaignRequest getRequestData(CampaignDocument campaign, List <CampaignSettingDocument> settings)
        {
            MailJetCampaignRequest request = FillSendinBlueRequestFromCosmos(settings);

            request.Name = campaign.Name;
            request.Text = campaign.Text;
            return(request);
        }
Пример #2
0
        public string SendCampaign(MailJetCampaignRequest requestData)
        {
            string Id = string.Empty;

            try
            {
                MailjetClient client = new MailjetClient(requestData.ApiKey, requestData.SecretKey);

                var sender = GetSender(client);

                MailjetRequest request = new MailjetRequest
                {
                    Resource = Campaigndraft.Resource,
                }
                .Property(Campaigndraft.Locale, "en_US")
                .Property(Campaigndraft.Sender, GetMyProfile(client).CompanyName)
                .Property(Campaigndraft.SenderEmail, sender.Email)
                .Property(Campaigndraft.Subject, requestData.Subject)
                .Property("ContactsListID", requestData.ListId)
                .Property(Campaigndraft.Title, requestData.Name)    //campaign
                .Property("SegmentationID", requestData.SegmentId);

                MailjetResponse response = Task.Run(() => client.PostAsync(request)).Result;
                if (response.IsSuccessStatusCode)
                {
                    List <MailJetCampaign> listCampaigncampaign = JsonConvert.DeserializeObject <List <MailJetCampaign> >(response.GetData().ToString());
                    var  campaignMailJet    = listCampaigncampaign.FirstOrDefault();
                    bool actionAddBody      = AddBody(client, Convert.ToInt64(campaignMailJet.Id), requestData.Text); // campaign
                    bool actionSendCampaign = SendCampaign(client, Convert.ToInt64(campaignMailJet.Id));
                    return(actionAddBody && actionSendCampaign ? campaignMailJet.Id : null);
                }
                else
                {
                    telemetria.Critical(string.Format("StatusCode: {0}\n", response.StatusCode) + " " + string.Format("ErrorInfo: {0}\n", response.GetErrorInfo()) + " " + string.Format("ErrorMessage: {0}\n", response.GetErrorMessage()));
                }
            }
            catch (Exception ex)
            {
                var messageException = telemetria.MakeMessageException(ex, System.Reflection.MethodBase.GetCurrentMethod().Name);
                telemetria.Critical(messageException);
            }
            return(Id);
        }
Пример #3
0
        public MailJetCampaignRequest FillSendinBlueRequestFromCosmos(List <CampaignSettingDocument> campaignSettings)
        {
            MailJetCampaignRequest request = new MailJetCampaignRequest();

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

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

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

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

                // from campaigns
                if (campaignSettings.Count > 0)
                {
                    foreach (var setting in campaignSettings)
                    {
                        switch (setting.Name)
                        {
                        case "mailJetSubject":
                        {
                            request.Subject = setting.Name.Equals("mailJetSubject") ? setting.Value : string.Empty;
                        }
                        break;
                        }
                    }
                }
            }
            catch (Exception e)
            {
                string exceptionMessage = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name);
                telemetria.Critical(exceptionMessage);
            }
            return(request);
        }