public ActionResult DissociateAdmin(int?id, [Bind(Include = "Id, AssociatedAdmins, AvailableAdmins, AssociateEventAdminId")] AssociateEventAdminBindingModel bind) { if (id == 0) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } if (ModelState.IsValid) { var @event = db.Events.Find(id); if (@event == null) { return(this.HttpNotFound()); } if (bind.AssociateEventAdminId != null) { var eventUser = this.db.Users.Find(bind.AssociateEventAdminId); if (eventUser != null) { @event.EventAdmins.Remove(eventUser); this.db.SaveChanges(); } return(this.RedirectToAction("DissociateAdmin", "Events")); } } return(this.View(bind)); }
public ActionResult AssociateAdmin(int?id) { if (id == 0) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var @event = this.db.Events.Find(id); if (@event == null) { return(this.HttpNotFound()); } if (@event.StartDate < DateTime.Now) { return(this.RedirectToAction("Index")); } //var model = Mapper.Map<Event, EventAdminBindingModel>(@event); var associatedAdmins = @event.EventAdmins; var associatedAdminsModel = Mapper.Map <IEnumerable <RegisteredUser>, IEnumerable <EventAdminBindingModel> >(associatedAdmins); var availableAdmins = this.db.Users.ToList().Where(u => u.IsInGivenRole("EventAdmin")).Except(associatedAdmins); if (!availableAdmins.Any()) { return(this.RedirectToAction("Index", "Events")); } var availableAdminsModel = Mapper.Map <IEnumerable <RegisteredUser>, IEnumerable <EventAdminBindingModel> >(availableAdmins); var model = new AssociateEventAdminBindingModel { Name = @event.Name, AvailableAdmins = availableAdminsModel, AssociatedAdmins = associatedAdminsModel, Id = (int)id }; this.ViewBag.StartDate = @event.StartDate; return(this.View(model)); }