예제 #1
0
        private void MarketGatewayOnOrderFailed(object sender, ApiOrderFailedEventArgs apiArgs)
        {
            // Adapts the external API format to the SOR domain format
            var dealExecutedEventArgs = new OrderFailedEventArgs(apiArgs.MarketName, apiArgs.FailureCause);

            // TODO: Review the stack overflow exception when events from the MarketsAdapter are raised the other way round
            this.RaiseOrderFailedOnAMarket(dealExecutedEventArgs);
            this.RaiseOrderFailed(dealExecutedEventArgs);
        }
예제 #2
0
        private void RaiseOrderFailedOnAMarket(OrderFailedEventArgs args)
        {
            var onOrderFailedOnAMarket = this.OrderFailedOnAMarket;

            if (onOrderFailedOnAMarket != null)
            {
                onOrderFailedOnAMarket(this, args);
            }
        }
예제 #3
0
        private void RaiseOrderFailed(OrderFailedEventArgs args)
        {
            var orderFailed = this.OrderFailed;

            if (orderFailed != null)
            {
                orderFailed(this, args);
            }
        }
예제 #4
0
 private void OnOrderFailed(OrderFailedEventArgs reason, InstructionExecutionContext instructionExecutionContext)
 {
     if (instructionExecutionContext.ShouldTheInstructionBeContinued())
     {
         this.RetryInvestorInstruction(instructionExecutionContext);
     }
     else
     {
         instructionExecutionContext.DeclareFailure(reason);
     }
 }
예제 #5
0
 public void DeclareFailure(OrderFailedEventArgs orderFailedEventArgs)
 {
     this.instructionFailedCallback(orderFailedEventArgs.Reason);
 }