public async Task <ResultadoTransferenciaModel> Buscar(FiltroTransferencia filtro) { ResultadoTransferenciaModel resultado = new ResultadoTransferenciaModel(); var t = _context.Transferencias.Where(x => !x.Removida).AsQueryable(); if (!string.IsNullOrEmpty(filtro.NomePagador)) { t = t.Where(x => x.Pagador.Nome.Equals(filtro.NomePagador)); } if (!string.IsNullOrEmpty(filtro.NomeBeneficiario)) { t = t.Where(x => x.Beneficiario.Nome.Equals(filtro.NomeBeneficiario)); } if (filtro.Data != default) { t = t.Where(x => x.Data.Date == filtro.Data.Value.Date); } if (filtro.Status != null) { t = t.Where(x => x.Status.Equals(filtro.Status)); } if (filtro.Tipo != null) { t = t.Where(x => x.Tipo.Equals(filtro.Tipo)); } var dbTransferencias = await t.ToListAsync(); resultado.Somatoria = dbTransferencias.Sum(x => x.Valor); resultado.Quantidade = dbTransferencias.Count; resultado.Transferencias = dbTransferencias .Select(x => new TransferenciaModel { Id = x.Id, Data = x.Data, Status = x.Status, Tipo = x.Tipo, Valor = x.Valor, Beneficiario = new DadosTransacaoModel(x.Beneficiario.Nome, x.Beneficiario.Banco, x.Beneficiario.Agencia, x.Beneficiario.Conta), Pagador = new DadosTransacaoModel(x.Pagador.Nome, x.Pagador.Banco, x.Pagador.Agencia, x.Pagador.Conta), Usuario = new UsuarioModel(x.Usuario.Id, x.Usuario.Nome, x.Usuario.Cnpj) }) .ToList(); return(resultado); }
public async Task <ActionResult <ResultadoTransferenciaModel> > Get([FromQuery] FiltroTransferencia filtro) { return(Ok(await _transferenciaService.Buscar(filtro))); }