Example #1
0
        public AuthorViewModel GetAuthorsByPage(int page, int pages, SearchAuthorsViewModel search)
        {
            IQueryable <Author> query = _authorRepository.GetAllAuthors();
            AuthorViewModel     model = new AuthorViewModel();

            if (!string.IsNullOrEmpty(search.FirstName))
            {
                query = query.Where(c => c.FirstName.Contains(search.FirstName)).AsQueryable();
            }

            if (!string.IsNullOrEmpty(search.LastName))
            {
                query = query.Where(c => c.LastName.Contains(search.LastName)).AsQueryable();
            }

            model.Authors = query
                            .OrderBy(c => c.LastName)
                            .Skip((page - 1) * pages)
                            .Take(pages)
                            .Select(c => new AuthorItemViewModel
            {
                Id        = c.Id,
                FirstName = c.FirstName,
                LastName  = c.LastName
            }).AsQueryable();
            model.TotalPages  = (int)Math.Ceiling((double)query.Count() / pages);
            model.CurrentPage = page;
            model.Search      = search;
            model.Pages       = pages;

            return(model);
        }
Example #2
0
        //public ActionResult Index()
        //{
        //    var model = _authorProvider.GetAuthors();
        //    return View(model);
        //}

        public ActionResult Index(int page = 1, int pages = 10, SearchAuthorsViewModel search = null)
        {
            return(View(_authorProvider.GetAuthorsByPage(page, pages, search)));
        }