/// <summary>
        /// Selects a single row from database given a condition
        /// </summary>
        /// <typeparam name="T">Model type to returned</typeparam>
        /// <param name="ProcedureName">SQL Procedure Name</param>
        /// <param name="Parameters">DyanmicParameters</param>
        /// <returns>Returns one record of type T</returns>
        public async Task <T> QuerySingle <T>(string ProcedureName, List <ParameterModel> ParameterList)
        {
            DynamicParameters parameters = ParameterManager.CreateParameters(ParameterList);

            using (IDbConnection connection = new SqlConnection(_connectionString))
            {
                try
                {
                    var result = await connection.QueryAsync <T>(ProcedureName, parameters, commandType : CommandType.StoredProcedure);

                    return(result.FirstOrDefault());
                }
                catch (System.Exception e)
                {
                    //Throw Exception
                    throw e;
                }
            }
        }
        /// <summary>
        /// Common Execute Proc with results
        /// </summary>
        /// <param name="ProcedureName">SQL Procedure Name</param>
        /// <param name="Parameters">DyanmicParameters</param>
        /// <returns>Returns results from proc as int</returns>
        public async Task <T> ExecuteProc <T>(string ProcedureName, List <ParameterModel> ParameterList)
        {
            DynamicParameters parameters = ParameterManager.CreateParameters(ParameterList);

            using (IDbConnection connection = new SqlConnection(_connectionString))
            {
                try
                {
                    return(await connection.ExecuteScalarAsync <T>(ProcedureName,
                                                                   parameters,
                                                                   commandTimeout : _commandTimeout,
                                                                   commandType : CommandType.StoredProcedure));
                }
                catch (System.Exception e)
                {
                    //Throw Exception
                    throw e;
                }
            }
        }