Example #1
0
        public JsonResult GetClientCampaignMonitor()
        {
            AuthenticationDetails auth = new ApiKeyAuthenticationDetails(Session["ApiToken"].ToString());
            General general            = new General(auth);

            return(Json(new SelectList(general.Clients(), "ClientID", "Name")));
        }
Example #2
0
        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);
        }
Example #4
0
        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());
        }
Example #7
0
        public IEnumerable <ListCustomField> GetListFields(string listId)
        {
            var auth = new ApiKeyAuthenticationDetails(CampaignMonitorConfiguration.ApiKey);
            var list = new List(auth, listId);

            return(list.CustomFields());
        }
Example #8
0
        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);
        }
Example #10
0
        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"))));
        }
Example #11
0
        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")));
        }
Example #12
0
        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 }));
        }
Example #13
0
        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")));
        }
Example #14
0
        //#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() + ")");
            }
        }
Example #15
0
 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() + ")");
     }
 }
Example #16
0
 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() + ")");
     }
 }
Example #17
0
 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);
        }
Example #19
0
        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)));
            }
        }
Example #20
0
 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);
        }
Example #23
0
 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)));
            }
        }
Example #27
0
        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)));
        }
Example #30
0
        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));
        }