示例#1
0
        // GET: Teams
        public async Task <IActionResult> Index(int?pageNumber)
        {
            var teams = _context.Teams.Include(t => t.PrimaryManager).AsNoTracking();

            //return View(await teams.ToListAsync());
            return(View(await PaginatedListViewModel <TeamModel> .CreateAsync(teams, pageNumber ?? 1, CommonConstants.PAGE_SIZE)));
        }
示例#2
0
        public async Task <IActionResult> Index(int?page)
        {
            var courses = await _serviceCourse.GetAllAsync();

            var coursesViewModel = _mapper.Map <IEnumerable <CourseViewModel> >(courses);

            return(View(PaginatedListViewModel <CourseViewModel> .CreateAsync(coursesViewModel, page ?? 1)));
        }
示例#3
0
 public IActionResult Index(int currentPage = 1)
 {
     var model = new PaginatedListViewModel();
     var productService = new ProductService(_context);
     model.Data = productService.GetPaginatedResult(currentPage);
     model.Count = productService.GetCount();
     model.CurrentPage = currentPage;
     return View(model);
 }
示例#4
0
        public async Task <IActionResult> Index(string sortOrder, string currentFilter, string searchString, int?pageNumber)
        {
            ViewData["CurrentSort"]  = sortOrder;
            ViewData["NameSortParm"] = string.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewData["TeamSortParm"] = sortOrder == "team" ? "team_desc" : "team";

            if (searchString != null)
            {
                pageNumber = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewData["CurrentFilter"] = searchString;

            var users = await _userManager.Users.Include(u => u.Team).ToListAsync();

            var userRolesViewModel = new List <UserRolesViewModel>();

            foreach (ApplicationUser user in users)
            {
                UserRolesViewModel userRoleViewModel = await BuildUserRoleViewModel(user);

                userRolesViewModel.Add(userRoleViewModel);
            }

            if (!String.IsNullOrEmpty(searchString))
            {
                userRolesViewModel = userRolesViewModel.Where(u => u.FullName.ToLower().Contains(searchString.ToLower())).ToList();
            }

            switch (sortOrder)
            {
            case "name_desc":
                userRolesViewModel = userRolesViewModel.OrderByDescending(u => u.FullName).ToList();
                break;

            case "team":
                userRolesViewModel = userRolesViewModel.OrderBy(u => u.TeamName).ToList();
                break;

            case "team_desc":
                userRolesViewModel = userRolesViewModel.OrderByDescending(u => u.TeamName).ToList();
                break;

            default:
                userRolesViewModel = userRolesViewModel.OrderBy(u => u.FullName).ToList();
                break;
            }

            return(View(PaginatedListViewModel <UserRolesViewModel> .Create(userRolesViewModel.AsQueryable(), pageNumber ?? 1, CommonConstants.PAGE_SIZE)));
        }
        private PaginatedListViewModel <ItemViewModel> CreatePaginatedListViewModel(int pageSize,
                                                                                    int pageIndex, long totalItems, List <Manufacturer> list)
        {
            var page = new List <ItemViewModel>();

            list.ForEach(x =>
            {
                page.Add(new ItemViewModel
                {
                    Id   = x.Id.ToString(),
                    Name = x.Name
                });
            });

            var model = new PaginatedListViewModel <ItemViewModel>(
                pageIndex, pageSize, totalItems, page);

            return(model);
        }
示例#6
0
        public void Create_Page3_PageSize4()
        {
            // 1. Arrange
            int?pageNumber         = 3;
            int pageSize           = 4;
            int expectedTotalPages = 3;
            var expectedResult     = new List <int> {
                9, 0
            };

            // 2. Act
            var actualResult = PaginatedListViewModel <int> .Create(testList.AsQueryable(), pageNumber ?? 1, pageSize);

            // 3. Assert
            Assert.Equal(expectedResult.Count, actualResult.Count);
            Assert.Equal(expectedTotalPages, actualResult.TotalPages);
            Assert.Equal(pageNumber, actualResult.PageIndex);
            Assert.False(actualResult.HasNextPage);
            Assert.True(actualResult.HasPreviousPage);
            for (int i = 0; i < actualResult.Count; i++)
            {
                Assert.Equal(expectedResult[i], actualResult[i]);
            }
        }
示例#7
0
        public EntityListViewModel(CreateBaseCommand <EntityListViewModel <TEntityViewModel, TGetEntityModel> > createLoadCommand)
        {
            LoadCommand = createLoadCommand(this);

            EntityPageVM = new PaginatedListViewModel <TGetEntityModel>(LoadCommand);
        }
示例#8
0
        // GET: Leden
        public async Task <IActionResult> Index(
            int?pageNumber,                 // <= op welke pagina zijn we nu
            int?pageSize,                   // <= hoeveel activiteiten per pagina
            string sortOrder     = null,    // <= hoe moet de activiteiten gesorteerd worden
            string currentFilter = null,    // <= waarop werd er gefilterd
            string searchString  = null)    // <= waarop moet er nu gefilterd worden
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            // XXX_asc  : a -> z
            // XXX_desc : z -> a
            ViewData["CurrentSort"]        = sortOrder;
            ViewData["LidnaamSortParm"]    = sortOrder == "lidnaam_asc" ? "lidnaam_desc" : "lidnaam_asc";
            ViewData["StraatnaamSortParm"] = sortOrder == "straatnaam_asc" ? "straatnaam_desc" : "straatnaam_asc";
            ViewData["GemeenteSortParm"]   = sortOrder == "gemeente_asc" ? "gemeente_desc" : "gemeente_asc";

            // als er een nieuwe searchstring is, dan terug naar pagina 1
            // anders bijhouden waarop vroeger gezocht werd en daarop opnieuw zoeken
            if (!String.IsNullOrWhiteSpace(searchString))
            {
                pageNumber = 1;
            }
            else
            {
                searchString = currentFilter;
            }
            ViewData["CurrentFilter"] = searchString;

            // AsNoTracking want database zal niet veranderd worden
            var leden = _context.Leden.AsNoTracking();

            // moet er ergens op gezocht worden?
            // indien JA zoek dan in de naam (voor- en achternaam, adres, email en telefoon
            if (!String.IsNullOrEmpty(searchString))
            {
                leden = leden.Where(l => l.Achternaam.ToLower().Contains(searchString) ||
                                    l.Voornaam.ToLower().Contains(searchString) ||
                                    l.Straatnaam.ToLower().Contains(searchString) ||
                                    l.Straatnummer.ToLower().Contains(searchString) ||
                                    l.Gemeente.ToLower().Contains(searchString) ||
                                    l.Email.ToLower().Contains(searchString) ||
                                    l.Telefoon_vast.ToLower().Contains(searchString) ||
                                    l.Telefoon_GSM.ToLower().Contains(searchString));
            }

            // sorteer de leden
            leden = sortOrder switch
            {
                "lidnaam_asc" => leden.OrderBy(l => l.Achternaam)
                .ThenBy(l => l.Voornaam),
                "lidnaam_desc" => leden.OrderByDescending(l => l.Achternaam)
                .ThenByDescending(l => l.Voornaam),
                "straatnaam_asc" => leden.OrderBy(l => l.Straatnaam)
                .ThenBy(l => l.Straatnummer)
                .ThenBy(l => l.Postcode)
                .ThenBy(l => l.Gemeente)
                .ThenBy(l => l.Achternaam)
                .ThenBy(l => l.Voornaam),
                "straatnaam_desc" => leden.OrderByDescending(l => l.Straatnaam)
                .ThenByDescending(l => l.Straatnummer)
                .ThenByDescending(l => l.Postcode)
                .ThenByDescending(l => l.Gemeente)
                .ThenByDescending(l => l.Achternaam)
                .ThenByDescending(l => l.Voornaam),
                "gemeente_asc" => leden.OrderBy(l => l.Postcode)
                .ThenBy(l => l.Gemeente)
                .ThenBy(l => l.Straatnaam)
                .ThenBy(l => l.Straatnummer)
                .ThenBy(l => l.Achternaam)
                .ThenBy(l => l.Voornaam),
                "gemeente_desc" => leden.OrderByDescending(l => l.Postcode)
                .ThenByDescending(l => l.Gemeente)
                .ThenByDescending(l => l.Straatnaam)
                .ThenByDescending(l => l.Straatnummer)
                .ThenByDescending(l => l.Achternaam)
                .ThenByDescending(l => l.Voornaam),
                _ => leden.OrderBy(l => l.Achternaam)
                .ThenBy(l => l.Voornaam),
            };
            // toon de juiste pagina van leden
            return(View(await PaginatedListViewModel <Lid> .CreateAsync(leden, pageNumber ?? 1, pageSize ?? 10)));
        }
