Exemple #1
0
        public ActionOutput SubmitSubscriberEmail(SubscriberModel SubscriberModel)
        {
            var existingSubscriber = Context.Subscribers.Where(z => z.IsDeleted == false && z.EmailID == SubscriberModel.EmailID).FirstOrDefault();

            if (existingSubscriber != null)
            {
                return(new ActionOutput
                {
                    Status = ActionStatus.Error,
                    Message = "This Subscriber email already exists and is also not marked as deleted."
                });
            }
            else
            {
                var Subscriber = Context.Subscribers.Create();
                Subscriber.AddedOn   = DateTime.UtcNow;
                Subscriber.IsDeleted = false;
                Subscriber.EmailID   = SubscriberModel.EmailID;
                Context.Subscribers.Add(Subscriber);
                Context.SaveChanges();
                MailChimpService.AddOrUpdateListMember(subscriberEmail: SubscriberModel.EmailID, listId: System.Configuration.ConfigurationManager.AppSettings["SubListId"]);
                return(new ActionOutput
                {
                    Status = ActionStatus.Successfull,
                    Message = "Subscriber Details Added Successfully."
                });
            }
        }
Exemple #2
0
 public ActionOutput GetTheGuideEmail(GetGuideModel GetGuideModel)
 {
     try
     {
         var    email     = GetGuideModel.EMAIL;
         var    emaildata = GetTemplate(Convert.ToInt32(TemplateTypes.GetTheGuideEmail));
         var    lt        = "<%";
         var    gt        = "%>";
         var    Domain    = Config.Link;
         string Durl      = string.Format("{0}/Home/DownloadGuide", Domain);
         string Jurl      = "https://mailchi.mp/3a986420cc90/join-hyggemail-newsletter";
         emaildata.TemplateContent = emaildata.TemplateContent.Replace(lt + "DURL" + gt, Durl);
         emaildata.TemplateContent = emaildata.TemplateContent.Replace(lt + "JURL" + gt, Jurl);
         // emaildata.TemplateContent = emaildata.TemplateContent.Replace(lt + "DATETIME" + gt, Convert.ToDateTime(DateTime.UtcNow).ToString("MMM dd yyyy hh:mm tt"));
         var result = Utilities.SendEMail(email, emaildata.EmailSubject, emaildata.TemplateContent);
         MailChimpService.AddOrUpdateListMember(subscriberEmail: GetGuideModel.EMAIL, listId: System.Configuration.ConfigurationManager.AppSettings["SubListId"]);
         return(new ActionOutput
         {
             Status = ActionStatus.Successfull,
             Message = "Guide Sent Successfully."
         });
     }
     catch (Exception ex)
     {
         return(new ActionOutput
         {
             Status = ActionStatus.Error,
             Message = ex.Message
         });
     }
 }
        protected void LoadData()
        {
            txtMailChimpId.Text = MailChimpSettings.ApiKey;
            txtFromName.Text    = MailChimpSettings.FromName;
            txtFromEmail.Text   = MailChimpSettings.FromEmail;

            var lists = MailChimpService.GetLists(MailChimpSettings.ApiKey);

            if (lists != null && lists.data != null && lists.data.Count > 0)
            {
                //Subscribers
                ddlMailChimpLists.DataSource = lists.data;
                ddlMailChimpLists.DataBind();
                if (lists.data.All(item => item.id != MailChimpSettings.RegUsersList))
                {
                    MailChimpSettings.RegUsersList = string.Empty;
                }
                ddlMailChimpLists.SelectedValue = !string.IsNullOrEmpty(MailChimpSettings.RegUsersList)
                    ? MailChimpSettings.RegUsersList
                    : "0";

                //Ordered customers
                ddlMailChimpOrderCustomer.DataSource = lists.data;
                ddlMailChimpOrderCustomer.DataBind();
                if (lists.data.All(item => item.id != MailChimpSettings.OrderCustomersList))
                {
                    MailChimpSettings.OrderCustomersList = string.Empty;
                }
                ddlMailChimpOrderCustomer.SelectedValue = !string.IsNullOrEmpty(MailChimpSettings.OrderCustomersList)
                    ? MailChimpSettings.OrderCustomersList
                    : "0";
            }
            else
            {
                //Subscribers
                ddlMailChimpLists.Items.Clear();
                ddlMailChimpLists.Items.Add(new ListItem
                {
                    Text  = CultureInfo.CurrentCulture.TwoLetterISOLanguageName == "ru" ? "Нет привязки к списку" : "No binding to the list",
                    Value = @"0"
                });
                ddlMailChimpLists.DataBind();

                //Ordered customers
                ddlMailChimpOrderCustomer.Items.Clear();
                ddlMailChimpOrderCustomer.Items.Add(new ListItem
                {
                    Text  = CultureInfo.CurrentCulture.TwoLetterISOLanguageName == "ru" ? "Нет привязки к списку" : "No binding to the list",
                    Value = @"0"
                });
                ddlMailChimpOrderCustomer.DataBind();
            }
        }
        private bool ValidateData()
        {
            var valid = true;

            valid &= txtMailChimpId.Text.Contains("-") &&
                     txtMailChimpId.Text.LastIndexOf("-") + 1 < txtMailChimpId.Text.Length;

            valid &= !string.IsNullOrEmpty(txtFromName.Text) && !string.IsNullOrEmpty(txtFromEmail.Text);
            valid &= AdvantShop.Helpers.ValidationHelper.IsValidEmail(txtFromEmail.Text);
            valid &= !txtFromName.Text.Contains("\"");
            valid &= MailChimpService.PingMailchimpAccount(txtMailChimpId.Text);

            return(valid);
        }
        public async static void Subscribe(string list, NewsletterSubscriber subscriber)
        {
            MailChimpListSubscription subscription = new MailChimpListSubscription();
            var context = new WSDataContext();
            NewsletterManager manager = new NewsletterManager(context);
            
            subscription.Email = subscriber.EmailAddress;
            subscription.ListId = list;
            subscription.MergeData = new List<KeyValuePair<string, object>>();
            subscription.MergeData.Add(new KeyValuePair<string,object>("NAME",subscriber.Name));
            subscription.DoubleOptIn = true;
            subscription.ReplaceInterests = true;
            subscription.SendWelcome = false;
            subscription.UpdateExisting = false;
            MailChimpService service = new MailChimpService();
            await manager.CreateAsync(subscriber);
            service.Subscribe(subscription);
            
           
            

        }
 public static void Submit(string list,Contact contact)
 {
     MailChimpListSubscription subscription = new MailChimpListSubscription();
     subscription.Email = contact.EmailAddress;
     subscription.ListId = list;
     subscription.MergeData = new List<KeyValuePair<string, object>>();
     subscription.MergeData.Add(new KeyValuePair<string, object>("NAME", contact.Name));
     subscription.MergeData.Add(new KeyValuePair<string, object>("Email", contact.EmailAddress));
     subscription.MergeData.Add(new KeyValuePair<string, object>("PHONE", contact.Phone));
     subscription.MergeData.Add(new KeyValuePair<string, object>("ORG", contact.OrganizationName));
     subscription.MergeData.Add(new KeyValuePair<string, object>("JOBTITLE", contact.JobTitle));
     subscription.MergeData.Add(new KeyValuePair<string, object>("CITY", contact.City));
     subscription.MergeData.Add(new KeyValuePair<string, object>("WEBSITE", contact.Website));
     subscription.MergeData.Add(new KeyValuePair<string, object>("REL", contact.Relationship));
     subscription.MergeData.Add(new KeyValuePair<string, object>("COMMENTS", contact.Comments));
     subscription.DoubleOptIn = true;
     subscription.ReplaceInterests = true;
     subscription.SendWelcome = false;
     subscription.UpdateExisting = false;
     MailChimpService service = new MailChimpService();
     service.Subscribe(subscription);
 }
