Exemplo n.º 1
0
        // nueva funcionalidad
        public SendGridCampaignRequest FillSendinBlueRequestFromCosmos(List <CampaignSettingDocument> campaignSettings)
        {
            SendGridCampaignRequest request = new SendGridCampaignRequest();

            // get data from product settings
            if (this.settings != null && this.settings.Any())
            {
                foreach (var item in this.settings)
                {
                    request.ApiKey              = item.Name.Equals("sendGridApiToken") ? item.Value : request.ApiKey;
                    request.ListId              = item.Name.Equals("sendGridList") ? item.Value : request.ListId;
                    request.SenderId            = item.Name.Equals("sendGridSender") ? item.Value : request.SenderId;
                    request.UnsubscriberGroupId = item.Name.Equals("sendGridUnsubscribeGroup") ? item.Value : request.UnsubscriberGroupId;
                }
            }

            // get data from campaign settings
            if (campaignSettings != null && campaignSettings.Any())
            {
                foreach (var setting in campaignSettings)
                {
                    request.Subject = setting.Name.Equals("sendGridSubject") ? setting.Value : request.Subject;
                }
            }

            return(request);
        }
Exemplo n.º 2
0
        // nueva funcionalidad
        public SendGridCampaignRequest getRequestData(CampaignDocument campaign, List <CampaignSettingDocument> campaignSettings)
        {
            SendGridCampaignRequest request = FillSendinBlueRequestFromCosmos(campaignSettings);

            request.Text = campaign.Text;
            request.Name = campaign.Name;
            return(request);
        }
Exemplo n.º 3
0
        // nueva funcionalidad
        public string SendCampaign(SendGridCampaignRequest request)
        {
            string Id = string.Empty;

            try
            {
                var headers = new Dictionary <string, string> {
                    { "X-Mock", "201" }
                };
                var          sg           = new SendGridClient(request.ApiKey, apiHost, headers);
                JsonCampaign jsonCampaign = new JsonCampaign()
                {
                    categories             = new List <string>(),
                    custom_unsubscribe_url = "",
                    html_content           = "<html><head><title></title></head><body>" + request.Text + "[unsubscribe]</body></html>",
                    list_ids = new List <int>()
                    {
                        Convert.ToInt32(request.ListId)
                    },
                    plain_content        = "",
                    segment_ids          = new List <int>(),
                    sender_id            = Convert.ToInt32(request.SenderId),
                    subject              = request.Subject,
                    suppression_group_id = Convert.ToInt32(request.UnsubscriberGroupId),
                    title = request.Name
                };
                var data            = JsonConvert.SerializeObject(jsonCampaign);
                var response        = sg.RequestAsync(method: SendGridClient.Method.POST, urlPath: "campaigns", requestBody: data).GetAwaiter().GetResult();
                var deserializeBody = response.DeserializeResponseBody(response.Body);

                if (response.StatusCode.Equals(HttpStatusCode.Created))
                {
                    Id = Convert.ToString(deserializeBody["id"]);
                    SendCampaign(request.ApiKey, Id);
                }
            }
            catch (Exception ex)
            {
                var messageException = telemetria.MakeMessageException(ex, System.Reflection.MethodBase.GetCurrentMethod().Name);
                telemetria.Critical(messageException);
            }
            return(Id);
        }