public async Task <PaginacionModel> devolverPaginacion(string storedProcedure, int numeroPagina, int cantidadElementos, IDictionary <string, object> parametrosFiltro, string ordenamientoColumna)
        {
            PaginacionModel paginacionModel = new PaginacionModel();

            // rows
            List <IDictionary <string, object> > listaReporte = null;

            // parámetros salida
            int totalRecords = 0;
            int totalPaginas = 0;

            try
            {
                var connection = factoryConnection.GetConnection();

                DynamicParameters parametros = new DynamicParameters();

                // agregar dinámicamente parámetros de filtro del cliente
                foreach (var param in parametrosFiltro)
                {
                    parametros.Add("@" + param.Key, param.Value);
                }


                // Parámetros de entrada
                parametros.Add("@NumeroPagina", numeroPagina);
                parametros.Add("@CantidadElementos", cantidadElementos);
                parametros.Add("@Ordenamiento", ordenamientoColumna);

                // Parámetros de salida
                parametros.Add("@TotalRecords", totalRecords, DbType.Int32, ParameterDirection.Output);
                parametros.Add("@TotalPaginas", totalPaginas, DbType.Int32, ParameterDirection.Output);

                var result = await connection.QueryAsync(storedProcedure, parametros, commandType : CommandType.StoredProcedure);

                // hacer query de linq que convierta a IDictionary las rows
                listaReporte = result.Select(x => (IDictionary <string, object>)x).ToList();

                // agregar parámetros de salida
                paginacionModel.ListaRecords  = listaReporte;
                paginacionModel.NumeroPaginas = parametros.Get <int>("@TotalPaginas");
                paginacionModel.TotalRecords  = parametros.Get <int>("@TotalRecords");
            }
            catch (Exception e)
            {
                throw new Exception("No se pudo ejecutar el stored procedure", e);
            }
            finally
            {
                factoryConnection.CloseConnection();
            }

            return(paginacionModel);
        }
Exemplo n.º 2
0
        public async Task <PaginacionModel> DevolverPaginancion(
            string storeProcedure,
            int numeroPagina,
            int cantidadElementos,
            IDictionary <string, object> parametrosFiltro,
            string ordenamientoColumna)
        {
            PaginacionModel paginacionModel = new PaginacionModel();

            List <IDictionary <string, object> > ListaReporte = null;

            int totalRecords = 0;
            int totalPaginas = 0;


            try
            {
                var connection = _factoryConnection.GetConnection();

                DynamicParameters parametros = new DynamicParameters();

                foreach (var param in parametrosFiltro)
                {
                    parametros.Add("@" + param.Key, param.Value);
                }

                parametros.Add("@NumeroPagina", numeroPagina);
                parametros.Add("@CantidadElementos", cantidadElementos);
                parametros.Add("@Ordenamiento", ordenamientoColumna);

                parametros.Add("@TotalRecords", totalRecords, DbType.Int32, ParameterDirection.Output);
                parametros.Add("@TotalPaginas", totalPaginas, DbType.Int32, ParameterDirection.Output);


                var result = await connection.QueryAsync(storeProcedure, parametros, commandType : CommandType.StoredProcedure);

                ListaReporte = result.Select(x => (IDictionary <string, object>)x).ToList();

                paginacionModel.ListaRecords  = ListaReporte;
                paginacionModel.NumeroPaginas = parametros.Get <int>("@TotalPaginas");
                paginacionModel.TotalRecords  = parametros.Get <int>("@TotalRecords");
            }
            catch (System.Exception)
            {
                throw new Exception("No se pudo ejecutar el procedimiento almacenado");
            } finally{
                _factoryConnection.CloseConnection();
            }



            return(paginacionModel);
        }