Exemple #7
0
 //constructor
 public MailChimpController(MailChimpService mailChimpService)
 {
     this.mailChimpService = mailChimpService;
 }
        protected void Save()
        {
            var lastMailChimpId = MailChimpSettings.ApiKey;

            MailChimpSettings.FromName  = txtFromName.Text;
            MailChimpSettings.FromEmail = txtFromEmail.Text;
            MailChimpSettings.ApiKey    = txtMailChimpId.Text;

            if (string.IsNullOrEmpty(txtMailChimpId.Text))
            {
                MailChimpService.UnsubscribeListMembers(MailChimpSettings.ApiKey, MailChimpSettings.RegUsersList);
                MailChimpService.UnsubscribeListMembers(MailChimpSettings.ApiKey, MailChimpSettings.OrderCustomersList);

                MailChimpSettings.RegUsersList       = string.Empty;
                MailChimpSettings.OrderCustomersList = string.Empty;
                return;
            }

            var currentMailChimpId = MailChimpSettings.ApiKey;

            if (!ValidateData())
            {
                lblMessage.Text      = (string)GetLocalResourceObject("MailChimp_Error");
                lblMessage.ForeColor = Color.Red;

                MailChimpSettings.ApiKey = lastMailChimpId;
                return;
            }

            if (!string.Equals(lastMailChimpId, currentMailChimpId))
            {
                MailChimpSettings.RegUsersList       = string.Empty;
                MailChimpSettings.OrderCustomersList = string.Empty;
                return;
            }

            if (ddlMailChimpLists.SelectedValue == "0")
            {
                MailChimpService.UnsubscribeListMembers(MailChimpSettings.ApiKey, MailChimpSettings.RegUsersList);
            }
            else
            {
                MailChimpService.SubscribeListMembers(MailChimpSettings.ApiKey, ddlMailChimpLists.SelectedValue,
                                                      SubscriptionService.GetSubscribedEmails());
            }

            if (ddlMailChimpOrderCustomer.SelectedValue == "0")
            {
                MailChimpService.UnsubscribeListMembers(MailChimpSettings.ApiKey, MailChimpSettings.OrderCustomersList);
            }
            else
            {
                MailChimpService.SubscribeListMembers(MailChimpSettings.ApiKey, ddlMailChimpOrderCustomer.SelectedValue,
                                                      AdvantShop.Orders.OrderService.GetOrderCustomersEmails());
            }

            MailChimpSettings.RegUsersList = ddlMailChimpLists.SelectedValue != "0"
                ? ddlMailChimpLists.SelectedValue : string.Empty;
            MailChimpSettings.OrderCustomersList = ddlMailChimpOrderCustomer.SelectedValue != "0"
                ? ddlMailChimpOrderCustomer.SelectedValue : string.Empty;

            LoadData();

            lblMessage.Text      = (string)GetLocalResourceObject("MailChimp_ChangesSaved");
            lblMessage.ForeColor = Color.Blue;
            lblMessage.Visible   = true;
        }
 internal MailChimpUsersEndpoint(MailChimpService service) {
     Service = service;
 }