Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
        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));
        }
Exemplo n.º 7
0
        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;
 }