private static string Select <T>(Condition condition, Dictionary <string, object> parameters, ITicket ticket = null, bool triggerEvent = false) { if (condition is null) { throw new ArgumentNullException(nameof(condition)); } if (parameters is null) { throw new ArgumentNullException(nameof(parameters)); } if (parameters.Count <= 0) { throw new ArgumentOutOfRangeException(nameof(parameters)); } string sql = ticket is null ? ExtractSql <T>(ClauseType.Select, condition) : _queriesCache.GetOrAdd(ticket.Id, q => ExtractSql <T>(ClauseType.Select, condition)); if (!triggerEvent) { return(sql); } var eventArgs = new SqlEventArgs { Sql = sql, Parameters = parameters }; OnSelecting?.Invoke(ticket, eventArgs); return(sql); }
private static string Select <T>(Clause clause, string selectClause, ITicket ticket = null, bool triggerEvent = false) { if (clause is null) { throw new ArgumentNullException(nameof(clause)); } string sql = ticket is null ? ExtractSql <T>(ClauseType.Select, clause, selectClause : selectClause) : _queriesCache.GetOrAdd(ticket.Id, q => ExtractSql <T>(ClauseType.Select, clause, selectClause: selectClause)); if (!triggerEvent) { return(sql); } var eventArgs = new SqlEventArgs { Sql = sql }; OnSelecting?.Invoke(ticket, eventArgs); return(sql); }
private static string Select <T>(Expression <Func <T, bool> > expression, Dictionary <string, object> parameters, ITicket ticket, bool triggerEvent = false) { if (expression is null) { throw new ArgumentNullException(nameof(expression)); } string sql = ticket is null ? BuildSql(ClauseType.Select, expression) : _queriesCache.GetOrAdd(ticket.Id, q => BuildSql(ClauseType.Select, expression)); if (!triggerEvent) { return(sql); } var eventArgs = new SqlEventArgs { Sql = sql, Parameters = parameters }; OnSelecting?.Invoke(ticket, eventArgs); return(sql); }
private static string Select <T>(IDbConnection connection, ITicket ticket = null, bool triggerEvent = false) { if (connection is null) { throw new ArgumentNullException(nameof(connection)); } string sql = ticket is null ? BuildSelectAllSql <T>() : _queriesCache.GetOrAdd(ticket.Id, q => BuildSelectAllSql <T>()); if (!triggerEvent) { return(sql); } var eventArgs = new SqlEventArgs { Sql = sql }; OnSelecting?.Invoke(ticket, eventArgs); return(sql); }