public async Task <PaginacionModel> DevolverPaginacion(string Procedure, int Numerodepaginas, int cantidad, IDictionary <string, object> Parametros, string Ordenamiento) { PaginacionModel paginacion = new PaginacionModel(); List <IDictionary <string, object> > ListaReporte; DynamicParameters parameters = new DynamicParameters(); int total_records = 0; int total_paginas = 0; foreach (var param in Parametros) { parameters.Add("@" + param.Key, param.Value); } parameters.Add("@NumeroDePaginas", Numerodepaginas); parameters.Add("@CantidadDeElementos", cantidad); parameters.Add("@Ordenamiento", Ordenamiento); parameters.Add("@Total_records", total_records, System.Data.DbType.Int32, System.Data.ParameterDirection.Output); parameters.Add("@Total_paginas", total_paginas, System.Data.DbType.Int32, System.Data.ParameterDirection.Output); paginacion.NumeroDepaginas = parameters.Get <int>("Total_paginas"); paginacion.TotalRecord = parameters.Get <int>("Total_records"); try { var conexion = conection.GetConnection(); var result = await conexion.QueryAsync(Procedure, parameters, commandType : System.Data.CommandType.StoredProcedure); ListaReporte = result.Select(x => (IDictionary <string, object>)x).ToList(); paginacion.ListaRecord = ListaReporte; } catch (Exception ex) { throw new Exception("Error {0}", ex); } return(paginacion); }
public async Task <PaginacionModel> DevolverPaginacion(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 resultado = await connection.QueryAsync(storeProcedure, parametros, commandType : CommandType.StoredProcedure); listaReporte = resultado.Select(x => (IDictionary <string, object>)x).ToList(); paginacionModel.ListaRecords = listaReporte; paginacionModel.NumeroPaginas = parametros.Get <int>("@TotalPaginas"); paginacionModel.TotalRecords = parametros.Get <int>("@TotalRecords"); } catch (Exception ex) { throw new Exception("No se pudo ejecutar el procedimiento almacenado", ex); } finally { _factoryConnection.CloseConnection(); } return(paginacionModel); }