public string SendCampaign(SubscribersCampaignRequest requestData) { string Id = string.Empty; try { SubscribersModels.MessageRequest _message = new SubscribersModels.MessageRequest(); _message.body = requestData.Text; _message.title = requestData.Name; _message.landing_page_url = requestData.Url; _message.image_url = requestData.Image; _message.utm = new SubscribersModels.UTM() { campaign = requestData.Utm, medium = requestData.UtmMedium, source = requestData.UtmSource }; _message.metadata = new SubscribersModels.METADATA() { additionalProp1 = "", additionalProp2 = "", additionalProp3 = "" }; string sdata = Newtonsoft.Json.JsonConvert.SerializeObject(_message); HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://app.subscribers.com/api/v1/messages"); request.Method = "POST"; request.ContentType = "application/json"; request.Headers.Add("X-API-Key", requestData.ApiKey); //POST request.ContentLength = sdata.Length; using (Stream webStream = request.GetRequestStream()) using (StreamWriter requestWriter = new StreamWriter(webStream, System.Text.Encoding.ASCII)) { requestWriter.Write(sdata); } SubscribersModels.MessageResponse _response = new SubscribersModels.MessageResponse(); WebResponse webResponse = request.GetResponse(); using (Stream webStream = webResponse.GetResponseStream()) { if (webStream != null) { using (StreamReader responseReader = new StreamReader(webStream)) { _response = Newtonsoft.Json.JsonConvert.DeserializeObject <SubscribersModels.MessageResponse>(responseReader.ReadToEnd()); return(_response.uuid); } } } } catch (Exception e) { var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(Id); }
public SubscribersCampaignRequest getRequestData(CampaignDocument campaign) { SubscribersCampaignRequest request = FillSendinBlueRequestFromCosmos(); request.Text = campaign.Text; request.Name = campaign.Name; return(request); }
public SubscribersCampaignRequest FillSendinBlueRequestFromCosmos() { SubscribersCampaignRequest request = new SubscribersCampaignRequest(); //todo try { if (this.settings.Count > 0) { foreach (var item in settings) { switch (item.Name) { case "pushApiToken": { request.ApiKey = item.Name.Equals("pushApiToken") ? item.Value : string.Empty; } break; } } } if (this.campaignSettings.Count > 0) { foreach (var item in settings) { switch (item.Name) { case "pushNotifUrl": { request.Url = item.Name.Equals("pushNotifUrl") ? item.Value : string.Empty; } break; case "pushImage": { request.Image = item.Name.Equals("pushImage") ? item.Value : string.Empty; } break; case "Utm": { request.Utm = item.Name.Equals("Utm") ? item.Value : string.Empty; } break; case "UtmMedium": { request.UtmMedium = item.Name.Equals("UtmMedium") ? item.Value : string.Empty; } break; case "UtmSource": { request.UtmSource = item.Name.Equals("UtmSource") ? item.Value : string.Empty; } break; } } } } catch (Exception e) { string exceptionMessage = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(exceptionMessage); } return(request); }