public ActionResult Unsubscribe(UnsubscribeModel model) { if (ModelState.IsValid) { bool unsubscribeSucceeded = false; try { User currentUser = usersRepository.FindUser(model.UserKey); if (CrumbsExtensions.HashResetParams(currentUser.UserName, currentUser.UserKey) == model.Reset) { currentUser.Subscriptions = 0; usersRepository.InsertOrUpdateUser(currentUser); usersRepository.Save(); unsubscribeSucceeded = true; } } catch (Exception) { } if (unsubscribeSucceeded) { return RedirectToAction("UnsubscribeSuccess"); } else { ModelState.AddModelError("", "Something is wrong."); } } // If we got this far, something failed, redisplay form return View(model); }
// // GET: /Account/Unsubscribe public ActionResult Unsubscribe(string username, string reset) { if ((reset != null) && (username != null)) { IEnumerable<User> users = usersRepository.FindAllUsersByName(username); foreach (User currentUser in users) { if (CrumbsExtensions.HashResetParams(currentUser.UserName, currentUser.UserKey) == reset) { UnsubscribeModel model = new UnsubscribeModel(); model.UserName = currentUser.UserName; model.UserKey = currentUser.UserKey; model.Reset = reset; if (currentUser.Subscriptions == 0) { ViewBag.Unsubscribed = true; } ViewBag.PopularItems = (crumbsRepository as ICrumbsRepository).RatedCrumbs.Take(24); return View("Unsubscribe", model); } } } return View("NotFound"); }