Exemplo n.º 3
0
        public async Task <PaginacionModel> DevolverPaginacion(string storeProcedure, int numeroPagina, int cantidadElementos, IDictionary <string, object> parametrosFiltro, string ordenamientoColumnas)
        {
            // nueva paginacio vacia
            PaginacionModel paginacionModel = new PaginacionModel();
            // datos a guardar desde la DB
            List <IDictionary <string, object> > listaReporte = null;

            int totalRecords = 0;
            int totalPaginas = 0;

            try
            {
                var conexion = this._factoryConnection.GetConnection();
                // Parametros de entrada. parametros para saber exactamente ue devolver.
                DynamicParameters parametros = new DynamicParameters();

                foreach (var param in parametrosFiltro)
                {
                    // se agregan cada paramtro y su valor respectivo
                    parametros.Add("@" + param.Key, param.Value);
                }

                // parametros de entrada. Detectar ue se debe devolver
                parametros.Add("@NumeroPagina", numeroPagina);
                parametros.Add("@CantidadElementos", cantidadElementos);
                parametros.Add("@Ordenamiento", ordenamientoColumnas);

                // Parametros de Salida. Se agrega el nombre del dato, el valor del dato, el tipo del dato y se identifia si se Input u Output.
                parametros.Add("@TotalRecords", totalRecords, DbType.Int32, ParameterDirection.Output);
                parametros.Add("@TotalPaginas", totalPaginas, DbType.Int32, ParameterDirection.Output);

                // obtener los datos mendiante procedimiento almacenado
                var result = await conexion.QueryAsync(storeProcedure, null, commandType : CommandType.StoredProcedure);

                // convertir cada dato en "result" a objetos de tipo IDictionary
                listaReporte = result.Select(x => (IDictionary <string, object>)x).ToList();
                // reasignar la pagina como una nueva pagina con los datos de paginas anteriores
                paginacionModel.ListaRecords  = listaReporte;
                paginacionModel.NumeroPaginas = parametros.Get <int>("@TotalPaginas");
                paginacionModel.TotalRecords  = parametros.Get <int>("@TotalRecords");
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo devolver la paginacion - procedimiento almacenadi - ", ex);
            }
            finally
            {
                this._factoryConnection.CloseConnection();
            }

            // se devuelve una instancia con los datos ya procesados
            return(paginacionModel);
        }
Exemplo n.º 4
0
        public async Task <PaginacionModel> devolverPaginacion(string storeProcedure, int numeroPagina, int cantidadElemento, IDictionary <string, object> parametrosFiltros, string ordenamientoColumna)
        {
            PaginacionModel paginacion = new PaginacionModel();
            List <IDictionary <string, object> > listaReporte = null;
            int totalRegistro = 0;
            int totalPaginas  = 0;

            try
            {
                var connection = this.factoriConexion.GetConnection();
                DynamicParameters parametros = new DynamicParameters();

                foreach (var param in parametrosFiltros)
                {
                    parametros.Add("@" + param.Key, param.Value);
                }

                parametros.Add("@NumeroPagina", numeroPagina);
                parametros.Add("@CantidadElementos", cantidadElemento);
                parametros.Add("@Ordenamiento", ordenamientoColumna);

                parametros.Add("@TotalRegistros", totalRegistro, DbType.Int32, ParameterDirection.Output);
                parametros.Add("@TotalPaginas", totalPaginas, DbType.Int32, ParameterDirection.Output);

                var result = await connection.QueryAsync(storeProcedure, parametros, commandType : CommandType.StoredProcedure);

                listaReporte = result.Select(x => (IDictionary <string, object>)x).ToList();

                paginacion.ListadeRegistro = listaReporte;
                paginacion.NumeroPagina    = parametros.Get <int>("@TotalPaginas");
                paginacion.TotalRegistro   = parametros.Get <int>("@TotalRegistros");
            }
            catch (Exception e)
            {
                throw new Exception("No se pudo Ejecutar el SP", e);
            }finally
            {
                this.factoriConexion.CloseConexion();
            }
            return(paginacion);
        }
        public async Task <PaginacionModel> devolverPaginacion(string nombreProcedimientoAlmacenado, int numeroPagina, int cantidadElementos, IDictionary <string, object> parametrosFiltro, string ordenamiento)
        {
            PaginacionModel paginacionModel = new PaginacionModel();

            try
            {
                var cnx = factoryConnection.GetConnection();

                // * Parametros
                DynamicParameters parameteros = new DynamicParameters();
                // ? Parametros de entrada
                // ! Filtros
                foreach (var param in parametrosFiltro)
                {
                    parameteros.Add("@" + param.Key, param.Value);
                }
                parameteros.Add("@NumeroPagina", numeroPagina);
                parameteros.Add("@CantidadElementos", cantidadElementos);
                parameteros.Add("@Ordenamiento", ordenamiento);
                // ? Parametros de Salida
                parameteros.Add("@TotalRegistros", null, DbType.Int32, ParameterDirection.Output);
                parameteros.Add("@CantidadPaginas", null, DbType.Int32, ParameterDirection.Output);
                var resultado = await cnx.QueryAsync(nombreProcedimientoAlmacenado, parameteros, commandType : CommandType.StoredProcedure);

                paginacionModel.ListaRegistros  = resultado.Select(x => (IDictionary <string, object>)x).ToList();
                paginacionModel.TotalRegistros  = parameteros.Get <int>("TotalRegistros");
                paginacionModel.CantidadPaginas = parameteros.Get <int>("CantidadPaginas");
                return(paginacionModel);
            }
            catch (Exception e)
            {
                throw new Exception("No se puedo ejecutar el procedimiento almacenado", e);
            }
            finally
            {
                factoryConnection.CloseConnection();
            }
        }