public AuthorsListViewModel GetAuthorsListViewModel(string search = null) { var authors = _authorRepository.GetAuthors(search).OrderBy(a => a.Surname).ToList(); var model = new AuthorsListViewModel { Authors = authors.GenerateAuthorUrls(), Search = search, TotalAuthors = authors.Count }; return(model); }
public async Task <IActionResult> AuthorsList(int page = 1, SortEnum sortOrder = SortEnum.NAME_ASC) { int pageSize = 2; List <AuthorDTO> Authors = (await _client.GetData <IEnumerable <AuthorDTO> >("authors/all")).ToList(); switch (sortOrder) { case SortEnum.NAME_DESC: Authors = Authors.OrderByDescending(a => a.Name).ToList(); break; case SortEnum.SURNAME_ASC: Authors = Authors.OrderBy(a => a.Surname).ToList(); break; case SortEnum.SURNAME_DESC: Authors = Authors.OrderByDescending(a => a.Surname).ToList(); break; default: Authors = Authors.OrderBy(a => a.Name).ToList(); break; } //pagination int count = Authors.Count; var items = Authors.Skip((page - 1) * pageSize).Take(pageSize).ToList(); AuthorsListViewModel viewModel = new AuthorsListViewModel { AuthorsPageVM = new PageViewModel(count, page, pageSize), AuthorsSortVM = new AuthorsSortViewModel(sortOrder), Authors = items }; return(View(viewModel)); }
public IActionResult AuthorsList(string searchReq = "", int page = 1, SortEnum sortOrder = SortEnum.NAME_ASC) { int pageSize = 2; // filtration List <AuthorDTO> Authors = new List <AuthorDTO>(); if (string.IsNullOrEmpty(searchReq)) { Authors = _authorService.GetAll().ToList(); } else { List <AuthorDTO> AllAuthors = _authorService.GetAll().ToList(); List <string> keyWords = searchReq.Trim().Split(' ').ToList(); for (int i = 0; i < keyWords.Count; i++) { keyWords[i] = keyWords[i].ToLower().Trim(); foreach (AuthorDTO author in AllAuthors) { if (author.Name.ToLower().Contains(keyWords[i])) { if (!Authors.Exists(a => a.Id == author.Id)) { Authors.Add(author); } } if (author.Surname.ToLower().Contains(keyWords[i])) { if (!Authors.Exists(a => a.Id == author.Id)) { Authors.Add(author); } } } } } //sorting switch (sortOrder) { case SortEnum.NAME_DESC: Authors = Authors.OrderByDescending(a => a.Name).ToList(); break; case SortEnum.SURNAME_ASC: Authors = Authors.OrderBy(a => a.Surname).ToList(); break; case SortEnum.SURNAME_DESC: Authors = Authors.OrderByDescending(a => a.Surname).ToList(); break; default: Authors = Authors.OrderBy(a => a.Name).ToList(); break; } //pagination int count = Authors.Count; var items = Authors.Skip((page - 1) * pageSize).Take(pageSize).ToList(); AuthorsListViewModel viewModel = new AuthorsListViewModel { AuthorsFilterVM = new AuthorsFilterViewModel(searchReq), AuthorsPageVM = new PageViewModel(count, page, pageSize), AuthorsSortVM = new AuthorsSortViewModel(sortOrder), Authors = items }; return(View(viewModel)); }