static void Main(string[] args)
        {
            Customer c = new Customer();

            c.Name = "Alice";
            c.ID   = 1;
            CreateExpression <Customer>()(c);
        }
Exemple #2
0
        internal override string GetCreateCommand(CreateExpression expression)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append($"CREATE TABLE {expression.TableName} (");
            foreach (ColumnDefinition column in expression.ColumnList)
            {
                stringBuilder.Append(GetNewColumnCommand(column));
                stringBuilder.Append($",{GetConstraintKeyCommand(column)}");
                if (column != expression.ColumnList.Last())
                {
                    stringBuilder.Append(",");
                }
            }
            if (expression.PrimaryKeyGroup != null)
            {
                stringBuilder.Append(",PRIMARY KEY (");
                foreach (string key in expression.PrimaryKeyGroup)
                {
                    stringBuilder.Append(key);
                    if (key != expression.PrimaryKeyGroup.Last())
                    {
                        stringBuilder.Append(",");
                    }
                }
                stringBuilder.Append(")");
            }
            stringBuilder.Append(");");
            return(stringBuilder.ToString());
        }
        public void GetUserTest_FuncStringStringUser_YaroslavWecker()
        {
            var user = CreateExpression.GetUser("Yaroslav", "Wecker");

            Assert.AreEqual("Yaroslav", user.FirstName);
            Assert.AreEqual("Wecker", user.LastName);
        }
        public void GetUserTest_FuncStringStringUser_NikolaiKopernyk()
        {
            var user = CreateExpression.GetUser("Nikolai", "Kopernyk");

            Assert.AreEqual("Nikolai", user.FirstName);
            Assert.AreEqual("Kopernyk", user.LastName);
        }
        public void TaskForAllExpressionTest_2sub7div2Isminus2andHalf()
        {
            var func = CreateExpression.TaskForAllExpression();

            var res = func(2, 7);

            Assert.AreEqual(-2.5, res);
        }
        public void TaskForAllExpressionTest_4sub2div2Is1()
        {
            var func = CreateExpression.TaskForAllExpression();

            var res = func(4, 2);

            Assert.AreEqual((double)1, res);
        }
        public void GetUserTest_FuncStringStringDateTimeUser_OttoBecker2001Age16()
        {
            var user = CreateExpression.GetUser("Otto", "Becker", DateTime.UtcNow.AddYears(-16));

            Assert.AreEqual("Otto", user.FirstName);
            Assert.AreEqual("Becker", user.LastName);
            Assert.AreEqual(DateTime.UtcNow.AddYears(-16).Year, user.BirthDay.Year);
            Assert.AreEqual((uint)16, user.Age);
        }
        public void GetUserTest_FuncStringStringDateTimeUser_SamWhite2010Age7()
        {
            var user = CreateExpression.GetUser("Sam", "White", DateTime.UtcNow.AddYears(-7));

            Assert.AreEqual("Sam", user.FirstName);
            Assert.AreEqual("White", user.LastName);
            Assert.AreEqual(DateTime.UtcNow.AddYears(-7).Year, user.BirthDay.Year);
            Assert.AreEqual((uint)7, user.Age);
        }
Exemple #9
0
        public async void Should_Store_Expression()
        {
            server.PrepareUser(UserFixture.User);

            var expression = new CreateExpression()
            {
                Expression = "1 = 1"
            };

            var result = await client.Create(expression);

            result.HasStatusCode(HttpStatusCode.OK);
        }
