Exemplo n.º 1
0
        public void command_inheritance_test()
        {
            var command = new BaseCommand
            {
                AggregateRootId = ObjectId.GenerateNewStringId()
            };
            var asyncResult = _commandService.ExecuteAsync(command).Result;

            Assert.IsNotNull(asyncResult);
            Assert.AreEqual(AsyncTaskStatus.Success, asyncResult.Status);
            var commandResult = asyncResult.Data;

            Assert.IsNotNull(commandResult);
            Assert.AreEqual(CommandStatus.NothingChanged, commandResult.Status);
            Assert.AreEqual("ResultFromBaseCommand", commandResult.Result);

            command = new ChildCommand
            {
                AggregateRootId = ObjectId.GenerateNewStringId()
            };
            asyncResult = _commandService.ExecuteAsync(command).Result;
            Assert.IsNotNull(asyncResult);
            Assert.AreEqual(AsyncTaskStatus.Success, asyncResult.Status);
            commandResult = asyncResult.Data;
            Assert.IsNotNull(commandResult);
            Assert.AreEqual(CommandStatus.NothingChanged, commandResult.Status);
            Assert.AreEqual("ResultFromChildCommand", commandResult.Result);
        }
Exemplo n.º 2
0
 public void GetCustomWordsInCommand()
 {
     TablesInCommand        = new List <TableWord>();
     ColumnsInCommand       = new List <ColumnWord>();
     CustomCustomsInCommand = new List <CustomCustomWord>();
     OperationsInCommand    = new List <IOperation>();
     foreach (List <CommandKeywordInfo> keywords in KeywordsInCommand)
     {
         if (keywords.Count == 1)
         {
             GetCustomWordsInCommandRecursive(keywords[0].CommandKeyword);
         }
         else
         {
             throw new Exception("Command Group Compiler Failed Exception");
         }
     }
     if (ChildCommand != null)
     {
         ChildCommand.GetCustomWordsInCommand();
         ColumnsInCommand.AddRange(ChildCommand.ColumnsInCommand);
         CustomCustomsInCommand.AddRange(ChildCommand.CustomCustomsInCommand);
         TablesInCommand.AddRange(ChildCommand.TablesInCommand);
         OperationsInCommand.AddRange(ChildCommand.OperationsInCommand);
     }
 }
    public void Execute()
    {
        // do something to BaseCommand.Context

        ChildCommand.Execute();

        // do something to BaseCommand.Context
    }
        public async Task command_inheritance_test()
        {
            var command = new BaseCommand
            {
                AggregateRootId = ObjectId.GenerateNewStringId()
            };
            var commandResult = await _commandService.ExecuteAsync(command);

            Assert.NotNull(commandResult);
            Assert.Equal(CommandStatus.NothingChanged, commandResult.Status);
            Assert.Equal("ResultFromBaseCommand", commandResult.Result);

            command = new ChildCommand
            {
                AggregateRootId = ObjectId.GenerateNewStringId()
            };
            commandResult = await _commandService.ExecuteAsync(command);

            Assert.NotNull(commandResult);
            Assert.Equal(CommandStatus.NothingChanged, commandResult.Status);
            Assert.Equal("ResultFromChildCommand", commandResult.Result);
        }
Exemplo n.º 5
0
        public ICommandReturn RunCommand(ICommandReturn parentCommandReturn)
        {
            List <FunctionWord> functions     = new List <FunctionWord>();
            List <IWord>        userInfo      = new List <IWord>();
            ICommandReturn      commandReturn = null;

            foreach (List <CommandKeywordInfo> keyword in KeywordsInCommand)
            {
                if (keyword.Count > 0)
                {
                    userInfo.AddRange(GetAllUserInfo(keyword[0].CommandKeyword));
                }
            }
            for (int i = 0; i < userInfo.Count; i++)
            {
                if (userInfo[i].AllWordType == AllWordTypes.Function)
                {
                    FunctionWord currentFunction = (FunctionWord)userInfo[i];
                    functions.Add(currentFunction);
                    List <IWord> functionReplacement = currentFunction.BeforeCommandFunction.Invoke(currentFunction, TablesInCommand);
                    userInfo.RemoveAt(i);
                    userInfo = AddRangetAtIndex(userInfo, functionReplacement, i);
                    i        = i + functionReplacement.Count;
                }
            }
            commandReturn = BeforeChildCommandFunction.Invoke(parentCommandReturn, userInfo, this);
            if (ChildCommand != null)
            {
                commandReturn = ChildCommand.RunCommand(commandReturn);
            }
            commandReturn = AfterChildCommandFunction.Invoke(commandReturn, userInfo, this);
            foreach (FunctionWord function in functions)
            {
                commandReturn = function.AfterCommandFunction.Invoke(function, commandReturn);
            }
            return(commandReturn);
        }
Exemplo n.º 6
0
        public void command_inheritance_test()
        {
            var command = new BaseCommand
            {
                AggregateRootId = ObjectId.GenerateNewStringId()
            };
            var asyncResult = _commandService.ExecuteAsync(command).Result;
            Assert.IsNotNull(asyncResult);
            Assert.AreEqual(AsyncTaskStatus.Success, asyncResult.Status);
            var commandResult = asyncResult.Data;
            Assert.IsNotNull(commandResult);
            Assert.AreEqual(CommandStatus.NothingChanged, commandResult.Status);
            Assert.AreEqual("ResultFromBaseCommand", commandResult.Result);

            command = new ChildCommand
            {
                AggregateRootId = ObjectId.GenerateNewStringId()
            };
            asyncResult = _commandService.ExecuteAsync(command).Result;
            Assert.IsNotNull(asyncResult);
            Assert.AreEqual(AsyncTaskStatus.Success, asyncResult.Status);
            commandResult = asyncResult.Data;
            Assert.IsNotNull(commandResult);
            Assert.AreEqual(CommandStatus.NothingChanged, commandResult.Status);
            Assert.AreEqual("ResultFromChildCommand", commandResult.Result);
        }