/// <inheritdoc /> public string BuildSelectStatement <T>(T dataModel) where T : class { if (dataModel == null) { throw new ArgumentNullException(nameof(dataModel)); } var dataModelTable = dataModel.GetThuriaDataModelTableName(); var dataModelColumns = dataModel.GetThuriaDataModelColumns(DbContextAction.Retrieve); var whereCondition = GetWhereConditionsForDataModel(DbContextAction.Retrieve, dataModel); string sqlStatement; lock (_selectBuilderLock) { _selectStatementBuilder.Clear(); _selectStatementBuilder = _selectStatementBuilder.WithTable(dataModelTable); foreach (var currentColumn in dataModelColumns) { var columnModel = new ColumnModel(dataModelTable, currentColumn.ColumnName, currentColumn.Alias); _selectStatementBuilder.WithColumn(columnModel); } if (!string.IsNullOrWhiteSpace(whereCondition)) { _selectStatementBuilder.WithWhereCondition(whereCondition); } sqlStatement = _selectStatementBuilder.Build(); } return(sqlStatement); }
/// <summary> /// Helium Construct Select SQL Query Actor Constructor /// </summary> public HeliumConstructSelectSqlQueryActor(ISelectStatementBuilder selectStatementBuilder, IConditionBuilder conditionBuilder) : base(conditionBuilder) { _selectStatementBuilder = selectStatementBuilder ?? throw new ArgumentNullException(nameof(selectStatementBuilder)); Receive <HeliumConstructSqlQueryMessage>(HandleConstructSqlQueryMessage, message => message.HeliumAction == HeliumAction.Retrieve); }
public static ISelectStatementBuilder Limit(this ISelectStatementBuilder builder, Action <ISelectLimitBuilder> limit) { var limitBuilder = new SelectLimitBuilder(); limit(limitBuilder); return(builder.Limit(limitBuilder.Build())); }
public static ISelectStatementBuilder Query(this ISelectStatementBuilder builder, Action <IQueryExpressionBuilder> query) { var queryBuilder = new QueryExpressionBuilder(); query(queryBuilder); return(builder.Query(queryBuilder.Build())); }
private IActorRef CreateActor(ISelectStatementBuilder statementBuilder = null, IConditionBuilder conditionBuilder = null) { var selectStatementBuilder = statementBuilder ?? Substitute.For <ISelectStatementBuilder>(); var selectConditionBuilder = conditionBuilder ?? Substitute.For <IConditionBuilder>(); var actorProps = Props.Create <HeliumConstructSelectSqlQueryActor>(selectStatementBuilder, selectConditionBuilder); return(Sys.ActorOf(actorProps, "Test")); }
/// <summary> /// SQL Statement Build Provider Constructor /// </summary> /// <param name="selectStatementBuilder">Select Statement Builder</param> /// <param name="insertStatementBuilder">Insert Statement Builder</param> /// <param name="updateStatementBuilder">Update Statement Builder</param> /// <param name="conditionBuilder">Condition Builder</param> public SqlStatementBuildProvider(ISelectStatementBuilder selectStatementBuilder, IInsertStatementBuilder insertStatementBuilder, IUpdateStatementBuilder updateStatementBuilder, IConditionBuilder conditionBuilder) { _selectStatementBuilder = selectStatementBuilder ?? throw new ArgumentNullException(nameof(selectStatementBuilder)); _insertStatementBuilder = insertStatementBuilder ?? throw new ArgumentNullException(nameof(insertStatementBuilder)); _updateStatementBuilder = updateStatementBuilder ?? throw new ArgumentNullException(nameof(updateStatementBuilder)); _conditionBuilder = conditionBuilder ?? throw new ArgumentNullException(nameof(conditionBuilder)); }
public static ISelectStatementBuilder OrderBy(this ISelectStatementBuilder builder, params Action <ISelectOrderBuilder>[] sort) { foreach (var action in sort) { var sortBuilder = new SelectOrderBuilder(); action(sortBuilder); builder = builder.OrderBy(sortBuilder.Build()); } return(builder); }
public void Constructor_GivenNullSelectStatementBuilder_ShouldThrowException() { //---------------Set up test pack------------------- ISelectStatementBuilder selectStatementBuilder = null; var conditionBuilder = Substitute.For <IConditionBuilder>(); var actorProps = Props.Create <HeliumConstructSelectSqlQueryActor>(selectStatementBuilder, conditionBuilder); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- EventFilter.Exception(typeof(ArgumentNullException), contains: "Parameter name: selectStatementBuilder", checkInnerExceptions: true) .Expect(1, () => Sys.ActorOf(actorProps, "Test")); //---------------Test Result ----------------------- }