Exemple #10
0
        public async Task <Model.Expression> Handle(CreateExpression message, CancellationToken cancellationToken)
        {
            var id         = Guid.NewGuid();
            var expression = this.repository.Create(new Expression()
            {
                ExpressionString = message.Expression,
                Id     = id,
                UserId = message.UserId,
                Name   = message.Name ?? GetName()
            });
            await repository.Save();

            return(new Model.Expression()
            {
                Id = expression.Id,
                ExpressionString = expression.ExpressionString,
                Name = expression.Name
            });
        }
        /// <summary>
        ///     Renders the object model in it's EPL syntax textual representation, using a whitespace-formatter as provided.
        /// </summary>
        /// <param name="formatter">the formatter to use</param>
        /// <param name="writer">writer to use</param>
        /// <throws>IllegalStateException if required clauses do not exist</throws>
        public void ToEPL(
            EPStatementFormatter formatter,
            TextWriter writer)
        {
            AnnotationPart.ToEPL(writer, Annotations, formatter);
            ExpressionDeclaration.ToEPL(writer, ExpressionDeclarations, formatter);
            ScriptExpression.ToEPL(writer, ScriptExpressions, formatter);
            ClassProvidedExpression.ToEPL(writer, ClassProvidedExpressions, formatter);

            if (ContextName != null)
            {
                formatter.BeginContext(writer);
                writer.Write("context ");
                writer.Write(ContextName);
            }

            if (CreateIndex != null)
            {
                formatter.BeginCreateIndex(writer);
                CreateIndex.ToEPL(writer);
                return;
            }

            if (CreateSchema != null)
            {
                formatter.BeginCreateSchema(writer);
                CreateSchema.ToEPL(writer);
                return;
            }

            if (CreateExpression != null)
            {
                formatter.BeginCreateExpression(writer);
                CreateExpression.ToEPL(writer);
                return;
            }

            if (CreateClass != null)
            {
                formatter.BeginCreateExpression(writer);
                CreateClass.ToEPL(writer);
                return;
            }

            if (CreateContext != null)
            {
                formatter.BeginCreateContext(writer);
                CreateContext.ToEPL(writer, formatter);
                return;
            }

            if (CreateWindow != null)
            {
                formatter.BeginCreateWindow(writer);
                CreateWindow.ToEPL(writer);

                writer.Write(" as ");

                if (SelectClause == null || SelectClause.SelectList.IsEmpty() && !CreateWindow.Columns.IsEmpty())
                {
                    CreateWindow.ToEPLCreateTablePart(writer);
                }
                else
                {
                    SelectClause.ToEPL(writer, formatter, false, false);
                    if (CreateWindow.AsEventTypeName != null)
                    {
                        writer.Write(" from ");
                        writer.Write(CreateWindow.AsEventTypeName);
                    }

                    CreateWindow.ToEPLInsertPart(writer);
                }

                return;
            }

            if (CreateVariable != null)
            {
                formatter.BeginCreateVariable(writer);
                CreateVariable.ToEPL(writer);
                return;
            }

            if (CreateTable != null)
            {
                formatter.BeginCreateTable(writer);
                CreateTable.ToEPL(writer);
                return;
            }

            if (CreateDataFlow != null)
            {
                formatter.BeginCreateDataFlow(writer);
                CreateDataFlow.ToEPL(writer, formatter);
                return;
            }

            var displayWhereClause = true;

            if (UpdateClause != null)
            {
                formatter.BeginUpdate(writer);
                UpdateClause.ToEPL(writer);
            }
            else if (OnExpr != null)
            {
                formatter.BeginOnTrigger(writer);
                writer.Write("on ");
                FromClause.Streams[0].ToEPL(writer, formatter);

                if (OnExpr is OnDeleteClause onDeleteClause)
                {
                    formatter.BeginOnDelete(writer);
                    writer.Write("delete from ");
                    onDeleteClause.ToEPL(writer);
                }
                else if (OnExpr is OnUpdateClause onUpdateClause)
                {
                    formatter.BeginOnUpdate(writer);
                    writer.Write("update ");
                    onUpdateClause.ToEPL(writer);
                }
                else if (OnExpr is OnSelectClause onSelectClause)
                {
                    InsertInto?.ToEPL(writer, formatter, true);
                    SelectClause.ToEPL(writer, formatter, true, onSelectClause.IsDeleteAndSelect);
                    writer.Write(" from ");
                    onSelectClause.ToEPL(writer);
                }
                else if (OnExpr is OnSetClause onSetClause)
                {
                    onSetClause.ToEPL(writer, formatter);
                }
                else if (OnExpr is OnMergeClause onMergeClause)
                {
                    onMergeClause.ToEPL(writer, WhereClause, formatter);
                    displayWhereClause = false;
                }
                else
                {
                    var split = (OnInsertSplitStreamClause)OnExpr;
                    InsertInto.ToEPL(writer, formatter, true);
                    SelectClause.ToEPL(writer, formatter, true, false);
                    if (WhereClause != null)
                    {
                        writer.Write(" where ");
                        WhereClause.ToEPL(writer, ExpressionPrecedenceEnum.MINIMUM);
                    }

                    split.ToEPL(writer, formatter);
                    displayWhereClause = false;
                }
            }
            else
            {
                IntoTableClause?.ToEPL(writer);

                if (SelectClause == null)
                {
                    throw new IllegalStateException("Select-clause has not been defined");
                }

                if (FromClause == null)
                {
                    throw new IllegalStateException("From-clause has not been defined");
                }

                if (FireAndForgetClause is FireAndForgetUpdate fireAndForgetUpdate)
                {
                    writer.Write("update ");
                    FromClause.ToEPLOptions(writer, formatter, false);
                    writer.Write(" ");
                    UpdateClause.RenderEPLAssignments(writer, fireAndForgetUpdate.Assignments);
                }
                else if (FireAndForgetClause is FireAndForgetInsert fireAndForgetInsert)
                {
                    InsertInto.ToEPL(writer, formatter, true);
                    if (fireAndForgetInsert.IsUseValuesKeyword)
                    {
                        writer.Write(" values (");
                        var delimiter = "";
                        foreach (var element in SelectClause.SelectList)
                        {
                            writer.Write(delimiter);
                            element.ToEPLElement(writer);
                            delimiter = ", ";
                        }

                        writer.Write(")");
                    }
                    else
                    {
                        SelectClause.ToEPL(writer, formatter, true, false);
                    }
                }
                else if (FireAndForgetClause is FireAndForgetDelete)
                {
                    writer.Write("delete ");
                    FromClause.ToEPLOptions(writer, formatter, true);
                }
                else
                {
                    InsertInto?.ToEPL(writer, formatter, true);
                    SelectClause.ToEPL(writer, formatter, true, false);
                    FromClause.ToEPLOptions(writer, formatter, true);
                }
            }

            MatchRecognizeClause?.ToEPL(writer);

            if (WhereClause != null && displayWhereClause)
            {
                formatter.BeginWhere(writer);
                writer.Write("where ");
                WhereClause.ToEPL(writer, ExpressionPrecedenceEnum.MINIMUM);
            }

            if (GroupByClause != null)
            {
                formatter.BeginGroupBy(writer);
                writer.Write("group by ");
                GroupByClause.ToEPL(writer);
            }

            if (HavingClause != null)
            {
                formatter.BeginHaving(writer);
                writer.Write("having ");
                HavingClause.ToEPL(writer, ExpressionPrecedenceEnum.MINIMUM);
            }

            if (OutputLimitClause != null)
            {
                formatter.BeginOutput(writer);
                writer.Write("output ");
                OutputLimitClause.ToEPL(writer);
            }

            if (OrderByClause != null)
            {
                formatter.BeginOrderBy(writer);
                writer.Write("order by ");
                OrderByClause.ToEPL(writer);
            }

            if (RowLimitClause != null)
            {
                formatter.BeginLimit(writer);
                writer.Write("limit ");
                RowLimitClause.ToEPL(writer);
            }

            if (ForClause != null)
            {
                formatter.BeginFor(writer);
                ForClause.ToEPL(writer);
            }
        }
 public async Task <IActionResult> Create([FromBody] CreateExpression toCreate)
 {
     toCreate.UserId = UserId;
     return(new OkObjectResult(await mediator.Send(toCreate)));
 }
Exemple #13
0
 internal abstract string  GetCreateCommand(CreateExpression expression);