public virtual async Task <GridReader> QueryMultipleAsync(string sql, object param = null, CommandType?commandType = null)
 {
     using (IDbConnection conn = new SqlConnection(ConnectionString))
     {
         return(await conn.QueryMultipleAsync(sql, param, null, null, commandType));
     }
 }
        public async Task <Result> FetchMany <T>(T cmd)
        {
            Result result            = new Result();
            var    functionParameter = new DynamicParameters();

            try
            {
                functionParameter = parameters;
                parameters        = null;
                using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings[ConnectionStringName].ConnectionString))
                {
                    var query = await db.QueryMultipleAsync(queryHandler.GetQuery(cmd), functionParameter == null?null : functionParameter, commandTimeout : 2, commandType : CommandType);

                    var listResult = query.Read <ProcResult>().ToList();
                    result.Source  = listResult[0];
                    result.Success = true;
                }
            }
            catch (Exception ex)
            {
                logging.WriteErrorLog($"FetchMany - {cmd} - { ConnectionStringName } " + ex.Message);
                foreach (string item in functionParameter.ParameterNames)
                {
                    logging.WriteErrorLog($"FetchMany - {item} ");
                }

                result.Message      = ex.Message;
                result.Success      = false;
                result.AffectedRows = 0;
            }


            return(result);
        }