public async Task <IActionResult> GetAll([FromQuery] PaginacaoQuery pagination) { var quadrasResponse = CacheServico .GetCachedResponse <IReadOnlyList <QuadraResponse> >( ApiRotas.Quadra.GetAll); if (quadrasResponse is null) { var quadra = await _quadraServico .ObterQuadrasAsync(pagination); quadrasResponse = Mapper .Map <IReadOnlyList <QuadraResponse> >(quadra); CacheServico.SetCacheResponse( ApiRotas.Quadra.GetAll, quadrasResponse, TimeSpan.FromMinutes(2)); } if (pagination == null || pagination.NumeroPagina < 1 || pagination.QuantidadePagina < 1) { return(Ok(new PagedResponse <QuadraResponse>(quadrasResponse))); } var paginationResponse = PaginationHelpers .CriarRespostaPaginada(UriServico, pagination, quadrasResponse.ToList()); return(Ok(paginationResponse)); }
public async Task <IActionResult> GetAll([FromQuery] PaginacaoQuery pagination, [FromServices] IUriServico uriServico) { var usuariosResponse = CacheServico .GetCachedResponse <IReadOnlyList <UsuarioResponse> >( ApiRotas.Usuario.GetAll); if (usuariosResponse is null) { var usuarios = await _usuarioServico .ObterUsuariosAsync(pagination); usuariosResponse = Mapper .Map <IReadOnlyList <UsuarioResponse> >(usuarios); CacheServico.SetCacheResponse( ApiRotas.Usuario.GetAll, usuariosResponse, TimeSpan.FromMinutes(2)); } if (pagination == null || pagination.NumeroPagina < 1 || pagination.QuantidadePagina < 1) { return(Ok(new PagedResponse <UsuarioResponse>(usuariosResponse))); } var paginationResponse = PaginationHelpers .CriarRespostaPaginada(uriServico, pagination, usuariosResponse.ToList()); return(Ok(paginationResponse)); }
public async Task <IReadOnlyList <PartidaModel> > ObterPartidasAsync(PaginacaoQuery pagination = null, PartidaFilterQuery filter = null) { var obterPartidasQuery = new ObterPartidasQuery { }; var partidas = await _mediator .Send(obterPartidasQuery); var skip = (pagination.NumeroPagina - 1) * pagination.QuantidadePagina; if (!(filter is null)) { return(partidas .Where(m => m.QuadraFutebolId == filter.QuadraId) .Where(m => m.PrimeiroTimeId == filter.TimeId || m.SegundoTimeId == filter.TimeId) .Skip(skip) .Take(pagination.QuantidadePagina) .ToList()); } return(partidas .Skip(skip) .Take(pagination.QuantidadePagina) .ToList()); }
public ObterUsuariosTeste(CustomWebApplicationFactory factory, ITestOutputHelper output) : base(factory, output) { _pagination = new PaginacaoQuery { NumeroPagina = 1, QuantidadePagina = 10 }; }
public async Task <IReadOnlyList <QuadraModel> > ObterQuadrasAsync(PaginacaoQuery pagination = null) { var obterQuadrasQuery = new ObterQuadrasQuery { }; var quadras = await _mediator .Send(obterQuadrasQuery); var skip = (pagination.NumeroPagina - 1) * pagination.QuantidadePagina; return(quadras .Skip(skip) .Take(pagination.QuantidadePagina) .ToList()); }
public static PagedResponse <T> CriarRespostaPaginada <T>(IUriServico uriServico, PaginacaoQuery pagination, List <T> response) { var nextPage = pagination.NumeroPagina >= 1 ? uriServico.GetAllUri(pagination.NumeroPagina + 1, pagination.QuantidadePagina).ToString() : null; var previousPage = pagination.NumeroPagina - 1 >= 1 ? uriServico.GetAllUri(pagination.NumeroPagina - 1, pagination.QuantidadePagina).ToString() : null; return(new PagedResponse <T> { Dados = response, NumeroPagina = pagination.NumeroPagina >= 1 ? pagination.NumeroPagina : (int?)null, QuantidadePagina = pagination.QuantidadePagina >= 1 ? pagination.QuantidadePagina : (int?)null, ProximaPagina = response.Any() ? nextPage : null, PaginaAnterior = previousPage }); }