public JsonResult GetClientCampaignMonitor() { AuthenticationDetails auth = new ApiKeyAuthenticationDetails(Session["ApiToken"].ToString()); General general = new General(auth); return(Json(new SelectList(general.Clients(), "ClientID", "Name"))); }
public IEnumerable <BasicList> GetLists() { var auth = new ApiKeyAuthenticationDetails(CampaignMonitorConfiguration.ApiKey); var client = new Client(auth, CampaignMonitorConfiguration.ClientId); return(client.Lists()); }
private bool ListIsValid() { bool result = false; string apiKey = string.Empty; string client = string.Empty; string list = string.Empty; try { apiKey = GetSettingFromCosmos("ApiKey"); client = GetSettingFromCosmos("Client"); list = GetSettingFromCosmos("List"); AuthenticationDetails auth = new ApiKeyAuthenticationDetails(apiKey); Client monitorClient = new Client(auth, client); var lista = monitorClient.Lists(); foreach (var item in lista) { if (item.ListID == list) { result = true; } } } catch (Exception e) { var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(result); }
public void GetDataClientCampaignMonitor(Guid idProduct, CreateCampaingModel model) { var product = GetProductByIdProduct(idProduct); string clientID = null; string apiKey = null; try { if (product.PRODUCT_SETTINGS != null && product.PRODUCT_SETTINGS.Any()) { foreach (var item in product.PRODUCT_SETTINGS) { apiKey = item.SettingName.Equals("campaignMonitorApiToken") ? item.SettingValue : apiKey; clientID = item.SettingName.Equals("campaignMonitorClient") ? item.SettingValue : clientID; } AuthenticationDetails auth = new ApiKeyAuthenticationDetails(apiKey); Account account = new Account(auth); foreach (var item in account.Administrators()) { model.FromNameMC = item.Name; model.FromEmailMC = item.EmailAddress; } } } catch (Exception e) { var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } }
private bool ClientIsValid(string idCampaign) { bool result = false; string apiKey = string.Empty; string client = string.Empty; string list = string.Empty; try { apiKey = GetSetting("ApiKey", idCampaign); client = GetSetting("Client", idCampaign); list = GetSetting("List", idCampaign); AuthenticationDetails auth = new ApiKeyAuthenticationDetails(apiKey); General general = new General(auth); var lista = general.Clients(); if (lista != null) { result = true; } } catch (Exception e) { var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(result); }
public string GetSubscribersCampaignMonitor(string ApiToken, string ListId) { AuthenticationDetails auth = new ApiKeyAuthenticationDetails(ApiToken); List list = new List(auth, ListId); return(list.Stats().TotalActiveSubscribers.ToString()); }
public IEnumerable <ListCustomField> GetListFields(string listId) { var auth = new ApiKeyAuthenticationDetails(CampaignMonitorConfiguration.ApiKey); var list = new List(auth, listId); return(list.CustomFields()); }
public ActionResult SubscribeTour(TourShow tourShow) { try { if (!ModelState.IsValid) { foreach (var value in ModelState.Values.ToList()) { foreach (var error in value.Errors) { ModelState.AddModelError(string.Empty, error.ErrorMessage); } } tourShow.IsTripBooked = false; return(PartialView("_Coming Soon", tourShow)); } tourShow.IsTripBooked = true; if (tourShow.MailingListID != null) { AuthenticationDetails auth = new ApiKeyAuthenticationDetails(ConfigurationManager.AppSettings["CampaignMonitorAPI_key"]); Subscriber objSubscriber = new Subscriber(auth, tourShow.MailingListID); string newSubscriberID = objSubscriber.Add(tourShow.EmailToSubscribe.ToString(), null, null, false); } return(PartialView("_Coming Soon", tourShow)); } catch (Exception e) { Elmah.ErrorSignal.FromCurrentContext().Raise(e); return(PartialView("_Coming Soon")); } }
private bool SegmentIsValid(string idCampaign) { bool result = false; string apiKey = string.Empty; string client = string.Empty; string segment = string.Empty; try { //Todo apiKey = GetSetting("ApiKey", idCampaign); segment = GetSetting("Segment", idCampaign); client = GetSetting("Client", idCampaign); AuthenticationDetails auth = new ApiKeyAuthenticationDetails(apiKey); Client monitorClient = new Client(auth, client); var list = monitorClient.Segments(); foreach (var item in list) { if (item.SegmentID == segment) { result = true; } } } catch (Exception e) { var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(result); }
public Task <IActionResult> RegisterAsync([FromBody] SubscribeBindings bindings, CancellationToken cancellationToken = default(CancellationToken)) { var name = $"{bindings.FirstName ?? ""} {bindings.LastName ?? ""}"; var auth = new ApiKeyAuthenticationDetails(this.configuration.ApiKey); new Subscriber(auth, this.configuration.ListId).Add(bindings.Email, name, null, true); return(Task.FromResult((IActionResult)Ok(ApiModel.AsSuccess("ok")))); }
public JsonResult GetListCampaignMonitor(string idClient, string ApiToken) { if (!String.IsNullOrEmpty(idClient)) { AuthenticationDetails auth = new ApiKeyAuthenticationDetails(ApiToken); Client client = new Client(auth, idClient); var list = client.Lists(); return(Json(new SelectList(list, "ListID", "Name"))); } return(Json(new SelectList(new List <BasicList>(), "ListID", "Name"))); }
public JsonResult GetNumberSubsCampaignMonitor(string ApiToken, string ListId) { int NoSubscribers = 0; if (!string.IsNullOrEmpty(ListId)) { AuthenticationDetails auth = new ApiKeyAuthenticationDetails(ApiToken); List list = new List(auth, ListId); NoSubscribers = list.Stats().TotalActiveSubscribers; } return(Json(new { CountSubscribers = NoSubscribers })); }
public JsonResult GetSegmentCampaignMonitor(string idClient) { if (!String.IsNullOrEmpty(idClient)) { TempData["ClientCMSelecc"] = idClient; AuthenticationDetails auth = new ApiKeyAuthenticationDetails(Session["ApiToken"].ToString()); Client client = new Client(auth, idClient); var list = client.Segments(); return(Json(new SelectList(list, "SegmentID", "Title"))); } return(Json(new SelectList(new List <BasicList>(), "ListID", "Name"))); }
//#region System //public DateTime GetSystemDate() //{ // ApiKeyAuthenticationDetails auth = new ApiKeyAuthenticationDetails(cmSettings.ApiKey); // Account acc= new Account(); // SystemDateResult result = new SystemDateResult(); // result. //} //#endregion #region List public List <Entities.List> GetLists(string ClientId) { try { ApiKeyAuthenticationDetails auth = new ApiKeyAuthenticationDetails(cmSettings.ApiKey); Client client = new Client(auth, ClientId); List <BasicList> list = client.Lists().ToList(); return((List <Entities.List>)Mapper.Map <IList <BasicList>, IList <Entities.List> >(list)); } catch (Exception e) { throw new Exception("Reading CM list (" + e.Message.ToString() + ")"); } }
public List <Entities.Client> GetClients() { try { ApiKeyAuthenticationDetails auth = new ApiKeyAuthenticationDetails(cmSettings.ApiKey); General genaral = new General(auth); List <BasicClient> clients = genaral.Clients().ToList(); return((List <Entities.Client>)Mapper.Map <IList <BasicClient>, IList <Entities.Client> >(clients)); } catch (Exception e) { throw new Exception("Get clients CM (" + e.Message.ToString() + ")"); } }
public List <Entities.Subscriber> GetAciveSubscribers(string ListId) { try { ApiKeyAuthenticationDetails auth = new ApiKeyAuthenticationDetails(cmSettings.ApiKey); List list = new List(auth, ListId); List <SubscriberDetail> allSubscribers = new List <SubscriberDetail>(); allSubscribers.AddRange(list.Active().Results); return((List <Entities.Subscriber>)Mapper.Map <IList <SubscriberDetail>, IList <Entities.Subscriber> >(allSubscribers)); } catch (Exception e) { throw new Exception("Get active subscribers CM (" + e.Message.ToString() + ")"); } }
public void UnsubscribeSubscribers(string ListId, List <Entities.Subscriber> subscribers) { try { ApiKeyAuthenticationDetails auth = new ApiKeyAuthenticationDetails(cmSettings.ApiKey); Subscriber subscriber = new Subscriber(auth, ListId); foreach (Entities.Subscriber sub in subscribers) { subscriber.Unsubscribe(sub.E_mail); } } catch (Exception e) { throw new Exception("Unsubscribe subscribers CM (" + e.Message.ToString() + ")"); } }
public bool ValidateApiToken(string ApiToken) { bool result = false; AuthenticationDetails auth = new ApiKeyAuthenticationDetails(ApiToken); try { result = new General(auth).SystemDate() != null ? true : false; } catch (Exception e) { var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(result); }
public ActionResult HandleNewsletterSubmit(USNNewsletterFormViewModel model) { System.Threading.Thread.Sleep(1000); string lsReturnValue = ""; var currentNode = Umbraco.TypedContent(model.CurrentNodeID); var currentPage = Umbraco.TypedContent(model.ActualPageID); IPublishedContent homeNode = currentPage.AncestorOrSelf(1); var settingsFolder = Umbraco.TypedContent(homeNode.GetProperty("websiteConfigurationNode").Value); var globalSettings = settingsFolder.Children.Where(x => x.DocumentTypeAlias == "USNGlobalSettings").First(); if (!ModelState.IsValid) { return(JavaScript(String.Format("$(NewsletterError{0}).show();$(NewsletterError{0}).html('<div class=\"info\"><p>{1}</p></div>');", model.CurrentNodeID, umbraco.library.GetDictionaryItem("USN Newsletter Form General Error")))); } try { AuthenticationDetails auth = new ApiKeyAuthenticationDetails(globalSettings.GetProperty("campaignMonitorAPIKey").Value.ToString()); string subsciberListID = ""; if (currentNode.GetProperty("campaignMonitorSubscriberListID").Value.ToString() != String.Empty) { subsciberListID = currentNode.GetProperty("campaignMonitorSubscriberListID").Value.ToString(); } else { subsciberListID = globalSettings.GetProperty("defaultCampaignMonitorSubscriberListID").Value.ToString(); } Subscriber loSubscriber = new Subscriber(auth, subsciberListID); List <SubscriberCustomField> customFields = new List <SubscriberCustomField>(); string lsSubscriberID = loSubscriber.Add(model.Email, model.FirstName + " " + model.LastName, customFields, false); lsReturnValue = String.Format("<div class=\"page_component alert alert-success alert-dismissible fade in\" role=\"alert\"><div class=\"info\">{0}</div></div>", currentNode.GetProperty("submissionMessage").Value.ToString()); return(Content(lsReturnValue)); } catch (Exception ex) { return(JavaScript(String.Format("$(NewsletterError{0}).show();$(NewsletterError{0}).html('<div class=\"info\"><p>{1}</p><p>{2}</p></div>');", model.CurrentNodeID, umbraco.library.GetDictionaryItem("USN Newsletter Form Signup Error"), ex.Message))); } }
public void AddSubscribers(string ListId, List <Entities.Subscriber> subscribers) { try { ApiKeyAuthenticationDetails auth = new ApiKeyAuthenticationDetails(cmSettings.ApiKey); Subscriber subscriber = new Subscriber(auth, ListId); List <SubscriberDetail> importSubscribers = (List <SubscriberDetail>)Mapper.Map <IList <Entities.Subscriber>, IList <SubscriberDetail> >(subscribers); if (!subscribers.Any()) { return; } subscriber.Import(importSubscribers, true); } catch (Exception e) { throw new Exception("Add subscribers CM (" + e.Message.ToString() + ")"); } }
public override WorkflowExecutionStatus Execute(Record record, RecordEventArgs e) { try { if (ValidateSettings().Any() || string.IsNullOrWhiteSpace(CampaignMonitorConfiguration.ApiKey) || string.IsNullOrWhiteSpace(CampaignMonitorConfiguration.ClientId)) { return(WorkflowExecutionStatus.NotConfigured); } var listMapping = JsonConvert.DeserializeObject <ListMappingModel>(ListMapping); var subscribeString = GetMapAsString(listMapping, record, "Subscribe"); var subscribe = !string.IsNullOrWhiteSpace(subscribeString) && subscribeString != "False"; if (!subscribe) { return(WorkflowExecutionStatus.Completed); } var emailAddress = GetMapAsString(listMapping, record, "Email Address"); if (string.IsNullOrWhiteSpace(emailAddress)) { return(WorkflowExecutionStatus.Completed); } var name = GetMapAsString(listMapping, record, "Name"); var lastName = GetMapAsString(listMapping, record, "Lastname"); if (!string.IsNullOrWhiteSpace(lastName)) { name += " " + lastName; } var auth = new ApiKeyAuthenticationDetails(CampaignMonitorConfiguration.ApiKey); var subscriber = new Subscriber(auth, listMapping.ListId); subscriber.Add(emailAddress, name, listMapping.Mappings. Where(m => m.ListField.StartsWith("[")).Select(m => { return(new SubscriberCustomField { Key = m.ListField, Value = GetFieldValue(record, m) }); }).ToList(), subscribe); return(WorkflowExecutionStatus.Completed); } catch (Exception ex) { LogHelper.Error <PushToMarketing>("Failed to send users record to marketing", ex); return(WorkflowExecutionStatus.Failed); } }
public string SendCampaign(CampaignMonitorRequest request) { string Id = string.Empty; try { AuthenticationDetails auth = new ApiKeyAuthenticationDetails(request.ApiKey); List <string> listIDs = new List <string> { request.ListId }; List <string> segmentIDs = new List <string> { request.SegmentIDs }; TemplateContent templateContent = new TemplateContent(); string campaignID = createsend_dotnet.Campaign.CreateFromTemplate( auth, request.ClientID, request.Subject, request.Name, request.FromName + "-" + DateTime.Now.ToString("MMddyyyyhhmm"), request.FromEmail, request.FromEmail, listIDs, segmentIDs, CreateTemplateFromCosmosDocument(auth, request.ClientID, request.campaign), templateContent); createsend_dotnet.Campaign campaignMonitorCampaign = new createsend_dotnet.Campaign(auth, campaignID); campaignMonitorCampaign.Send(request.FromEmail); Id = campaignID; } catch (Exception e) { var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(Id); }
public List <Entities.Subscriber> GetAciveSubscribers(string ListId, DateTime fromDate) { try { ApiKeyAuthenticationDetails auth = new ApiKeyAuthenticationDetails(cmSettings.ApiKey); List list = new List(auth, ListId); List <SubscriberDetail> allSubscribers = new List <SubscriberDetail>(); PagedCollection <SubscriberDetail> firstPage = list.Active(fromDate, 1, 100, "Email", "ASC"); allSubscribers.AddRange(firstPage.Results); if (firstPage.NumberOfPages > 1) { for (int pageNumber = 2; pageNumber <= firstPage.NumberOfPages; pageNumber++) { PagedCollection <SubscriberDetail> subsequentPage = list.Active(fromDate, pageNumber, 100, "Email", "ASC"); allSubscribers.AddRange(subsequentPage.Results); } } return((List <Entities.Subscriber>)Mapper.Map <IList <SubscriberDetail>, IList <Entities.Subscriber> >(allSubscribers)); } catch (Exception e) { throw new Exception("Get active subscribers CM (" + e.Message.ToString() + ")"); } }
public ActionResult HandleContactSubmit(USNContactFormViewModel model) { System.Threading.Thread.Sleep(1000); string returnValue = String.Empty; if (!ModelState.IsValid) { return(JavaScript(String.Format("$(ContactError{0}).show();$(ContactError{0}).html('{1}');", model.CurrentNodeID, HttpUtility.JavaScriptStringEncode(umbraco.library.GetDictionaryItem("USN Contact Form General Error"))))); } //Need to get NodeID from hidden field. CurrentPage does not work with Ajax.BeginForm var contactFormNode = Umbraco.TypedContent(model.CurrentNodeID); var globalSettings = Umbraco.TypedContent(model.GlobalSettingsID); if (globalSettings.HasValue("googleReCAPTCHASiteKey") && globalSettings.HasValue("googleReCAPTCHASecretKey")) { var response = Request["g-recaptcha-response"]; string secretKey = globalSettings.GetPropertyValue <string>("googleReCAPTCHASecretKey"); var client = new WebClient(); var result = client.DownloadString(string.Format("https://www.google.com/recaptcha/api/siteverify?secret={0}&response={1}", secretKey, response)); var obj = JObject.Parse(result); var status = (bool)obj.SelectToken("success"); if (!status) { return(JavaScript(String.Format("$(ContactError{0}).show();$(ContactError{0}).html('{1}');", model.CurrentNodeID, HttpUtility.JavaScriptStringEncode(umbraco.library.GetDictionaryItem("USN Form reCAPTCHA Error"))))); } } string mailTo = contactFormNode.GetPropertyValue <string>("contactRecipientEmailAddress"); string websiteName = globalSettings.GetPropertyValue <string>("websiteName"); string pageName = contactFormNode.Parent.Parent.Name; string errorMessage = String.Empty; if (!SendContactFormMail(model, mailTo, websiteName, pageName, out errorMessage)) { return(JavaScript(String.Format("$(ContactError{0}).show();$(ContactError{0}).html('<div class=\"info\"><p>{1}</p><p>{2}</p></div>');", model.CurrentNodeID, HttpUtility.JavaScriptStringEncode(umbraco.library.GetDictionaryItem("USN Contact Form Mail Send Error")), HttpUtility.JavaScriptStringEncode(errorMessage)))); } try { if (model.NewsletterSignup && globalSettings.HasValue("newsletterAPIKey") && (globalSettings.HasValue("defaultNewsletterSubscriberListID") || contactFormNode.HasValue("contactSubscriberListID"))) { if (globalSettings.GetPropertyValue <USNOptions>("emailMarketingPlatform") == USNOptions.Newsletter_CM) { AuthenticationDetails auth = new ApiKeyAuthenticationDetails(globalSettings.GetPropertyValue <string>("newsletterAPIKey")); string subsciberListID = String.Empty; if (contactFormNode.HasValue("newsletterSubscriberListID")) { subsciberListID = contactFormNode.GetPropertyValue <string>("contactSubscriberListID"); } else { subsciberListID = globalSettings.GetPropertyValue <string>("defaultNewsletterSubscriberListID"); } Subscriber loSubscriber = new Subscriber(auth, subsciberListID); List <SubscriberCustomField> customFields = new List <SubscriberCustomField>(); string subscriberID = loSubscriber.Add(model.Email, model.FirstName + " " + model.LastName, customFields, false); } else if (globalSettings.GetPropertyValue <USNOptions>("emailMarketingPlatform") == USNOptions.Newsletter_Mailchimp) { var mc = new MailChimpManager(globalSettings.GetPropertyValue <string>("newsletterAPIKey")); string subsciberListID = String.Empty; if (contactFormNode.HasValue("contactSubscriberListID")) { subsciberListID = contactFormNode.GetPropertyValue <string>("contactSubscriberListID"); } else { subsciberListID = globalSettings.GetPropertyValue <string>("defaultNewsletterSubscriberListID"); } var email = new EmailParameter() { Email = model.Email }; var myMergeVars = new MergeVar(); myMergeVars.Add("FNAME", model.FirstName); myMergeVars.Add("LNAME", model.LastName); EmailParameter results = mc.Subscribe(subsciberListID, email, myMergeVars, "html", false, true, false, false); } } } catch (Exception ex) { return(JavaScript(String.Format("$(ContactError{0}).show();$(ContactError{0}).html('<div class=\"info\"><p>{1}</p><p>{2}</p></div>');", model.CurrentNodeID, HttpUtility.JavaScriptStringEncode(umbraco.library.GetDictionaryItem("USN Contact Form Signup Error")), HttpUtility.JavaScriptStringEncode(ex.Message)))); } returnValue = String.Format("<div class=\"spc alert alert-success alert-dismissible fade in\" role=\"alert\"><div class=\"info\">{0}</div></div>", contactFormNode.GetPropertyValue <string>("contactSubmissionMessage")); return(Content(returnValue)); }
public ActionResult HandleContactSubmit(USNContactFormViewModel model) { System.Threading.Thread.Sleep(1000); string returnValue = String.Empty; if (!ModelState.IsValid) { return(JavaScript(String.Format("$(ContactError{0}).show();$(ContactError{0}).html('{1}');", model.CurrentNodeID, umbraco.library.GetDictionaryItem("USN Contact Form General Error")))); } //Need to get NodeID from hidden field. CurrentPage does not work with Ajax.BeginForm IPublishedContent contactFormNode = Umbraco.TypedContent(model.CurrentNodeID); IPublishedContent homeNode = contactFormNode.Site(); IPublishedContent globalSettings = homeNode.GetPropertyValue <IPublishedContent>("websiteConfigurationNode").Children.Where(x => x.IsDocumentType("USNGlobalSettings")).First(); string mailTo = contactFormNode.GetPropertyValue <string>("recipientEmailAddress"); string websiteName = globalSettings.GetPropertyValue <string>("websiteName"); string pageName = contactFormNode.Parent.Parent.Name; string errorMessage = String.Empty; if (!SendContactFormMail(model, mailTo, websiteName, pageName, out errorMessage)) { return(JavaScript(String.Format("$(ContactError{0}).show();$(ContactError{0}).html('<div class=\"info\"><p>{1}</p><p>{2}</p></div>');", model.CurrentNodeID, umbraco.library.GetDictionaryItem("USN Contact Form Mail Send Error"), errorMessage))); } try { if (model.NewsletterSignup && globalSettings.HasValue("newsletterAPIKey") && (globalSettings.HasValue("defaultNewsletterSubscriberListID") || contactFormNode.HasValue("newsletterSubscriberListID"))) { if (globalSettings.GetPropertyValue <string>("emailMarketingPlatform") == "Campaign Monitor") { AuthenticationDetails auth = new ApiKeyAuthenticationDetails(globalSettings.GetProperty("newsletterAPIKey").Value.ToString()); string subsciberListID = String.Empty; if (contactFormNode.HasValue("newsletterSubscriberListID")) { subsciberListID = contactFormNode.GetPropertyValue <string>("newsletterSubscriberListID"); } else { subsciberListID = globalSettings.GetPropertyValue <string>("defaultNewsletterSubscriberListID"); } Subscriber loSubscriber = new Subscriber(auth, subsciberListID); List <SubscriberCustomField> customFields = new List <SubscriberCustomField>(); string subscriberID = loSubscriber.Add(model.Email, model.FirstName + " " + model.LastName, customFields, false); } else if (globalSettings.GetPropertyValue <string>("emailMarketingPlatform") == "MailChimp") { var mc = new MailChimpManager(globalSettings.GetPropertyValue <string>("newsletterAPIKey")); string subsciberListID = String.Empty; if (contactFormNode.HasValue("newsletterSubscriberListID")) { subsciberListID = contactFormNode.GetPropertyValue <string>("newsletterSubscriberListID"); } else { subsciberListID = globalSettings.GetPropertyValue <string>("defaultNewsletterSubscriberListID"); } var email = new EmailParameter() { Email = model.Email }; var myMergeVars = new MergeVar(); myMergeVars.Add("FNAME", model.FirstName); myMergeVars.Add("LNAME", model.LastName); EmailParameter results = mc.Subscribe(subsciberListID, email, myMergeVars, "html", false, true, false, false); } } } catch (Exception ex) { return(JavaScript(String.Format("$(ContactError{0}).show();$(ContactError{0}).html('<div class=\"info\"><p>{1}</p><p>{2}</p></div>');", model.CurrentNodeID, umbraco.library.GetDictionaryItem("USN Contact Form Signup Error"), ex.Message.Replace("'", "\"")))); } returnValue = String.Format("<div class=\"spc alert alert-success alert-dismissible fade in\" role=\"alert\"><div class=\"info\">{0}</div></div>", contactFormNode.GetPropertyValue <string>("submissionMessage")); return(Content(returnValue)); }
public async Task <ActionResult> HandleNewsletterSubmit(USNNewsletterFormViewModel model) { System.Threading.Thread.Sleep(1000); string lsReturnValue = ""; var currentNode = Umbraco.TypedContent(model.CurrentNodeID); var currentPage = Umbraco.TypedContent(model.ActualPageID); IPublishedContent homeNode = currentPage.AncestorOrSelf(1); var settingsFolder = Umbraco.TypedContent(homeNode.GetProperty("websiteConfigurationNode").Value); var globalSettings = settingsFolder.Children.Where(x => x.DocumentTypeAlias == "USNGlobalSettings").First(); if (!ModelState.IsValid) { return(JavaScript(String.Format("$(NewsletterError{0}).show();$(NewsletterError{0}).html('<div class=\"info\"><p>{1}</p></div>');", model.CurrentNodeID, umbraco.library.GetDictionaryItem("USN Newsletter Form General Error")))); } try { if (globalSettings.GetProperty("emailMarketingPlatform").Value.ToString() == "Campaign Monitor") { AuthenticationDetails auth = new ApiKeyAuthenticationDetails(globalSettings.GetProperty("newsletterAPIKey").Value.ToString()); string subsciberListID = String.Empty; if (currentNode.GetProperty("newsletterSubscriberListID").Value.ToString() != String.Empty) { subsciberListID = currentNode.GetProperty("newsletterSubscriberListID").Value.ToString(); } else { subsciberListID = globalSettings.GetProperty("defaultNewsletterSubscriberListID").Value.ToString(); } Subscriber loSubscriber = new Subscriber(auth, subsciberListID); List <SubscriberCustomField> customFields = new List <SubscriberCustomField>(); string subscriberID = loSubscriber.Add(model.Email, model.FirstName + " " + model.LastName, customFields, false); } else if (globalSettings.GetProperty("emailMarketingPlatform").Value.ToString() == "MailChimp") { var mc = new MailChimpManager(globalSettings.GetProperty("newsletterAPIKey").Value.ToString()); string subsciberListID = String.Empty; if (currentNode.GetProperty("newsletterSubscriberListID").Value.ToString() != String.Empty) { subsciberListID = currentNode.GetProperty("newsletterSubscriberListID").Value.ToString(); } else { subsciberListID = globalSettings.GetProperty("defaultNewsletterSubscriberListID").Value.ToString(); } var email = new EmailParameter() { Email = model.Email }; var myMergeVars = new MergeVar(); myMergeVars.Add("FNAME", model.FirstName); myMergeVars.Add("LNAME", model.LastName); EmailParameter results = mc.Subscribe(subsciberListID, email, myMergeVars, "html", false, true, false, false); } lsReturnValue = String.Format("<div class=\"spc alert alert-success alert-dismissible fade in\" role=\"alert\"><div class=\"info\">{0}</div></div>", currentNode.GetProperty("submissionMessage").Value.ToString()); return(Content(lsReturnValue)); } catch (Exception ex) { return(JavaScript(String.Format("$(NewsletterError{0}).show();$(NewsletterError{0}).html('<div class=\"info\"><p>{1}</p><p>{2}</p></div>');", model.CurrentNodeID, umbraco.library.GetDictionaryItem("USN Newsletter Form Signup Error"), ex.Message))); } }
public ActionResult HandleNewsletterSubmit(USNNewsletterFormViewModel model) { System.Threading.Thread.Sleep(1000); var globalSettings = Umbraco.Content(model.GlobalSettingsID); string recaptchaReset = globalSettings.HasValue("googleReCAPTCHASiteKey") && globalSettings.HasValue("googleReCAPTCHASecretKey") ? "grecaptcha.reset();" : String.Empty; string lsReturnValue = String.Empty; if (!ModelState.IsValid) { return(JavaScript(String.Format("{0}$('#NE_{1}').show();$('#NE_{1}').html('<div class=\"info\"><p>{2}</p></div>');", recaptchaReset, model.UniqueID, HttpUtility.JavaScriptStringEncode(Umbraco.GetDictionaryValue("USN Form Required Field Error"))))); } try { if (globalSettings.HasValue("googleReCAPTCHASiteKey") && globalSettings.HasValue("googleReCAPTCHASecretKey")) { var response = Request["g-recaptcha-response"]; string secretKey = globalSettings.Value <string>("googleReCAPTCHASecretKey"); var client = new WebClient(); var result = client.DownloadString(string.Format("https://www.google.com/recaptcha/api/siteverify?secret={0}&response={1}", secretKey, response)); var obj = JObject.Parse(result); var status = (bool)obj.SelectToken("success"); if (!status) { return(JavaScript(String.Format("{0}$('#NE_{1}').show();$('#NE_{1}').html('{2}');", recaptchaReset, model.UniqueID, HttpUtility.JavaScriptStringEncode(Umbraco.GetDictionaryValue("USN Form reCAPTCHA Error"))))); } } string firstName = model.FirstName == "***" ? String.Empty : model.FirstName; string lastName = model.LastName == "***" ? String.Empty : model.LastName; if (globalSettings.Value <string>("emailMarketingPlatform") == "newsletterCM") { AuthenticationDetails auth = new ApiKeyAuthenticationDetails(globalSettings.Value <string>("newsletterAPIKey")); string subsciberListID = String.Empty; if (model.FormSubscriberListID.HasValue()) { subsciberListID = model.FormSubscriberListID; } else { subsciberListID = globalSettings.Value <string>("defaultNewsletterSubscriberListID"); } Subscriber loSubscriber = new Subscriber(auth, subsciberListID); List <SubscriberCustomField> customFields = new List <SubscriberCustomField>(); string subscriberID = loSubscriber.Add(model.Email, firstName + " " + lastName, customFields, false); } else if (globalSettings.Value <string>("emailMarketingPlatform") == "newsletterMC") { var mc = new MailChimpManager(globalSettings.Value <string>("newsletterAPIKey")); string subsciberListID = String.Empty; if (model.FormSubscriberListID.HasValue()) { subsciberListID = model.FormSubscriberListID; } else { subsciberListID = globalSettings.Value <string>("defaultNewsletterSubscriberListID"); } var email = new EmailParameter() { Email = model.Email }; var myMergeVars = new MergeVar(); myMergeVars.Add("FNAME", firstName); myMergeVars.Add("LNAME", lastName); EmailParameter results = mc.Subscribe(subsciberListID, email, myMergeVars, "html", false, true, false, false); } return(JavaScript(String.Format("$('#S_{0}').show();$('#Form_{0}').hide();", model.UniqueID))); } catch (Exception ex) { return(JavaScript(String.Format("{0}$('#NE_{1}').show();$('#NE_{1}').html('<div class=\"info\"><p>{2}</p><p>{3}</p></div>');", recaptchaReset, model.UniqueID, HttpUtility.JavaScriptStringEncode(Umbraco.GetDictionaryValue("USN Newsletter Form Signup Error")), HttpUtility.JavaScriptStringEncode(ex.Message)))); } }
//[ProductionRequireHttps] public ActionResult Billing(Britespokes.Services.GiftCards.BillingDetails billingDetails) { //decimal GiftAmount = 0; //int OrderDetailId = 0; var order = _giftCardOrderService.FindOrder(billingDetails.GiftOrderId, UserContext.UserId); if (!billingDetails.AcceptedTermsAndConditions) { ModelState.AddModelError("AcceptedTermsAndConditions", "you must accept the terms and conditions to purchase a tour"); } if (order.OrderStatus != _giftCardOrderService.StatusPending()) { ModelState.AddModelError("", "This order is no longer pending"); } if (UserContext.IsGuest && string.IsNullOrEmpty(billingDetails.Password)) { ModelState.AddModelError("Password", "required"); } if (string.CompareOrdinal(billingDetails.Password, billingDetails.ConfirmPassword) != 0) { ModelState.AddModelError("ConfirmPassword", "doesn't match"); } if (ModelState.IsValid) { if (UserContext.IsGuest) { var user = _userService.Find(UserContext.UserId); _registrationService.PromoteGuest(user, billingDetails.Email, billingDetails.Password); _userMailer.SendWelcomeEmail(UserContext.Organization, user); } _giftCardOrderService.UpdateBillingDetails(billingDetails); //Campaign Monitor -Adding subscriber to Gift card recipients List AuthenticationDetails auth = new ApiKeyAuthenticationDetails(ConfigurationManager.AppSettings["CampaignMonitorAPI_key"]); Subscriber objSubscriber = new Subscriber(auth, ConfigurationManager.AppSettings["CampaignMonitorListID"]); for (int i = 0; i < order.GiftOrderDetail.Count; i++) { List <SubscriberCustomField> customFields = new List <SubscriberCustomField>(); customFields.Add(new SubscriberCustomField() { Key = "Amount", Value = order.GiftOrderDetail[i].Amount == null? "":order.GiftOrderDetail[i].Amount.ToString() }); customFields.Add(new SubscriberCustomField() { Key = "Your Name", Value = order.GiftOrderDetail[i].YourName == null ? "" : order.GiftOrderDetail[i].YourName.ToString() }); customFields.Add(new SubscriberCustomField() { Key = "Gift Code", Value = order.GiftOrderDetail[i].RecipientGiftCode == null ? "" : order.GiftOrderDetail[i].RecipientGiftCode.ToString() }); customFields.Add(new SubscriberCustomField() { Key = "Message", Value = order.GiftOrderDetail[i].Message == null ? "" : order.GiftOrderDetail[i].Message.ToString() }); string newSubscriberID = objSubscriber.Add(order.GiftOrderDetail[i].RecipientEmail.ToString(), null, customFields, false); } return(Json(new { BillingDetails = billingDetails, Errors = new object[0] })); } billingDetails.BillingOverview = _giftCardOrderService.BuildBillingOverview(order); billingDetails.PaymentRequest = new PaymentRequest(order.Total, AuthorizeNetConfig.ApiLogin, AuthorizeNetConfig.TransactionKey, AuthorizeNetConfig.TestMode); return(Json(new { BillingDetails = billingDetails, Errors = ModelStateErrorsForJson() })); }
public ActionResult AuthorizeNetSimGift(FormCollection post) { _logger.Info("keys: {0}", string.Join(", ", post.AllKeys)); var orderId = Convert.ToInt32(post["GiftOrderId"]); var userId = Convert.ToInt32(post["UserId"]); var order = _giftCardOrderService.FindOrder(orderId, userId); _logger.Info("Authorizing SIM..."); //the URL to redirect to- this MUST be absolute var successUrl = Url.RouteUrl("giftconfirmation", new { orderId = order.Id }, SecureProtocol); var failureUrl = Url.RouteUrl("billing-giftdetails", new { orderId = order.Id }, SecureProtocol); var redirectUrl = successUrl; var response = new SIMResponse(post); _logger.Info("Approved: {0}", response.Approved); _logger.Info("Code: {0}", response.ResponseCode); _logger.Info("Message: {0}", response.Message); _logger.Info("Authorization Code: {0}", response.AuthorizationCode); _logger.Info("Card Number: {0}", response.CardNumber); _logger.Info("Card Type: {0}", response.CardType); _logger.Info("Invoice Number: {0}", response.InvoiceNumber); _logger.Info("MD5 Hash: {0}", response.MD5Hash); _logger.Info("Transaction ID: {0}", response.TransactionID); //first order of business - validate that it was Authorize.Net that posted this using the //MD5 hash that was passed back to us var isValid = response.Validate(AuthorizeNetConfig.Md5HashValue, AuthorizeNetConfig.ApiLogin); _logger.Info("Valid: {0}", isValid); if (isValid && response.Approved) { _giftorderConfirmationMailer.SendGiftOrderConfirmationEmail(order); _giftCardOrderService.CompleteOrder(order, response.TransactionID); //Campaign Monitor -Adding subscriber to Gift card recipients List AuthenticationDetails auth = new ApiKeyAuthenticationDetails(ConfigurationManager.AppSettings["CampaignMonitorAPI_key"]); Subscriber objSubscriber = new Subscriber(auth, ConfigurationManager.AppSettings["CampaignMonitorListID"]); for (int i = 0; i < order.GiftOrderDetail.Count; i++) { List <SubscriberCustomField> customFields = new List <SubscriberCustomField>(); customFields.Add(new SubscriberCustomField() { Key = "Amount", Value = order.GiftOrderDetail[i].Amount.ToString() }); customFields.Add(new SubscriberCustomField() { Key = "Your Name", Value = order.GiftOrderDetail[i].YourName.ToString() }); customFields.Add(new SubscriberCustomField() { Key = "Gift Code", Value = order.GiftOrderDetail[i].RecipientGiftCode.ToString() }); customFields.Add(new SubscriberCustomField() { Key = "Message", Value = order.GiftOrderDetail[i].Message.ToString() }); string newSubscriberID = objSubscriber.Add(order.GiftOrderDetail[i].RecipientEmail.ToString(), null, customFields, false); } } else { _giftCardOrderService.FailOrder(order, response.Message); redirectUrl = failureUrl; } return(Content(AuthorizeNet.Helpers.CheckoutFormBuilders.Redirecter(redirectUrl))); }
public ActionResult HandleContactSubmit(USNContactFormViewModel model) { System.Threading.Thread.Sleep(1000); string returnValue = ""; if (!ModelState.IsValid) { return(JavaScript(String.Format("$(ContactError{0}).show();$(ContactError{0}).html('{1}');", model.CurrentNodeID, umbraco.library.GetDictionaryItem("USN Contact Form General Error")))); } //Need to get NodeID from hidden field. CurrentPage does not work with Ajax.BeginForm var currentNode = Umbraco.TypedContent(model.CurrentNodeID); IPublishedContent homeNode = currentNode.AncestorOrSelf(1); var settingsFolder = Umbraco.TypedContent(homeNode.GetProperty("websiteConfigurationNode").Value); var globalSettings = settingsFolder.Children.Where(x => x.DocumentTypeAlias == "USNGlobalSettings").First(); string mailTo = currentNode.GetProperty("recipientEmailAddress").Value.ToString(); string websiteName = globalSettings.GetProperty("websiteName").Value.ToString(); string pageName = currentNode.Parent.Parent.Name; string errorMessage = ""; if (!SendContactFormMail(model, mailTo, websiteName, pageName, out errorMessage)) { return(JavaScript(String.Format("$(ContactError{0}).show();$(ContactError{0}).html('<div class=\"info\"><p>{1}</p><p>{2}</p></div>');", model.CurrentNodeID, umbraco.library.GetDictionaryItem("USN Contact Form Mail Send Error"), errorMessage))); } try { if (model.NewsletterSignup && globalSettings.HasValue("campaignMonitorAPIKey") && (globalSettings.HasValue("defaultCampaignMonitorSubscriberListID") || currentNode.HasValue("campaignMonitorSubscriberListID"))) { string subsciberListID = ""; if (currentNode.GetProperty("campaignMonitorSubscriberListID").Value.ToString() != String.Empty) { subsciberListID = currentNode.GetProperty("campaignMonitorSubscriberListID").Value.ToString(); } else { subsciberListID = globalSettings.GetProperty("defaultCampaignMonitorSubscriberListID").Value.ToString(); } AuthenticationDetails auth = new ApiKeyAuthenticationDetails(globalSettings.GetProperty("campaignMonitorAPIKey").Value.ToString()); Subscriber loSubscriber = new Subscriber(auth, subsciberListID); List <SubscriberCustomField> customFields = new List <SubscriberCustomField>(); string lsSubscriberID = loSubscriber.Add(model.Email, model.FirstName + " " + model.LastName, customFields, false); } } catch (Exception ex) { return(JavaScript(String.Format("$(ContactError{0}).show();$(ContactError{0}).html('<div class=\"info\"><p>{1}</p><p>{2}</p></div>');", model.CurrentNodeID, umbraco.library.GetDictionaryItem("USN Contact Form Signup Error"), ex.Message))); } returnValue = String.Format("<div class=\"page_component alert alert-success alert-dismissible fade in\" role=\"alert\"><div class=\"info\">{0}</div></div>", currentNode.GetProperty("submissionMessage").Value.ToString()); return(Content(returnValue)); }