protected BaseMessageSender(
            string caseTitle,
            string messageSenderName,
            ILogger logger,
            IQueueCasePublisher queueCasePublisher,
            IRuleBreachRepository ruleBreachRepository,
            IRuleBreachOrdersRepository ruleBreachOrdersRepository,
            IRuleBreachToRuleBreachOrdersMapper ruleBreachToRuleBreachOrdersMapper,
            IRuleBreachToRuleBreachMapper ruleBreachToRuleBreachMapper)
        {
            this.Logger = logger ?? throw new ArgumentNullException(nameof(logger));
            this._queueCasePublisher =
                queueCasePublisher ?? throw new ArgumentNullException(nameof(queueCasePublisher));
            this._ruleBreachRepository =
                ruleBreachRepository ?? throw new ArgumentNullException(nameof(ruleBreachRepository));
            this._ruleBreachOrdersRepository = ruleBreachOrdersRepository
                                               ?? throw new ArgumentNullException(nameof(ruleBreachOrdersRepository));
            this._ruleBreachToRuleBreachOrdersMapper = ruleBreachToRuleBreachOrdersMapper
                                                       ?? throw new ArgumentNullException(
                                                                 nameof(ruleBreachToRuleBreachOrdersMapper));
            this._ruleBreachToRuleBreachMapper = ruleBreachToRuleBreachMapper
                                                 ?? throw new ArgumentNullException(
                                                           nameof(ruleBreachToRuleBreachMapper));

            this._caseTitle         = caseTitle ?? string.Empty;
            this._messageSenderName = messageSenderName ?? "unknown message sender";
        }