示例#9
0
        public async Task <IActionResult> Index(string sortOrder, string currentFilter, string searchString, int?page)
        {
            var departmentsViewModel = await GetAllDepartmentsPaginated(sortOrder, currentFilter, searchString);

            return(View(PaginatedListViewModel <DepartmentViewModel> .CreateAsync(departmentsViewModel, page ?? 1)));
        }
示例#10
0
        // GET: Activiteiten
        public async Task <IActionResult> Index(
            string sortOrder,       // <= hoe moet de activiteiten gesorteerd worden
            string currentFilter,   // <= waarop werd er gefilterd
            string searchString,    // <= waarop moet er nu gefilterd worden
            int?pageNumber,         // <= op welke pagina zijn we nu
            int?pageSize)           // <= hoeveel activiteiten per pagina
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }
            // XXX_asc  : a -> z of verleden -> toekomst
            // XXX_desc : z -> a of toekomst -> verleden
            ViewData["CurrentSort"]               = sortOrder;
            ViewData["NaamSortParm"]              = sortOrder == "naam_asc" ? "naam_desc" : "naam_asc";
            ViewData["OmschrijvingSortParm"]      = sortOrder == "omschrijving_asc" ? "omschrijving_desc" : "omschrijving_asc";
            ViewData["OntmoetingsplaatsSortParm"] = sortOrder == "plaats_asc" ? "plaats_desc" : "plaats_asc";
            ViewData["ActiviteitendatumSortParm"] = sortOrder == "datum_asc" ? "datum_desc" : "datum_asc";
            ViewData["PublicatiedatumSortParm"]   = sortOrder == "publicatie_asc" ? "publicatie_desc" : "publicatie_asc";

            // als er een nieuwe searchstring is, dan terug naar pagina 1
            // anders bijhouden waarop vroeger gezocht werd en daarop opnieuw zoeken
            if (searchString != null)
            {
                pageNumber = 1;
            }
            else
            {
                searchString = currentFilter;
            }
            ViewData["CurrentFilter"] = searchString;

            // AsNoTracking want database zal niet veranderd worden
            // ook de ontmoetingsplaats (en niet enkel de ontmoetingsplaats id) moet gekend zijn
            var activiteiten = _context.Activiteiten
                               .AsNoTracking()
                               .Include(a => a.Ontmoetingsplaats)
                               .AsQueryable();

            // moet er ergens op gezocht worden?
            // indien JA zoek dan in de naam, omschrijving en plaatsnaam (van de ontmoetingsplaats)
            if (!String.IsNullOrEmpty(searchString))
            {
                activiteiten = activiteiten.Where(a => a.Naam.Contains(searchString) ||
                                                  a.Omschrijving.Contains(searchString) ||
                                                  a.Ontmoetingsplaats.Plaatsnaam.Contains(searchString));
            }

            // sorteer de activiteiten (datum steeds van toekomst naar verleden,
            // tenzij anders gevraagd)
            activiteiten = sortOrder switch
            {
                "naam_asc" => activiteiten.OrderBy(a => a.Naam)
                .ThenByDescending(a => a.Activiteitendatum),
                "naam_desc" => activiteiten.OrderByDescending(a => a.Naam)
                .ThenByDescending(a => a.Activiteitendatum),
                "omschrijving_asc" => activiteiten.OrderBy(a => a.Omschrijving)
                .ThenByDescending(a => a.Activiteitendatum),
                "omschrijving_desc" => activiteiten.OrderByDescending(a => a.Omschrijving)
                .ThenByDescending(a => a.Activiteitendatum),
                "plaats_asc" => activiteiten.OrderBy(a => a.Ontmoetingsplaats)
                .ThenByDescending(a => a.Activiteitendatum),
                "plaats_desc" => activiteiten.OrderByDescending(a => a.Ontmoetingsplaats)
                .ThenByDescending(a => a.Activiteitendatum),
                "datum_asc" => activiteiten.OrderBy(a => a.Activiteitendatum)
                .ThenBy(a => a.Naam),
                "datum_desc" => activiteiten.OrderByDescending(a => a.Activiteitendatum)
                .ThenBy(a => a.Naam),
                "publicatie_asc" => activiteiten.OrderBy(a => a.Publicatiedatum)
                .ThenByDescending(a => a.Activiteitendatum),
                "publicatie_desc" => activiteiten.OrderByDescending(a => a.Publicatiedatum)
                .ThenByDescending(a => a.Activiteitendatum),
                _ => activiteiten.OrderByDescending(a => a.Activiteitendatum)
                .ThenBy(a => a.Naam),
            };

            // toon de juiste pagina van activiteiten
            return(View(await PaginatedListViewModel <Activiteit> .CreateAsync(activiteiten, pageNumber ?? 1, pageSize ?? 10)));
        }
