//using System; //using System.Collections.Generic; //using System.Data; //using System.Linq; ////using System.Linq.Dynamic.Core; //using System.Text; //using System.Threading.Tasks; //using Dapper; //using System.Linq; //using Microsoft.Data.SqlClient; //using System.Data.Common; //using FrameworkDAL.CustomCode.Authentication; //using FrameworkDAL.CustomCode.Connection; //using GB5Shared.DTO.Framework.Login; //namespace FrameworkDAL.CustomCode.QueryExecutor //{ // public class QueryExecutor : IQueryExecutor // { // private string _connectionstring; // //private readonly string _ConnectionName; // private readonly IApplicationConnection _Appconnection; // // Constructor with Dependency Injection // public QueryExecutor(IApplicationConnection Appconnection) // { // _Appconnection = Appconnection; // } // public async Task QuerySingleAsync(LoginDTO LoginDTO, string sql, object parameters = null) // { // _connectionstring = await _Appconnection.DBConnectionStringCached(LoginDTO); // await using (SqlConnection connection = new SqlConnection(_connectionstring)) // { // int commandTimeout = 1200; // return await connection.QuerySingleOrDefaultAsync(sql, parameters, commandTimeout: commandTimeout); // } // } // public async Task> QueryAsync(LoginDTO LoginDTO,string sql, object parameters = null) // { // _connectionstring = await _Appconnection.DBConnectionStringCached(LoginDTO); // await using (SqlConnection connection = new SqlConnection(_connectionstring)) // { // int commandTimeout = 1200; // return await connection.QueryAsync(sql, parameters, commandTimeout: commandTimeout); // } // } // public async Task> QueryAsync(string ConnectionName , string sql, object parameters = null) // { // _connectionstring = await _Appconnection.DBConnectionStringCached(ConnectionName); // await using (SqlConnection connection = new SqlConnection(_connectionstring)) // { // int commandTimeout = 1200; // return await connection.QueryAsync(sql, parameters, commandTimeout: commandTimeout); // } // } // public async IAsyncEnumerable ExecuteQueryAsync(LoginDTO LoginDTO, string sql, object parameters = null) // { // _connectionstring = await _Appconnection.DBConnectionStringCached(LoginDTO); // await using var connection = new SqlConnection(_connectionstring); // await connection.OpenAsync(); // int commandTimeout = 1200; // var result = await connection.QueryAsync(sql, parameters, commandTimeout: commandTimeout); // Await here // foreach (var item in result) // Iterate normally // { // yield return item; // } // } // public async Task ExecuteAsync(LoginDTO LoginDTO, string sql, object parameters = null) // { // _connectionstring = await _Appconnection.DBConnectionStringCached(LoginDTO); // await using (SqlConnection connection = new SqlConnection(_connectionstring)) // { // int commandTimeout = 1200; // return await connection.ExecuteAsync(sql, parameters, commandTimeout: commandTimeout); // } // } // public async IAsyncEnumerable StreamAsync(LoginDTO LoginDTO, string sql, object parameters = null) // { // _connectionstring = await _Appconnection.DBConnectionStringCached(LoginDTO); // await using (SqlConnection connection = new SqlConnection(_connectionstring)) // { // var items = await connection.QueryAsync(sql, parameters).ConfigureAwait(false); // foreach (var item in items) // { // yield return item; // } // } // } // public async Task> QueryPagedAsync(LoginDTO LoginDTO ,string sql, object parameters = null) // { // _connectionstring = await _Appconnection.DBConnectionStringCached(LoginDTO); // await using (SqlConnection connection = new SqlConnection(_connectionstring)) // { // var items = await connection.QueryAsync(sql, parameters); // var countSql = "SELECT COUNT(*) FROM (" + sql + ") AS Total"; // var totalCount = await connection.QuerySingleAsync(countSql, parameters); // return new PagedResult // { // Items = items.ToList(), // TotalCount = totalCount // }; // } // } // public async Task BulkInsertAsync(LoginDTO LoginDTO,string sql, IEnumerable items) // { // _connectionstring = await _Appconnection.DBConnectionStringCached(LoginDTO); // await using (SqlConnection connection = new SqlConnection(_connectionstring)) // { // return await connection.ExecuteAsync(sql, items); // } // } // public async Task> QueryAsync( // LoginDTO loginDTO, // string sql, // Func map, // object parameters = null, // string splitOn = "Id") // { // _connectionstring = await _Appconnection.DBConnectionStringCached(loginDTO); // await using var connection = new SqlConnection(_connectionstring); // return await connection.QueryAsync(sql, map, parameters, splitOn: splitOn); // } // public async Task> QueryAsyncnew( // LoginDTO loginDTO, // string sql, // Func map, // object parameters = null, // string splitOn = "Id") // { // _connectionstring = await _Appconnection.DBConnectionStringCached(loginDTO); // await using var connection = new SqlConnection(_connectionstring); // return await connection.QueryAsync( // sql, // map, // param: parameters, // splitOn: splitOn // ); // } // } // public class PagedResult // { // public IEnumerable Items { get; set; } // public int TotalCount { get; set; } // } //}