Exemplo n.º 2
0
        public RuleViolationServiceFactory(
            IQueueCasePublisher queueCasePublisher,
            IRuleBreachRepository ruleBreachRepository,
            IRuleBreachOrdersRepository ruleBreachOrdersRepository,
            IRuleBreachToRuleBreachOrdersMapper ruleBreachToRuleBreachOrdersMapper,
            IRuleBreachToRuleBreachMapper ruleBreachToRuleBreachMapper,
            ILogger <RuleViolationService> logger)
        {
            this._queueCasePublisher =
                queueCasePublisher ?? throw new ArgumentNullException(nameof(queueCasePublisher));

            this._ruleBreachRepository =
                ruleBreachRepository ?? throw new ArgumentNullException(nameof(ruleBreachRepository));

            this._ruleBreachOrdersRepository = ruleBreachOrdersRepository
                                               ?? throw new ArgumentNullException(nameof(ruleBreachOrdersRepository));

            this._ruleBreachToRuleBreachOrdersMapper = ruleBreachToRuleBreachOrdersMapper
                                                       ?? throw new ArgumentNullException(
                                                                 nameof(ruleBreachToRuleBreachOrdersMapper));

            this._ruleBreachToRuleBreachMapper = ruleBreachToRuleBreachMapper
                                                 ?? throw new ArgumentNullException(
                                                           nameof(ruleBreachToRuleBreachMapper));

            this._logger = logger ?? throw new ArgumentNullException(nameof(logger));
        }
        public RuleViolationService(
            IQueueCasePublisher queueCasePublisher,
            IRuleBreachRepository ruleBreachRepository,
            IRuleBreachOrdersRepository ruleBreachOrdersRepository,
            IRuleBreachToRuleBreachOrdersMapper ruleBreachToRuleBreachOrdersMapper,
            IRuleBreachToRuleBreachMapper ruleBreachToRuleBreachMapper,
            ILogger <RuleViolationService> logger)
        {
            this._ruleViolations             = new Stack <IRuleBreach>();
            this._deduplicatedRuleViolations = new Queue <RuleViolationIdPair>();

            this._queueCasePublisher =
                queueCasePublisher ?? throw new ArgumentNullException(nameof(queueCasePublisher));

            this._ruleBreachRepository =
                ruleBreachRepository ?? throw new ArgumentNullException(nameof(ruleBreachRepository));

            this._ruleBreachOrdersRepository = ruleBreachOrdersRepository
                                               ?? throw new ArgumentNullException(nameof(ruleBreachOrdersRepository));

            this._ruleBreachToRuleBreachOrdersMapper = ruleBreachToRuleBreachOrdersMapper
                                                       ?? throw new ArgumentNullException(
                                                                 nameof(ruleBreachToRuleBreachOrdersMapper));

            this._ruleBreachToRuleBreachMapper = ruleBreachToRuleBreachMapper
                                                 ?? throw new ArgumentNullException(
                                                           nameof(ruleBreachToRuleBreachMapper));

            this._logger = logger ?? throw new ArgumentNullException(nameof(logger));
        }
 public void Setup()
 {
     this.queueCasePublisher                 = A.Fake <IQueueCasePublisher>();
     this.ruleBreachRepository               = A.Fake <IRuleBreachRepository>();
     this.ruleBreachOrdersRepository         = A.Fake <IRuleBreachOrdersRepository>();
     this.ruleBreachToRuleBreachOrdersMapper = A.Fake <IRuleBreachToRuleBreachOrdersMapper>();
     this.ruleBreachToRuleBreachMapper       = A.Fake <IRuleBreachToRuleBreachMapper>();
     this.logger = A.Fake <ILogger <RuleViolationService> >();
 }
 public void Setup()
 {
     this.logger             = A.Fake <ILogger <IHighVolumeMessageSender> >();
     this.queueCasePublisher = A.Fake <IQueueCasePublisher>();
     this.repository         = A.Fake <IRuleBreachRepository>();
     this.ordersRepository   = A.Fake <IRuleBreachOrdersRepository>();
     this.ruleBreachToRuleBreachOrdersMapper = A.Fake <IRuleBreachToRuleBreachOrdersMapper>();
     this.ruleBreachToRuleBreachMapper       = A.Fake <IRuleBreachToRuleBreachMapper>();
     this.market = new Market("a", "XLON", "London Stock Exchange", MarketTypes.STOCKEXCHANGE);
 }
 public SpoofingRuleMessageSender(
     ILogger <SpoofingRuleMessageSender> logger,
     IQueueCasePublisher queueCasePublisher,
     IRuleBreachRepository repository,
     IRuleBreachOrdersRepository ordersRepository,
     IRuleBreachToRuleBreachOrdersMapper ruleBreachToRuleBreachOrdersMapper,
     IRuleBreachToRuleBreachMapper ruleBreachToRuleBreachMapper)
     : base(
         "Automated Spoofing Rule Breach Detected",
         "Spoofing Rule Message Sender",
         logger,
         queueCasePublisher,
         repository,
         ordersRepository,
         ruleBreachToRuleBreachOrdersMapper,
         ruleBreachToRuleBreachMapper)
 {
 }
 public MarkingTheCloseMessageSender(
     ILogger <MarkingTheCloseMessageSender> logger,
     IQueueCasePublisher queueCasePublisher,
     IRuleBreachRepository repository,
     IRuleBreachOrdersRepository ordersRepository,
     IRuleBreachToRuleBreachOrdersMapper ruleBreachToRuleBreachOrdersMapper,
     IRuleBreachToRuleBreachMapper ruleBreachToRuleBreachMapper)
     : base(
         "Automated Marking The Close Rule Breach Detected",
         "Marking The Close Message Sender",
         logger,
         queueCasePublisher,
         repository,
         ordersRepository,
         ruleBreachToRuleBreachOrdersMapper,
         ruleBreachToRuleBreachMapper)
 {
 }
 public HighVolumeMessageSender(
     ILogger <IHighVolumeMessageSender> logger,
     IQueueCasePublisher queueCasePublisher,
     IRuleBreachRepository repository,
     IRuleBreachOrdersRepository ordersRepository,
     IRuleBreachToRuleBreachOrdersMapper ruleBreachToRuleBreachOrdersMapper,
     IRuleBreachToRuleBreachMapper ruleBreachToRuleBreachMapper)
     : base(
         "Automated High Volume Rule Breach Detected",
         "High Volume Message Sender",
         logger,
         queueCasePublisher,
         repository,
         ordersRepository,
         ruleBreachToRuleBreachOrdersMapper,
         ruleBreachToRuleBreachMapper)
 {
 }
 public CancelledOrderMessageSender(
     ILogger <CancelledOrderMessageSender> logger,
     IQueueCasePublisher queueCasePublisher,
     IRuleBreachRepository repository,
     IRuleBreachOrdersRepository ordersRepository,
     IRuleBreachToRuleBreachOrdersMapper ruleBreachToRuleBreachOrdersMapper,
     IRuleBreachToRuleBreachMapper ruleBreachToRuleBreachMapper)
     : base(
         "Automated Cancellation Ratio Rule Breach Detected",
         "Cancelled Order Message Sender",
         logger,
         queueCasePublisher,
         repository,
         ordersRepository,
         ruleBreachToRuleBreachOrdersMapper,
         ruleBreachToRuleBreachMapper)
 {
 }
