public async Task <IActionResult> Unsubscribe(string email) { EmailSubscription emailAddress = await emailSubscriptions.FindAsync(x => x.Email.Equals(email)); if (emailAddress == null) { modalNotification.AddNotificationSweet("Email", NotificationType.success, "You unbscribed from the list!"); return(RedirectToAction(nameof(HomeController.Index), "Home")); } emailAddress.Status = false; try { await emailSubscriptions.UpdateAsync(emailAddress); logger.LogInformation($"Email {emailAddress.Email} unsubscribed"); } catch { logger.LogInformation($"Failed unsubscribe email from list"); modalNotification.AddNotificationSweet("Fail", NotificationType.error, "Unsubscribe failed!"); RedirectToAction(nameof(HomeController.Index), "Home"); } modalNotification.AddNotificationSweet("Email", NotificationType.success, "You unsunbscribed from the list!"); return(RedirectToAction(nameof(HomeController.Index), "Home")); }
public async Task <IActionResult> AddEmail(string email) { MailAddress emailAddress; try { emailAddress = getAddress(email); logger.LogInformation($"Email {emailAddress.Address} added to list"); var emailCheck = await emailSubscriptions.FindAsync(x => x.Email.Equals(emailAddress.Address)); if (emailCheck == null) { emailCheck = new EmailSubscription() { Email = emailAddress.Address, Status = true }; await emailSubscriptions.AddAsync(emailCheck); } else if (!emailCheck.Status) { emailCheck.Status = true; await emailSubscriptions.UpdateAsync(emailCheck); } modalNotification.AddNotificationSweet("Email", NotificationType.success, "You subscribed to the list!"); return(RedirectToAction(nameof(HomeController.Index), "Home")); } catch { logger.LogInformation($"Failed adding email to list"); modalNotification.AddNotificationSweet("Fail", NotificationType.error, "Please check your email!"); return(RedirectToAction(nameof(HomeController.Index), "Home")); } }
public ActionResult Create(string userId, string submitType) { try { Guid trackingId = Guid.NewGuid(); Guid userGuid; Guid.TryParse(userId, out userGuid); User user = this.GetUsersDal().GetUserByUserId(userGuid); EmailSubscription emailSubscription = this.GetUsersDal().GetEmailSubscriptionsByUserId(userGuid, true, SubscriptionType.WeeklyDeals.ToString()).FirstOrDefault(); var unsubscribeUrl = this.GetUsersDal().GetUnsubscribeUrlInfo(user.Id).UnsubscribeUrl; var emailJob = new DealsEmailCargo { Id = trackingId, UserId = user.Id, EmailAddress = user.Email, LocationId = emailSubscription.LocationId, UnsubscribeUrl = unsubscribeUrl, Hints = new EmailJobHints(), Categories = user.Info.Preferences.Categories }; if (user.Info != null && user.Info.Preferences != null) { emailJob.Categories = user.Info.Preferences.Categories; } bool isTest = submitType == TestType; emailJob.Hints.IsTest = isTest; this.GetEmailJobsQueue().Enqueue(emailJob); return(this.RedirectToAction("Index", "EmailSubmit", new { trackingId, userGuid, isTest })); } catch (Exception e) { Log.Warn("Submit Email Job Return Error. Details: {0}", e); return(this.View("Error")); } }
public EmailSubscription Create(EmailSubscription model) { try { Context.EmailSubscription.Add(model); Context.SaveChanges(); return(model); } catch (Exception ex) { log.Fatal(ex); throw new Exception("DB error", ex.InnerException); } }
protected void btnSendEmail_Click(object sender, EventArgs e) { EmailSubscription newEmail = new EmailSubscription(txtEmail.Text); try { bool insertEmail = EmailSubscriptionDB.InsertEmailSubscriptionInfo(newEmail); Response.Write("<script>alert('Thank you for subscribing to our latest travel deals!');</script>"); } catch (Exception ex) { throw ex; } }
public bool Update(EmailSubscription model) { try { this.Context.EmailSubscription.Update(model); this.Context.SaveChanges(); return(true); } catch (Exception ex) { Log.Fatal(ex); throw new Exception("DB error", ex.InnerException); } }
private static void DispatchNotificationMail( UsersDal usersDal, JobsQueue <EmailCargo> emailJobsQueue, string campaignName, string emailSubject, List <Guid> userIds) { int totalDispatched = 0; foreach (Guid userId in userIds) { User user = usersDal.GetUserByUserId(userId); EmailSubscription subscription = new EmailSubscription { IsActive = true, //Dummy location LocationId = "us:postal:00000", SubscriptionType = SubscriptionType.Promotional, UserId = user.Id, }; if (user.IsSuppressed == true) { Record( string.Format("User With Id={0} is suppressed", user.Id)); } else { totalDispatched++; DispatchEmailJob( subscription, usersDal, emailJobsQueue, campaignName, CampaignRenderingServiceURL, false, null, false, false, emailSubject); Record(string.Format("Total dispatched {0}", totalDispatched)); } } }
/// <summary> /// The convert. /// </summary> /// <param name="emailSubscriptionsResult"> /// The email subscriptions result. /// </param> /// <returns> /// The <see cref="EmailSubscription"/>. /// </returns> internal static EmailSubscription Convert(GetEmailSubscriptions_Result emailSubscriptionsResult) { EmailSubscription emailSubscription = null; if (emailSubscriptionsResult != null) { emailSubscription = new EmailSubscription { UserId = emailSubscriptionsResult.UserId, IsActive = emailSubscriptionsResult.IsActive, LocationId = emailSubscriptionsResult.LocationId, UpdatedDate = emailSubscriptionsResult.CreatedDate, Email = emailSubscriptionsResult.Email }; SubscriptionType subscriptionType; Enum.TryParse(emailSubscriptionsResult.SubscriptionType, out subscriptionType); emailSubscription.SubscriptionType = subscriptionType; } return(emailSubscription); }
private static void DispatchEmailJob(EmailSubscription emailSubscription, UsersDal usersDal, JobsQueue <EmailCargo> emailJobsQueue, string campaign, string emailRenderingUrl, bool isCloDeal, string[] categories, bool includeDeals = true, bool useTestAccount = false, string subject = null, IEnumerable <Guid> dealIds = null) { try { User user = usersDal.GetUserByUserId(emailSubscription.UserId); string unsubscribeUrl = usersDal.GetUnsubscribeUrlInfo(user.Id).UnsubscribeUrl; if (string.IsNullOrEmpty(user.Email)) { Record(string.Format("can't dispatch email job for user without emil address. User Id={0}", user.Id)); return; } if (string.IsNullOrEmpty(unsubscribeUrl)) { Record(string.Format("can't dispatch email job for user without unsubscribe url. User Id={0}", user.Id)); return; } DealsEmailCargo dealsEmailCargo = new DealsEmailCargo { Id = Guid.NewGuid(), EmailAddress = user.Email, Campaign = campaign, Hints = new EmailJobHints { IsTest = useTestAccount, IncludeDeals = includeDeals }, LocationId = emailSubscription.LocationId, UnsubscribeUrl = unsubscribeUrl, UserId = user.Id, DealIds = dealIds, IsCloDeal = isCloDeal, EmailRenderingServiceAddress = emailRenderingUrl }; if (categories != null && categories.Any()) { List <Guid> lstGuid = new List <Guid>(); foreach (string category in categories) { lstGuid.Add(GetCategoryGuid(category)); } dealsEmailCargo.Categories = lstGuid; } else { dealsEmailCargo.Categories = (user.Info != null && user.Info.Preferences != null) ? user.Info.Preferences.Categories : null; } if (dealsEmailCargo.Hints.IncludeDeals && !string.IsNullOrEmpty(user.MsId) && !user.MsId.StartsWith("fb")) { dealsEmailCargo.Anid = AnidIdentityProvider.Instance.DeriveIdentity(user.MsId.ToUpper()); } if (!string.IsNullOrEmpty(subject)) { dealsEmailCargo.Subject = subject; } emailJobsQueue.Enqueue(dealsEmailCargo); Record(string.Format("Email Job Enqueued. Id={0}; LocationId={1};UnsubscribeUrl={2};UserId={3};CategoriesCount={4}", dealsEmailCargo.Id, dealsEmailCargo.LocationId, dealsEmailCargo.UnsubscribeUrl, dealsEmailCargo.UserId, dealsEmailCargo.Categories == null ? 0 : dealsEmailCargo.Categories.Count())); } catch (Exception e) { Log.Error("Error while dispathing email job. User Id={0}; Location Id={1}; Error={2}", emailSubscription.UserId, emailSubscription.LocationId, e); } }
public static EmailSubscription ToEntity(this SubscriptionModel model, EmailSubscription destination) { return(Mapper.Map(model, destination)); }
public static SubscriptionModel ToModel(this EmailSubscription entity) { return(Mapper.Map <EmailSubscription, SubscriptionModel>(entity)); }
public async Task AddPostSuscribers(EmailSubscription emailSuscriber) { await _selahDbContext.AddAsync(emailSuscriber); await _selahDbContext.SaveChangesAsync(); }