//using System; //using System.Collections.Generic; //using System.Linq; ////using System.Linq.Dynamic.Core; //using System.Text; //using System.Threading.Tasks; //using GB5Shared.DTO.Framework.Login; //namespace FrameworkDAL.CustomCode.QueryExecutor //{ // public interface IQueryExecutor // { // /// // /// Fetches a single record as a DTO based on the SQL query. // /// // /// The type of DTO. // /// The SQL query string. // /// Optional parameters for the SQL query. // /// A single DTO or null if no match. // Task QuerySingleAsync(LoginDTO LoginDTO, string sql, object parameters = null); // ///// // ///// Fetches multiple records as a list of DTOs based on the SQL query. // ///// // ///// The type of DTO. // ///// The SQL query string. // ///// Optional parameters for the SQL query. // ///// A list of DTOs. // Task> QueryAsync(LoginDTO LoginDTO, string sql, object parameters = null); // ///// // ///// Fetches multiple records as a list of DTOs based on the SQL query. // ///// // ///// The type of DTO. // ///// The SQL query string. // ///// Optional parameters for the SQL query. // ///// A list of DTOs. // Task> QueryAsync(string ConnectionName, string sql, object parameters = null); // ///// // ///// Executes a SQL command (insert, update, delete, etc.) and returns the number of affected rows. // ///// // ///// The SQL command string. // ///// Optional parameters for the SQL command. // ///// The number of affected rows. // Task ExecuteAsync(LoginDTO LoginDTO, string sql, object parameters = null); // ///// // ///// Streams the results of a query asynchronously, suitable for large datasets. // ///// // ///// The type of DTO. // ///// The SQL query string. // ///// Optional parameters for the SQL query. // ///// An asynchronous stream of DTOs. // IAsyncEnumerable StreamAsync(LoginDTO LoginDTO, string sql, object parameters = null); // ///// // ///// Fetches records in a paginated fashion based on the SQL query. // ///// // ///// The type of DTO. // ///// The SQL query string with pagination logic (e.g., OFFSET and FETCH). // ///// Optional parameters for the SQL query. // ///// A list of DTOs and total count for pagination. // Task> QueryPagedAsync(LoginDTO LoginDTO, string sql, object parameters = null); // ///// // ///// Executes a bulk insert for a collection of DTOs. // ///// // ///// The type of DTO to insert. // ///// The SQL query for the insert operation. // ///// The collection of DTOs to insert. // ///// The number of rows affected. // Task BulkInsertAsync(LoginDTO LoginDTO, string sql, IEnumerable items); // IAsyncEnumerable ExecuteQueryAsync(LoginDTO LoginDTO, string sql, object parameters = null); // Task> QueryAsync( // LoginDTO loginDTO, // string sql, // Func map, // object parameters = null, // string splitOn = "Id"); // Task> QueryAsyncnew( // LoginDTO loginDTO, // string sql, // Func map, // object parameters = null, // string splitOn = "Id"); // } //}