示例#11
0
        public IActionResult Index(string sortOrder, string currentFilter, string searchString, int?page)
        {
            var studentsViewModel = GetAllStudentsPaginated(sortOrder, currentFilter, searchString);

            return(View(PaginatedListViewModel <StudentViewModel> .CreateAsync(studentsViewModel, page ?? 1)));
        }
        // GET: AttendanceRecords
        public async Task <IActionResult> Index(string sortOrder, string currentFilter, string searchString, int?pageNumber, string infoMessage, DateTime selectedMonth, bool getAsCsv)
        {
            ViewData["CurrentSort"]                    = sortOrder;
            ViewData["DateSortParm"]                   = string.IsNullOrEmpty(sortOrder) ? "date" : "";
            ViewData["NameSortParm"]                   = sortOrder == "name" ? "name_desc" : "name";
            ViewData["ApprovalStatusSortParm"]         = sortOrder == "approval" ? "approval_desc" : "approval";
            ViewData["ManagerApprovalControlDisabled"] = true;
            ViewData["InfoMessage"]                    = infoMessage;

            if (searchString != null)
            {
                pageNumber = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            _logger.LogInformation($"Request month value: {selectedMonth}");
            if ((selectedMonth == null) || (selectedMonth == DateTime.MinValue))
            {
                selectedMonth = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1);
            }

            ViewData["SelectedMonth"] = $"{selectedMonth.Year}-{selectedMonth.ToString("MM")}";
            var daysInMonth = DateTime.DaysInMonth(selectedMonth.Year, selectedMonth.Month);

            ViewData["CurrentFilter"] = searchString;

            var currentUserId     = _userManager.GetUserId(User);
            var attendanceRecords = _context.AttendanceRecords.Where(ar => ar.WorkDay >= selectedMonth && ar.WorkDay < selectedMonth.AddDays(daysInMonth))
                                    .Include(p => p.Employee)
                                    .ThenInclude(e => e.Team)
                                    .AsNoTracking();

            attendanceRecords = await GetAttendanceRecordsInScope(currentUserId, attendanceRecords);

            if (!String.IsNullOrEmpty(searchString))
            {
                attendanceRecords = attendanceRecords.Where(ar =>
                                                            (ar.Employee.LastName + ar.Employee.FirstName).Contains(searchString));
            }

            switch (sortOrder)
            {
            case "name_desc":
                attendanceRecords =
                    attendanceRecords.OrderByDescending(ar => ar.Employee.LastName + ar.Employee.FirstName);
                break;

            case "name":
                attendanceRecords = attendanceRecords.OrderBy(ar => ar.Employee.LastName + ar.Employee.FirstName);
                break;

            case "approval_desc":
                attendanceRecords = attendanceRecords.OrderByDescending(ar => ar.ManagerApprovalStatus);
                break;

            case "approval":
                attendanceRecords = attendanceRecords.OrderBy(ar => ar.ManagerApprovalStatus);
                break;

            case "date":
                attendanceRecords = attendanceRecords.OrderBy(ar => ar.WorkDay);
                break;

            default:
                attendanceRecords = attendanceRecords.OrderByDescending(ar => ar.WorkDay);
                break;
            }

            if (getAsCsv)
            {
                DataTable exportTable = GetAttendanceRecordsAsDataTable(attendanceRecords);
                var       csvResult   = new CSVResult(exportTable, $"{currentUserId}_{DateTime.Now.ToString(CultureInfo.InvariantCulture)}.csv");
                return(csvResult);
            }
            else
            {
                return(View(await PaginatedListViewModel <AttendanceRecordModel> .CreateAsync(attendanceRecords, pageNumber ?? 1, CommonConstants.PAGE_SIZE)));
            }
        }