public ExecutorResult Execute() { return(RunDiagnosis.Watch(() => { if (!FromComponent.AliasNameMappers.Any()) { throw new ArgumentException("From"); } var mainTable = FromComponent.AliasNameMappers[0]; var selectStatement = _options.TemplateBase.CreateSelect(ExtractSelectFields(), mainTable.Key, mainTable.Value); var statementResultBuilder = Translate(selectStatement, WhereComponent, FromComponent, JoinComponents); JoinComponents.Clear(); if (PaginationComponent != null) { if (OrderComponent == null) { throw new Exception("Order"); } var(fields, tableName) = ExtractOrderFields(); var orderTemplate = _options.TemplateBase.CreateOrderBy(OrderComponent.OrderBy, $@"{tableName}.{fields}"); _options.TemplateBase.CreatePagination(PaginationComponent, orderTemplate, statementResultBuilder.StatmentTemplate); } else if (OrderComponent != null) { var(fields, tableName) = ExtractOrderFields(); var orderTemplate = _options.TemplateBase.CreateOrderBy(OrderComponent.OrderBy, $@"{tableName}.{fields}"); selectStatement.Append(orderTemplate); } return _resultExecutor.Execute(statementResultBuilder); })); }
public ExecutorResult Execute() { return(RunDiagnosis.Watch(() => { Check.IfNullOrZero(_model); var instance = _model; instance.SetAddTime(); instance.OnChanged(); if (_options.ModelValidate) { instance.CheckPropertyValue(); } var(tableName, aliasName) = instance.GetEntityBaseAliasName(); var sqlElements = instance.GetChangedProperties().GetSqlElements(); var insert = _templateBase.CreateInsert(tableName, sqlElements.Fields, sqlElements.InsertPlaceHolders); var statementResultBuilder = new StatementResultBuilder(); statementResultBuilder.AddStatementTemplate(insert); foreach (var item in sqlElements.Parameters) { statementResultBuilder.AddParameter(item); } return _resultExecutor.Execute(statementResultBuilder); })); }
public ExecutorResult Execute() { return(RunDiagnosis.Watch(() => { var instance = Model; instance.SetUpdateTime(); if (_options.ModelValidate) { instance.CheckPropertyValue(); } var(tableName, aliasName) = instance.GetEntityBaseAliasName(); var sqlElements = instance.GetChangedProperties().GetSqlElements(); var update = _options.TemplateBase.CreateUpdate(tableName, aliasName, sqlElements.UpdatePlaceHolders); var statementResultBuilder = Translate(update, WhereComponent); instance.Reset(); return _resultExecutor.Execute(statementResultBuilder); })); }