Exemplo n.º 10
0
 public LayeringAlertSender(
     ILogger <LayeringAlertSender> logger,
     IQueueCasePublisher queueCasePublisher,
     IRuleBreachRepository repository,
     IRuleBreachOrdersRepository ordersRepository,
     IRuleBreachToRuleBreachOrdersMapper ruleBreachToRuleBreachOrdersMapper,
     IRuleBreachToRuleBreachMapper ruleBreachToRuleBreachMapper)
     : base(
         "Automated Layering Rule Breach Detected",
         "Layering Message Sender",
         logger,
         queueCasePublisher,
         repository,
         ordersRepository,
         ruleBreachToRuleBreachOrdersMapper,
         ruleBreachToRuleBreachMapper)
 {
 }
Exemplo n.º 11
0
 public PlacingOrdersWithNoIntentToExecuteMessageSender(
     IQueueCasePublisher queueCasePublisher,
     IRuleBreachRepository ruleBreachRepository,
     IRuleBreachOrdersRepository ruleBreachOrdersRepository,
     IRuleBreachToRuleBreachOrdersMapper ruleBreachToRuleBreachOrdersMapper,
     IRuleBreachToRuleBreachMapper ruleBreachToRuleBreachMapper,
     ILogger <PlacingOrdersWithNoIntentToExecuteMessageSender> logger)
     : base(
         "Automated Placing Orders With No Intent To Execute Rule Breach Detected",
         "Placing Orders Without Intent To Execute Message Sender",
         logger,
         queueCasePublisher,
         ruleBreachRepository,
         ruleBreachOrdersRepository,
         ruleBreachToRuleBreachOrdersMapper,
         ruleBreachToRuleBreachMapper)
 {
 }
Exemplo n.º 12
0
 public RampingRuleMessageSender(
     IQueueCasePublisher queueCasePublisher,
     IRuleBreachRepository ruleBreachRepository,
     IRuleBreachOrdersRepository ruleBreachOrdersRepository,
     IRuleBreachToRuleBreachOrdersMapper ruleBreachToRuleBreachOrdersMapper,
     IRuleBreachToRuleBreachMapper ruleBreachToRuleBreachMapper,
     ILogger <IRampingRuleMessageSender> logger)
     : base(
         "Automated Ramping Rule Breach Detected",
         "Ramping Rule Message Sender",
         logger,
         queueCasePublisher,
         ruleBreachRepository,
         ruleBreachOrdersRepository,
         ruleBreachToRuleBreachOrdersMapper,
         ruleBreachToRuleBreachMapper)
 {
 }