Example #1
0
        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);
            }));
        }
Example #2
0
        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);
            }));
        }
Example #3
0
        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);
            }));
        }