public Response ObterPorPeriodo(RequestVendaRangeData consultaVendaRangeData) { try { var listVendaDto = VendaDto.ListEmpty(); if (consultaVendaRangeData.IsNotValid()) { return(Response.BuildBadRequest(ExceptionMessages.VendaRangeDatasInvalido)); } var vendas = _vendaRepository.ObterComPaginacao(consultaVendaRangeData); if (!vendas.Any()) { return(Response.BuildBadRequest(ExceptionMessages.VendaNaoEncontrada)); } foreach (var venda in vendas) { listVendaDto.Add(_mapper.Map <VendaDto>(venda)); } return(Response.BuildSuccess(listVendaDto)); } catch (Exception ex) { return(Response.BuildInternalServerError(ex.Message)); } }
public List <Venda> ObterComPaginacao(RequestVendaRangeData consultaVendaRangeDto) { var where = new Func <Venda, bool>(v => v.Data >= consultaVendaRangeDto.DataInicial && v.Data <= consultaVendaRangeDto.DataFinal); var total = _contextEf.Venda.Count(where); if (total == 0) { return(Venda.ListEmpty()); } consultaVendaRangeDto.WithPagination(total); return(_contextEf.Venda .Include(v => v.ItemVenda) .Include(v => v.Cliente) .Where(where) .OrderByDescending(d => d.Data) .Skip(consultaVendaRangeDto.Paginacao.Skip) .Take(consultaVendaRangeDto.Paginacao.Take) .ToList()); }
public IActionResult ObterVendaPorPeriodo(RequestVendaRangeData consultaVendaRangeDataDto) { return(Ok(_vendaAppService.ObterPorPeriodo(consultaVendaRangeDataDto))); }