Ejemplo n.º 1
0
        private IQueryable <PersonModel> GetPersonModels(PeopleIndexDisplayMode displayMode)
        {
            var query = DbContext.People.AsQueryable();

            switch (displayMode)
            {
            case PeopleIndexDisplayMode.All:
                break;

            case PeopleIndexDisplayMode.Staff:
                query = query.Where(p => p.ApplicationUser.Claims.Any(c => c.ClaimType == Constants.Claims.Staff));
                break;

            case PeopleIndexDisplayMode.Clients:
                query = query.Where(p => p.ApplicationUser.Claims.All(c => c.ClaimType != Constants.Claims.Staff));
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(displayMode), displayMode, null);
            }

            var people = query.ProjectTo <PersonModel>(Mapper);

            return(people);
        }
Ejemplo n.º 2
0
        public ActionResult Index(PeopleIndexDisplayMode displayMode = PeopleIndexDisplayMode.All)
        {
            var people = GetPersonModels(displayMode);

            var model = new PeopleIndexViewModel()
            {
                DisplayMode = displayMode,
                People      = people.ToList(),
            };

            return(View(model));
        }
Ejemplo n.º 3
0
        public JsonResult JsonIndex([ModelBinder(typeof(DataTables.AspNet.Mvc5.ModelBinder))] IDataTablesRequest requestModel, PeopleIndexDisplayMode displayMode = PeopleIndexDisplayMode.All)
        {
            var models = GetPersonModels(displayMode);

            var response = requestModel.ApplyTo(models);

            return(new DataTablesJsonResult(response, JsonRequestBehavior.AllowGet));
        }