public async Task <IActionResult> Get([FromRoute] Guid id)
        {
            var partidaResponse = CacheServico
                                  .GetCachedResponse <Response <PartidaResponse> >(
                ApiRotas.Partida.Get.Replace("{id}", id.ToString()));

            if (partidaResponse is null)
            {
                var partida = await _partidaService
                              .ObterPartidaPorIdAsync(id);

                if (partida is null)
                {
                    return(NotFound());
                }

                partidaResponse = new Response <PartidaResponse>(
                    Mapper.Map <PartidaResponse>(partida));

                CacheServico.SetCacheResponse(
                    ApiRotas.Partida.Get.Replace("{id}", id.ToString()),
                    partidaResponse, TimeSpan.FromMinutes(2));
            }

            return(Ok(partidaResponse));
        }
示例#2
0
        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 <IActionResult> GetAll([FromQuery] PaginacaoQuery pagination, [FromQuery] PartidaFilterQuery filter)
        {
            var partidasResponse = CacheServico
                                   .GetCachedResponse <IReadOnlyList <PartidaResponse> >(ApiRotas.Partida.GetAll);

            if (partidasResponse is null)
            {
                var partidas = await _partidaService
                               .ObterPartidasAsync(pagination, filter);

                partidasResponse = Mapper
                                   .Map <IReadOnlyList <PartidaResponse> >(partidas);

                CacheServico.SetCacheResponse(
                    ApiRotas.Partida.GetAll,
                    partidasResponse,
                    TimeSpan.FromMinutes(2));
            }

            if (pagination == null || pagination.NumeroPagina < 1 || pagination.QuantidadePagina < 1)
            {
                return(Ok(new PagedResponse <PartidaResponse>(partidasResponse)));
            }

            var paginationResponse = PaginationHelpers
                                     .CriarRespostaPaginada(UriServico, pagination, partidasResponse.ToList());

            return(Ok(paginationResponse));
        }