public ActionResult AddJuryMember(AddJuryMemberBindingModel model) { if (this.User.Identity.GetUserName().ToLower() == model.Username.ToLower()) { HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.Unauthorized); message.Content = new StringContent(Messages.OwnerCannotBeJurryMember); throw new System.Web.Http.HttpResponseException(message); } var user = this.Data.Users.All().FirstOrDefault(u => u.UserName == model.Username); if (!this.ModelState.IsValid) { return this.View(model); } if (user == null) { HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.NotFound); message.Content = new StringContent(Messages.UserNotFound); throw new System.Web.Http.HttpResponseException(message); } var contest = this.Data.Contests.Find(model.ContestId); if (contest == null) { HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.NotFound); message.Content = new StringContent(Messages.ContestNotFound); throw new System.Web.Http.HttpResponseException(message); } if (contest.Jury.Members.Any(u => u.Id == user.Id)) { HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.Unauthorized); message.Content = new StringContent(Messages.UserAlreadyAddedToJurry); throw new System.Web.Http.HttpResponseException(message); } contest.Jury.Members.Add(user); this.Data.SaveChanges(); return this.RedirectToRoute("Manage", new { action = "Jury", controller = "Contests", id = model.ContestId }); }
public ActionResult AddJuryMember(int id) { var contest = this.Data.Contests.Find(id); if (contest == null) { HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.NotFound); message.Content = new StringContent(Messages.ContestNotFound); throw new System.Web.Http.HttpResponseException(message); } var loggedUserId = this.User.Identity.GetUserId(); if (loggedUserId != contest.OwnerId) { return this.RedirectToAction("Contests", "Me"); } var addJuryMemberBindingModel = new AddJuryMemberBindingModel { ContestId = id }; return this.View(addJuryMemberBindingModel); }