public ActionResult Index(string magazine, string year, string month) { Int32.TryParse(month, out int monthNum); Int32.TryParse(year, out int yearNum); if ((monthNum > 0 && monthNum < 13) && (yearNum >= 2000 && yearNum <= 2100)) { var edition = _editionRepository.GetEdition(magazine, yearNum, (Month)monthNum); if (edition.EditionStatus == EditionStatus.Deleted && !User.IsInRole("Admin")) { return(RedirectToAction("Index", "Error", new { message = "This edition has been deleted" })); } bool isUserSubscribed = false; if (User.Identity.IsAuthenticated) { isUserSubscribed = _subscribeRepository.IsUserSubscribed(edition.EditionId, User.Identity.Name); } ViewBag.IsSubscribed = isUserSubscribed; // Show deleted and creating edition only to the Admin if ((edition.EditionStatus == EditionStatus.Creating || edition.EditionStatus == EditionStatus.Deleted) && User.IsInRole("Admin")) { ViewBag.Articles = _editionRepository.GetArticles(edition.EditionId); return(View(edition)); } else if (edition.EditionStatus == EditionStatus.Active) { ViewBag.Articles = _editionRepository.GetArticles(edition.EditionId); return(View(edition)); } } return(View()); }