示例#1
0
        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));
        }
示例#2
0
        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));
        }