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);
        }
Beispiel #2
0
        public ExtratoPaginado ObterMovimentacoes(ExtratoFiltro filtro)
        {
            ContaRepository cRepo = new ContaRepository(_conf);

            return(cRepo.ObterExtrato(filtro));
        }
        public ExtratoPaginado ObterExtrato(string numeroConta, int ultimosDias, int pagina, int tamanhoPagina)
        {
            ExtratoFiltro filtro = new ExtratoFiltro(numeroConta, ultimosDias, pagina, tamanhoPagina);

            return(_repo.ObterExtrato(filtro));
        }