Exemple #1
0
        protected override void Execute(
            IExecutionService executionService
            )
        {
            if (Status == Status.NotExecuted)
            {
                ChangeStatus(
                    executionService,
                    Status.Executing);

                var children = Definition.As <Definition.SequenceBase>().NewChildren(this).ToList();
                Children = children;
                children.ForEach(executionService.Save);
            }

            if (Status == Status.Executing)
            {
                var current = Children.FirstOrDefault(child => child.Status != Status.Executed);
                if (current == null)
                {
                    ChangeStatus(
                        executionService,
                        Status.Executed);
                }

                else if (current.Status == Status.NotExecuted)
                {
                    executionService.Execute(current);
                }
            }
        }
Exemple #2
0
        private void Reset(long _)
        {
            _analyticsService.Reset();
            _tradeRepository.Reset();

            // make 3 trades

            // eurusd
            // gbpusd
            // nzdusd
            foreach (var ccyPair in new [] { "EURUSD", "GBPUSD", "NZDUSD" })
            {
                try
                {
                    var price = _priceLastValueCache.GetLastValue(ccyPair);

                    var trade = new TradeRequestDto()
                    {
                        DealtCurrency = "EUR",
                        Direction     = DirectionDto.Buy,
                        Notional      = 500000,
                        SpotRate      = price.Bid,
                        Symbol        = ccyPair,
                        ValueDate     = DateTime.Now.ToNextWeekday(2)
                    };

                    _executionService.Execute(trade, "CPU-007").Wait(TimeSpan.FromSeconds(10));
                }
                catch
                {
                    // swallow exception
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// Executes the reference upon its parent package. Descendants can change this
        /// behavior if something needs to be done before or after execution.
        /// </summary>
        /// <returns>An <see cref="ExecutionResult"/> that represents the result of the execution of the recipe.</returns>
        protected override ExecutionResult OnExecute()
        {
            IExecutionService executor = (IExecutionService)
                                         ServiceHelper.GetService(this, typeof(IExecutionService));

            return(executor.Execute(this));
        }
        protected virtual void ChangeStatus(
            IExecutionService executionService,
            Status status
            )
        {
            var previousStatus = Status;

            Status = status;
            if (Status != previousStatus)
            {
                switch (Status)
                {
                case Status.Executing:
                    OnExecuting(executionService);
                    break;

                case Status.Executed:
                    OnExecuted(executionService);
                    if (Parent != null)
                    {
                        executionService.Execute(Parent);
                    }
                    break;

                default: break;
                }
            }
        }
        public Task <TradeDto> Execute(TradeRequestDto tradeRequest)
        {
            var user = ContextUtil.GetUserName(Context);

            Log.InfoFormat("Received trade request {0} from user {1}", tradeRequest, user);

            var trade = _executionService.Execute(tradeRequest, user);

            Log.InfoFormat("Trade executed: {0}", trade);

            return(trade);
        }
        protected override void Execute(
            IExecutionService executionService
            )
        {
            var definition = Definition.As <Definition.GuardedProcess>();

            if (Status == Status.NotExecuted)
            {
                if (definition.GuardExpression == null ||
                    definition.GuardExpression(this))
                {
                    ChangeStatus(
                        executionService,
                        Status.AwaitChoice);

                    Guard = (IO)definition.Guard.New(this);
                    executionService.Save(Guard);
                    ((IExecutable)Guard).Execute(executionService);
                }
                else
                {
                    ChangeStatus(
                        executionService,
                        Status.NotChosen);
                }
            }

            if (Status == Status.Executing)
            {
                if (definition.Guarded != null)
                {
                    if (Guarded == null)
                    {
                        Guarded = definition.Guarded.New(this);
                        executionService.Save(Guarded);
                        executionService.Execute(Guarded);
                    }

                    if (Guarded.Status == Status.Executed)
                    {
                        ChangeStatus(
                            executionService,
                            Status.Executed);
                    }
                }
                else
                {
                    ChangeStatus(
                        executionService,
                        Status.Executed);
                }
            }
        }
Exemple #7
0
        private void HandleNlpRequestMessage(IMessage message)
        {
            var request = (NlpRequestMessage)message;

            Console.WriteLine("Got a ! Text=" + request.Text);
            // use SimpleParser or Chatbot to get FFO
            Intent intent = RequestToSimpleParserOrChatbot(request.Text);
            //RequestToExecutionEngine(intents, request.Metadata.RequestUserInfo);

            ICommand command = ConvertIntentToCommand(intent);

            _executionService.Execute(command, request.Metadata);
        }
Exemple #8
0
        public IActionResult Run(Guid id)
        {
            using (_databaseContextFactory.Create())
            {
                var test = _testRepository.Get(id);

                var executionContext = _executionService.Execute(test.FormulaId, test.ArgumentValues(), new ContextLogger(ContextLogLevel.Verbose));
                var result           = executionContext.GetResult();

                return(Ok(new
                {
                    Passed = _valueComparer.IsSatisfiedBy(test.ExpectedResultDataTypeName, test.ExpectedResult, "==", result.ToString(CultureInfo.InvariantCulture)),
                    Exception = executionContext.Exception.AllMessages(),
                    Result = result,
                    LogLines = executionContext.Logger.Lines,
                    Results = executionContext.GetResults()
                }));
            }
        }
Exemple #9
0
        public void ProcessMessage(IHandlerContext <ExecuteTestCommand> context)
        {
            if (string.IsNullOrEmpty(context.TransportMessage.SenderInboxWorkQueueUri))
            {
                return;
            }

            var message = context.Message;

            if (!Enum.TryParse(message.LogLevel, true, out ContextLogLevel logLevel))
            {
                logLevel = ContextLogLevel.None;
            }

            using (_databaseContextFactory.Create())
            {
                var test = _testRepository.Get(message.Id);

                var executionContext = _executionService
                                       .Execute(message.Id, test.ArgumentValues(), new ContextLogger(logLevel));

                var response = new TestExecutedEvent
                {
                    Id        = test.Id,
                    FormulaId = test.FormulaId,
                    Log       = executionContext.Logger.ToString()
                };

                if (!executionContext.HasException)
                {
                    response.Exception      = executionContext.Exception.Message;
                    response.FormulaContext = new Messages.v1.TransferObjects.FormulaContext();

                    response.FormulaContext = GetFormulaContext(executionContext.RootFormulaContext);
                }
                else
                {
                    response.Result = executionContext.GetResult();
                }

                context.Send(response, c => c.Reply());
            }
        }
Exemple #10
0
        protected override void Execute(
            IExecutionService executionService
            )
        {
            if (Status == Status.NotExecuted)
            {
                ChangeStatus(
                    executionService,
                    Status.Executing);
            }

            if (Status == Status.Executing)
            {
                if (Embedded != null &&
                    Embedded.Status == Status.Executed)
                {
                    Embedded = null;
                }

                var definition = Definition.As <Definition.While>();

                if (Embedded == null &&
                    definition.BooleanExpression(this))
                {
                    Embedded = definition.Embedded.New(this);
                    executionService.Execute(Embedded);
                }

                if (Embedded == null)
                {
                    ChangeStatus(
                        executionService,
                        Status.Executed);
                }
            }
        }
        public ActionResult <IEnumerable <string> > TestSyncWithoutContext()
        {
            executionService.Execute(ProcessExamplesEnum.Process1, () => TestMethod());

            return(Ok());
        }