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." }); } }
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); }
//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; }