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

            request.Name = campaign.Name;
            request.Text = campaign.Text;
            return(request);
        }
Пример #2
0
        public GetResponseCampaignRequest FillSendinBlueRequestFromCosmos(List <CampaignSettingDocument> campaignSettings)
        {
            GetResponseCampaignRequest request = new GetResponseCampaignRequest();

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

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

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

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

            return(request);
        }
Пример #3
0
        public string SendCampaign(GetResponseCampaignRequest request)
        {
            string Id = string.Empty;

            try
            {
                //main objects
                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>();

                //set values
                json.name    = request.Name;
                json.type    = "broadcast";
                json.subject = request.Subject;

                fromField.fromFieldId = request.FromFiledId;
                json.fromField        = fromField;

                campaign.campaignId = request.ListId;
                json.campaign       = campaign;

                content.html  = request.Text;
                content.plain = null;
                json.content  = content;

                json.replyTo = fromField;

                selectedCampaigns.Add(request.ListId);
                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(request.ApiKey, "newsletters", (IDictionary <string, object>)json);
                dynamic data   = JsonConvert.DeserializeObject(result.Data);
                Id = (string)data.newsletterId;
            }
            catch (Exception e)
            {
                var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name);
                telemetria.Critical(messageException);
            }
            return(Id);
        }