Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }