public ActionResult DetailIndex(long userId, long authorId, string key) { //TODO: проверить валидность ключа на md5, проверить что у пользователя есть репозиторий if (IdValidator.IsInvalid(authorId) || string.IsNullOrEmpty(key) || WebSettingsConfig.Instance.IsSectionForbidden(SectionId.UserTasks)) { return(RedirectToAction("Index")); } RemoveTaskCookie(); RepositoryFactory repositoryFactory = WebSettingsConfig.Instance.GetRepositoryFactory(); UserTasksRepository userTasksRepository = repositoryFactory.CreateUserRepository(authorId); UserTask userTask = userTasksRepository.GetTask(key, true); if (userTask == null) { return(RedirectToAction("Index")); } BanRepository banRepository = repositoryFactory.GetBanRepository(); var banHelper = new BanHelper(Request); bool isBanned = banHelper.IsBanned(SectionId.UserTasks, userId, banRepository); userTask.SetIsBanned(isBanned); userTask.SetAllRights(userId == authorId); return(View("Detail", userTask)); }