Ejemplo n.º 1
0
 /// <summary>
 /// Build Sql command and parameters from the shorthand fluent syntax
 /// </summary>
 /// <remarks>
 /// //Example query with multiple blocks
 /// cmd.BuildSelect(builder =>
 /// {
 ///    builder.Limit = 100;
 ///    builder.Select("T1.*").From("dbo", "TBL_USER", "T1");
 ///
 ///    builder.WhereBlockBegin(WhereClauseType.Or)
 ///           .AndWhere("T1.FIRSTNAME = ?FN1", new MySqlParameter("FN1", "Adam"))
 ///           .AndWhere("T1.FIRSTNAME != ?FN2", new MySqlParameter("FN2", "Amber"))
 ///           .WhereBlockEnd();
 ///
 ///    builder.WhereBlockBegin(WhereClauseType.Or)
 ///           .AndWhere("T1.LASTNAME = ?LN1", new MySqlParameter("LN1", "Adamson"))
 ///           .AndWhere("T1.LASTNAME != ?LN2", new MySqlParameter("LN2", "Amberman"))
 ///           .WhereBlockEnd();
 ///
 ///    builder.OrderByAsc("T1.LASTNAME")
 ///           .OrderByDesc("T1.FIRSTNAME");
 ///    builder.GroupBy("T1.FIRSTNAME");
 ///    builder.Having("T1.SCORE > ?SCORE", new MySqlParameter("SCORE", 12_000));
 ///});
 /// </remarks>
 public static MySqlCommand BuildSelect(this MySqlCrudQueryExecutionContext ctx,
                                        MySqlCommand command,
                                        IBusinessFilterModel filter,
                                        Action <MySqlSelectBuilder> body)
 {
     command.NonNull(nameof(command));
     body.NonNull(nameof(body));
     using (var builder = MySqlSelectBuilder.For(ctx.DataStore.SchemaName.NonBlank("schema-name")))
     {
         builder.Limit = filter.NonNull(nameof(filter)).PagingCount;
         body(builder);
         builder.Build(command);
     }
     return(command);
 }
Ejemplo n.º 2
0
 public async Task <object> Filter(IBusinessFilterModel filter) => await ApplyFilter(filter);