public PagedResponse <WriterDto> Execute(WriterQuery request)
        {
            var query = Context.Writers.AsQueryable();

            query = query.Where(w => w.IsDeleted == false);

            if (request.Name != null)
            {
                query = query.Where(w => w.Name.ToLower().Contains(request.Name.ToLower()));
            }

            var totalCount = query.Count();

            query = query.Skip((request.PageNumber - 1) * request.PerPage).Take(request.PerPage);

            var pagesCount = (int)Math.Ceiling((double)totalCount / request.PerPage);

            return(new PagedResponse <WriterDto>
            {
                CurrentPage = request.PageNumber,
                PagesCount = pagesCount,
                TotalCount = totalCount,
                Data = query.Select(w => new WriterDto
                {
                    Id = w.Id,
                    Name = w.Name
                })
            });
        }
示例#2
0
 // GET: Writers
 public ActionResult Index([FromQuery] WriterQuery query)
 {
     try
     {
         return(View(executor.ExecuteQuery(getWriters, query)));
     }
     catch (EntityNotAllowedException)
     {
         return(RedirectToAction("PageNotFound", "Redirections"));
     }
     catch (Exception e)
     {
         TempData["error"] = e.Message;
     }
     return(RedirectToAction("Home", "Index"));
 }
示例#3
0
 public IActionResult Get([FromQuery] WriterQuery query)
 {
     try
     {
         return(Ok(getWriters.Execute(query)));
     }
     catch (Exception e)
     {
         return(StatusCode(500, new
         {
             Errors = new List <string> {
                 e.Message
             }
         }));
     }
 }