public ViewResult List(FilterGridDTO values)
        {
            var gridBuilder = new UserGridBuilder(HttpContext.Session, values, nameof(AbsenceCoverageMS.Models.DomainModels.User.FirstName));

            var options = new UserQueryOptions
            {
                Include          = "Campus",
                OrderByDirection = gridBuilder.CurrentGrid.SortDirection,
            };

            options.Search(gridBuilder);
            options.Filter(gridBuilder);
            options.Sort(gridBuilder);


            var model = new UserListViewModel
            {
                Grid     = gridBuilder.CurrentGrid,
                Users    = BuildQuery(options).ToList(),
                Campuses = data.Campuses.List()
            };

            model.TotalPages = gridBuilder.GetTotalPages(model.Users.Count());
            model.Users      = model.Users.Skip((gridBuilder.CurrentGrid.PageNumber - 1) * gridBuilder.CurrentGrid.PageSize).Take(gridBuilder.CurrentGrid.PageSize);

            return(View(model));
        }
Example #2
0
 public void Filter(UserGridBuilder gridBuilder)
 {
     //Filter by Campus
     if (gridBuilder.CurrentGrid.Campus != "all")
     {
         Where = u => u.CampusId == gridBuilder.CurrentGrid.Campus;
     }
 }
Example #3
0
 public void Search(UserGridBuilder gridBuilder)
 {
     if (gridBuilder.CurrentGrid.Search != null)
     {
         string searchTerm = gridBuilder.CurrentGrid.Search.ToLower();
         Where = u => u.FirstName.ToLower().Contains(searchTerm) || u.LastName.ToLower().Contains(searchTerm) || u.UserName.ToLower().Contains(searchTerm);
     }
 }
        public RedirectToActionResult Search(string[] filters, string searchTerm, bool clear = false)
        {
            //Initialize with the GET constructor (Desirializes route dictionary to use and make changes.)
            var gridBuilder = new UserGridBuilder(HttpContext.Session);

            if (clear)
            {
                gridBuilder.ClearSearchOptions();
            }
            else
            {
                //Set new grid values and serialize.
                gridBuilder.SetSearchOptions(filters, searchTerm);
                gridBuilder.SerializeRoutes();
            }

            //Redirect to the List Action Method with updated grid.
            return(RedirectToAction("List", gridBuilder.CurrentGrid));
        }
Example #5
0
        public void Sort(UserGridBuilder gridBuilder)
        {
            switch (gridBuilder.CurrentGrid.SortBy)
            {
            case nameof(User.FirstName):
                OrderBy = u => u.FirstName;
                break;

            case nameof(User.UserName):
                OrderBy = u => u.UserName;
                break;

            case nameof(User.Campus.Name):
                OrderBy = u => u.Campus.Name;
                break;

            default:
                OrderBy = u => u.FirstName;
                break;
            }
        }