Ejemplo n.º 1
0
        public ActionResult <Response> GetAll([FromQuery] DateTime dataInicio, [FromQuery] DateTime dataFim, [FromQuery] int pagina, [FromQuery] int quantidadePorPagina)
        {
            var request  = RequestSearchVenda.Build(dataInicio, dataFim, quantidadePorPagina, pagina);
            var response = _vendaAppService.GetWithPagination(request);

            return(Ok(response));
        }
        public Response GetWithPagination(RequestSearchVenda request)
        {
            try
            {
                if (request.IsNotValid())
                {
                    return(Response.BuildBadRequest(null, request.GetValueInvalidDateString()));
                }

                var data = _vendaRepository.GetWithPagination(request);
                return(Response.BuildSuccess(data));
            }
            catch (Exception ex)
            {
                return(Response.BuildInternalServerError());
            }
        }
        public List <Venda> GetWithPagination(RequestSearchVenda request)
        {
            var where = new Func <Venda, bool>(v => v.Data >= request.DataInicio && v.Data <= request.DataFim);

            var total = _context.Venda.Count(where);

            if (total == 0)
            {
                return(Venda.ListEmpty());
            }

            request.WithPagination(total);

            return(_context.Venda
                   .Include(v => v.ItensVenda)
                   .Where(where)
                   .OrderByDescending(d => d.Data)
                   .Skip(request.Paginacao.Skip)
                   .Take(request.Paginacao.Take)
                   .ToList());
        }