protected string BuildUnsubcsribeLink(string notificationId, string userId) { var model = new NotificationUnsubscribe() { NotificationId = notificationId, UserId = userId }; var eModel = ModelEncryptor.Encrypt(model); var domain = GetDomainOfNotification(notificationId); if (string.IsNullOrEmpty(domain)) { domain = _options.NotifyMeUnsubscribeDefaultDomain; } var link = domain + _options.NotifyMeUnsubscribePath + "?eModel=" + eModel; return(link); }
public async Task <IActionResult> UnsubscribeRequest(string eModel, string accept) { if ((accept ?? "No") == "Yes") { NotificationUnsubscribe model = ModelEncryptor.Decrypt <NotificationUnsubscribe>(eModel); var userGroups = await _notificationManager.GetUserGroupsAssignedToNotificationAndUserAsync(model.NotificationId, model.UserId); foreach (var userGroup in userGroups) { await _userGroupManager.UnsubscribeFromNotificationGroupAsync(userGroup.Id, model.UserId); } return(this.MasterPageView("/UI/Views/Public/NotifyMeSignUp/UnsubscribeSuccess.cshtml", model, "Unsubsrcribe")); } else { return(LocalRedirect("/")); } }
public async Task <IActionResult> Unsubscribe(string eModel) { if (string.IsNullOrEmpty(eModel)) { return(Redirect("/")); } NotificationUnsubscribe model = ModelEncryptor.Decrypt <NotificationUnsubscribe>(eModel); var userGroups = await _notificationManager.GetUserGroupsAssignedToNotificationAndUserAsync(model.NotificationId, model.UserId); if (userGroups.Count == 0) { return(this.MasterPageView("~/UI/Views/Public/NotifyMeSignUp/UnsubscribeSuccess.cshtml", "Unsubscribe")); } else { ViewData["UserGroups"] = userGroups; ViewData["eModel"] = eModel; return(this.MasterPageView("~/UI/Views/Public/NotifyMeSignUp/UnsubscribeRequest.cshtml", "Unsubscribe")); } }