public string CreateCampaignSendGrid(string idCampaign) { string apiKey = null; string idList = null; string idSender = null; string idUnsubscriberGroup = null; string subject = null; string idCampaignSendGrid = null; var campaign = _campaignService.GetCampaignById(idCampaign); var product = _campaignService.GetProductByIdProduct(campaign.PRODUCT.IdProduct); if (product.PRODUCT_SETTINGS != null && product.PRODUCT_SETTINGS.Any()) { foreach (var item in product.PRODUCT_SETTINGS) { apiKey = item.SettingName.Equals("sendGridApiToken") ? item.SettingValue : apiKey; idList = item.SettingName.Equals("sendGridList") ? item.SettingValue : idList; idSender = item.SettingName.Equals("sendGridSender") ? item.SettingValue : idSender; idUnsubscriberGroup = item.SettingName.Equals("sendGridUnsubscribeGroup") ? item.SettingValue : idUnsubscriberGroup; } } if (campaign.CAMPAIGN_SETTINGS != null && campaign.CAMPAIGN_SETTINGS.Any()) { foreach (var setting in campaign.CAMPAIGN_SETTINGS) { subject = setting.SettingName.Equals("sendGridSubject") ? setting.SettingValue : subject; } } var headers = new Dictionary <string, string> { { "X-Mock", "201" } }; var sg = new SendGridClient(apiKey, apiHost, headers); JsonCampaign jsonCampaign = new JsonCampaign() { categories = new List <string>(), custom_unsubscribe_url = "", html_content = "<html><head><title></title></head><body>" + campaign.AdText + "[unsubscribe]</body></html>", list_ids = new List <int>() { Convert.ToInt32(idList) }, plain_content = "", segment_ids = new List <int>(), sender_id = Convert.ToInt32(idSender), subject = subject, suppression_group_id = Convert.ToInt32(idUnsubscriberGroup), title = campaign.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)) { idCampaignSendGrid = Convert.ToString(deserializeBody["id"]); SendCampaign(apiKey, idCampaignSendGrid); } return(idCampaignSendGrid); }
public string CreateCampaign(string idCampaign) { dynamic json = new ExpandoObject(); dynamic fromField = new ExpandoObject(); dynamic campaign = new ExpandoObject(); dynamic content = new ExpandoObject(); dynamic sendSettings = new ExpandoObject(); dynamic selectedCampaigns = new List <string>(); string apiKey = null; string idList = null; string idFromField = null; string subject = null; var _campaign = _campaignService.GetCampaignById(idCampaign); var _product = _campaign.PRODUCT; if (_product.PRODUCT_SETTINGS != null && _product.PRODUCT_SETTINGS.Any()) { foreach (var item in _product.PRODUCT_SETTINGS) { apiKey = item.SettingName.Equals("getResponseApiToken") ? item.SettingValue : apiKey; idList = item.SettingName.Equals("getResponseList") ? item.SettingValue : idList; idFromField = item.SettingName.Equals("getResponseFromField") ? item.SettingValue : idFromField; } } if (_campaign.CAMPAIGN_SETTINGS != null && _campaign.CAMPAIGN_SETTINGS.Any()) { foreach (var setting in _campaign.CAMPAIGN_SETTINGS) { subject = setting.SettingName.Equals("getResponseSubject") ? setting.SettingValue : subject; } } json.name = _campaign.Name; json.type = "broadcast"; json.subject = subject; fromField.fromFieldId = idFromField; json.fromField = fromField; campaign.campaignId = idList; json.campaign = campaign; content.html = _campaign.AdText; content.plain = null; json.content = content; json.replyTo = fromField; selectedCampaigns.Add(idList); sendSettings.timeTravel = "false"; sendSettings.perfectTiming = "true"; sendSettings.selectedCampaigns = selectedCampaigns; sendSettings.selectedSegments = new List <string>(); sendSettings.selectedSuppressions = new List <string>(); sendSettings.excludedCampaigns = new List <string>(); sendSettings.excludedSegments = new List <string>(); sendSettings.selectedContacts = new List <string>(); json.sendSettings = sendSettings; var result = MethodPost(apiKey, "newsletters", (IDictionary <string, object>)json); dynamic data = JsonConvert.DeserializeObject(result.Data); return((string)data.newsletterId); }