public IActionResult RetornaExtrato(string contaId,
                                            [FromQuery] TransferenciaFiltro filtro,
                                            [FromQuery] TransferenciaOrdem ordem,
                                            [FromQuery] TransferenciaPaginacao paginacao)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var extrato = _transferenciaService.RetornaExtrato(contaId, filtro, ordem, paginacao);
                    if (extrato == null)
                    {
                        return(NotFound());
                    }

                    return(Ok(extrato));
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex.Message));
                }
            }

            return(BadRequest());
        }
        public ExtratoPaginado RetornaExtrato(string contaId, TransferenciaFiltro filtro,
                                              TransferenciaOrdem ordem, TransferenciaPaginacao paginacao)
        {
            var lista = _repoTransf.GetTransacoesPorContaId(contaId)
                        .AplicaFiltro(filtro)
                        .AplicaOrdenacao(ordem)
                        .Select(l => l.ToApi());

            return(ExtratoPaginado.From(paginacao, lista, contaId));
        }