public async Task <IActionResult> ObterExtrato([FromQuery] int ultimosDias, int pagina, int tamanhoPagina) { SegurancaClienteHelper sec = new SegurancaClienteHelper(); if (!await sec.Autorizado(Request)) { return(Unauthorized()); } ExtratoPaginado paginado = null; try { paginado = _helper.ObterExtrato(sec.NumeroConta, ultimosDias, pagina, tamanhoPagina); if (paginado.Extratos.Count > 0) { return(Ok(paginado)); } else { return(NotFound(paginado)); } } catch (Exception) { return(StatusCode(Rotas.HttpStatusCodeIntervalError, "Desculpe! :o( Não conseguimos processar sua transação.")); } }
public async Task <HttpStatusCode> AcionarListagemMovimentacoes(string numeroConta, int pagina, int tamanhoPagina) { try { string url = Rotas._ListagemMovimentacoesConta. Replace("{0}", numeroConta.Trim()). Replace("{1}", pagina.ToString().Trim()). Replace("{2}", tamanhoPagina.ToString().Trim()); var response = await _client.GetAsync(url); if (response.IsSuccessStatusCode) { string aux = response.Content.ReadAsStringAsync().Result; _ExtratoPaginado = ExtratoPaginado.FromJson(aux); } return(response.StatusCode); } catch (HttpRequestException e) { throw e; } catch (Exception e) { throw e; } }
public IActionResult ObterMovimentacao(string numeroConta, [FromQuery] int pagina, int tamanhoPagina) { if (!SegurancaGerencialHelper.Autorizado(Request)) { return(Unauthorized()); } ExtratoPaginado paginado = null; try { paginado = _helper.ObterMovimentacoes(numeroConta, pagina, tamanhoPagina); if (paginado.Extratos.Count > 0) { return(Ok(paginado)); } else { return(NotFound(paginado)); } } catch (Exception) { return(StatusCode(Rotas.HttpStatusCodeIntervalError)); } }
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)); }
public ExtratoPaginado ObterExtrato(ExtratoFiltro filtro) { ExtratoPaginado ret = new ExtratoPaginado(filtro); List <Extrato> result = new List <Extrato>(); string sql = "select ExtratoId Id, ContaNumero NumeroConta, ExtratoDataOperacao DataOperacao, " + " ExtratoValorOperacao ValorOperacao, ExtratoTipoOperacao TipoOperacao, ExtratoTransacao Transacao" + " from Extrato " + " where ContaNumero = @NumeroConta " + " and ExtratoDataOperacao between @Passado and @Agora" + " limit @TamanhoPagina offset @RegistroPontoPartida"; using (SQLiteConnection connection = new SQLiteConnection(_conn)) { string vNumeroConta = filtro.NumeroConta; long vPassado = long.Parse(System.DateTime.Now.AddDays(filtro.UltimosDias * -1).ToString("yyyyMMdd") + "000000"); long vAgora = long.Parse(System.DateTime.Now.ToString("yyyyMMddHHmmss")); int vRegistroPontoPartida = (filtro.TamanhoPagina * filtro.Pagina) - filtro.TamanhoPagina; int vTamanhoPagina = filtro.TamanhoPagina + 1; result = connection.Query <Extrato>(@sql, new { NumeroConta = vNumeroConta, Passado = vPassado, Agora = vAgora, RegistroPontoPartida = vRegistroPontoPartida, TamanhoPagina = vTamanhoPagina }).AsList <Extrato>(); } if (result != null) { ret.ProximaPagina = "0"; ret.PaginaAnterior = (filtro.Pagina > 1 ? (filtro.Pagina - 1).ToString() : "0"); if (result.Count > filtro.TamanhoPagina) { ret.ProximaPagina = (filtro.Pagina + 1).ToString(); result.RemoveAt(result.Count - 1); } ret.Extratos.AddRange(result); } return(ret); }