using System; using System.Collections.Generic; namespace Kit.Helpers.SqlHelperAbstract { public interface ISqlHelper { void ExecuteNonQuery(RequestParams requestParams); object ExecuteScalar(RequestParams requestParams); TResult ExecuteScalar(RequestParams requestParams); IEnumerable ExecuteSelectMany(RequestParamsSelect requestParams); IEnumerableWithPage ExecuteSelectManyWithPage(RequestParamsSelect requestParams); IEnumerableWithOffer ExecuteSelectManyWithOffer(RequestParamsSelect requestParams); } public static class SqlHelper { #region ExecuteNonQuery public static void ExecuteNonQuery(this IConnectionString connectionString, string sql, bool isStoredProcedure, bool withStrictSyntax = false, IEnumerable> parameters = null, IEnumerable customTypes = null) { var requestParams = new RequestParams(connectionString, sql, isStoredProcedure, withStrictSyntax, parameters, customTypes); connectionString.GetSqlHelper().ExecuteNonQuery(requestParams); } #endregion #region ExecuteScalar public static object ExecuteScalar(this IConnectionString connectionString, string sql, bool isStoredProcedure, bool withStrictSyntax = false, IEnumerable> parameters = null, IEnumerable customTypes = null) { var requestParams = new RequestParams(connectionString, sql, isStoredProcedure, withStrictSyntax, parameters, customTypes); return connectionString.GetSqlHelper().ExecuteScalar(requestParams); } public static TEntity ExecuteScalar(this IConnectionString connectionString, string sql, bool isStoredProcedure, bool withStrictSyntax = false, IEnumerable> parameters = null, IEnumerable customTypes = null) { var requestParams = new RequestParams(connectionString, sql, isStoredProcedure, withStrictSyntax, parameters, customTypes); return connectionString.GetSqlHelper().ExecuteScalar(requestParams); } #endregion #region ExecuteSelectMany public static IEnumerable ExecuteSelectMany(this IConnectionString connectionString, string sql, bool isStoredProcedure, bool withStrictSyntax = false, IEnumerable> parameters = null, IEnumerable customTypes = null, params Action>[] converters) { var requestParams = new RequestParamsSelect(connectionString, sql, isStoredProcedure, withStrictSyntax, parameters, customTypes, converters); return connectionString.GetSqlHelper().ExecuteSelectMany(requestParams); } #endregion #region ExecuteSelectManyWithPage public static IEnumerableWithPage ExecuteSelectManyWithPage(this IConnectionString connectionString, string sql, bool isStoredProcedure, bool withStrictSyntax = false, IEnumerable> parameters = null, IEnumerable customTypes = null, params Action>[] converters) { var requestParams = new RequestParamsSelect(connectionString, sql, isStoredProcedure, withStrictSyntax, parameters, customTypes, converters); return connectionString.GetSqlHelper().ExecuteSelectManyWithPage(requestParams); } #endregion } }