public async Task <IActionResult> List(FilterGridDTO values) { User user = await userManager.GetUserAsync(User); var gridBuilder = new CoverageGridBuilder(HttpContext.Session, values, nameof(AbsenceRequest.StartDate)); var options = new CoverageQueryOptions { Include = "DurationType, AbsenceRequestPeriods, AbsenceStatus, User, SubJob, SubJob.SubJobStatus", Where = ar => ar.User.CampusId == user.CampusId && ar.AbsenceStatus.Name == "Approved" && ar.NeedCoverage == true, OrderByDirection = gridBuilder.CurrentGrid.SortDirection, }; options.Search(gridBuilder); options.FromDateRange(gridBuilder); options.Filter(gridBuilder); options.Sort(gridBuilder); CoverageListViewModel model = new CoverageListViewModel { Grid = gridBuilder.CurrentGrid, AbsenceRequests = data.AbsenceRequests.List(options), DurationTypes = data.DurationTypes.List(), SubJobStatuses = data.SubJobStatuses.List() }; model.TotalPages = gridBuilder.GetTotalPages(model.AbsenceRequests.Count()); model.AbsenceRequests = model.AbsenceRequests.Skip((gridBuilder.CurrentGrid.PageNumber - 1) * gridBuilder.CurrentGrid.PageSize).Take(gridBuilder.CurrentGrid.PageSize); return(View(model)); }
public AbsenceTypeGridBuilder(ISession s, FilterGridDTO values, string defaultSort) : base(s, values, defaultSort) { //Inilialize values grid.Search = values.Search; SerializeRoutes(); }
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)); }
public CoverageGridBuilder(ISession s, FilterGridDTO values, string defaultSort) : base(s, values, defaultSort) { //Inilialize values grid.Search = values.Search; grid.FromDate = values.FromDate; grid.ToDate = values.ToDate; grid.Duration = values.Duration; grid.SubJobStatus = values.SubJobStatus; SerializeRoutes(); }
public AbsenceGridBuilder(ISession s, FilterGridDTO values, string defaultSort) : base(s, values, defaultSort) { //Inilialize values grid.AbsenceType = values.AbsenceType; grid.Duration = values.Duration; grid.NeedCoverage = values.NeedCoverage; grid.AbsenceStatus = values.AbsenceStatus; grid.FromDate = values.FromDate; grid.ToDate = values.ToDate; grid.Search = values.Search; SerializeRoutes(); }
public async Task <ViewResult> List(FilterGridDTO values) { //First, find the current user signed in to only show their records. User user = await userManager.GetUserAsync(User); //Create an instance of the AbsenceGridBuilder to save the route parameters for Sorting/Filtering the grid into a session. var gridBuilder = new AbsenceGridBuilder(HttpContext.Session, values, nameof(AbsenceRequest.StartDate)); //Set all of the Query options based on route parameters. Will apply these options to the ViewModel list of absence requests at the time of initialization. var options = new AbsenceQueryOptions { Include = "AbsenceType, DurationType, AbsenceStatus, User, AbsenceRequestPeriods", Where = ar => ar.UserId == user.Id, OrderByDirection = gridBuilder.CurrentGrid.SortDirection, }; options.FromDateRange(gridBuilder); options.Filter(gridBuilder); options.Sort(gridBuilder); //Create and initialize the View Model var model = new AbsenceListViewModel { //Set current route Grid = gridBuilder.CurrentGrid, //Absence Requests List with query options applied. AbsenceRequests = data.AbsenceRequests.List(options), //DropDown Lists AbsenceTypes = data.AbsenceTypes.List(), DurationTypes = data.DurationTypes.List(), StatusTypes = data.AbsenceStatusTypes.List(), }; model.TotalPages = gridBuilder.GetTotalPages(model.AbsenceRequests.Count()); //Finally Set the paging. model.AbsenceRequests = model.AbsenceRequests.Skip((gridBuilder.CurrentGrid.PageNumber - 1) * gridBuilder.CurrentGrid.PageSize).Take(gridBuilder.CurrentGrid.PageSize); return(View(model)); }
public ViewResult List(FilterGridDTO values) { var gridBuilder = new AbsenceTypeGridBuilder(HttpContext.Session, values, nameof(AbsenceType.Name)); var options = new AbsenceTypeQueryOptions { OrderByDirection = gridBuilder.CurrentGrid.SortDirection, }; options.Search(gridBuilder); var model = new AbsenceTypeListViewModel { Grid = gridBuilder.CurrentGrid, AbsenceTypes = data.AbsenceTypes.List(options), }; return(View(model)); }
public UserGridBuilder(ISession s, FilterGridDTO values, string defaultSort) : base(s, values, defaultSort) { //Inilialize routes grid.Campus = values.Campus; grid.Search = values.Search; }