public static RfqEvent ToEventContract(this OperationExecutionInfoWithPause <SpecialLiquidationOperationData> o, RfqEventTypeContract eventType, string brokerId) => new RfqEvent { EventType = eventType, RfqSnapshot = new RfqContract { Id = o.Id, InstrumentId = o.Data.Instrument, PositionIds = o.Data.PositionIds, Volume = o.Data.Volume, Price = o.Data.Price, ExternalProviderId = o.Data.ExternalProviderId, AccountId = o.Data.AccountId, CausationOperationId = o.Data.CausationOperationId, CreatedBy = string.IsNullOrEmpty(o.Data.AdditionalInfo) ? null : Deserialize(o.Data.AdditionalInfo)?.CreatedBy, OriginatorType = (RfqOriginatorType)o.Data.OriginatorType, RequestNumber = o.Data.RequestNumber, RequestedFromCorporateActions = o.Data.RequestedFromCorporateActions, State = (RfqOperationState)o.Data.State, LastModified = o.LastModified, Pause = IRfqPauseService.CalculatePauseSummary(o).ToEventContract() }, BrokerId = brokerId };
public SpecialLiquidationSaga( IDateService dateService, IChaosKitty chaosKitty, IOperationExecutionInfoRepository operationExecutionInfoRepository, IRfqService specialLiquidationService, MarginTradingSettings marginTradingSettings, CqrsContextNamesSettings cqrsContextNamesSettings, LiquidationHelper liquidationHelper, OrdersCache ordersCache, IRfqPauseService rfqPauseService, ILog log, IAssetPairsCache assetPairsCache) { _dateService = dateService; _chaosKitty = chaosKitty; _operationExecutionInfoRepository = operationExecutionInfoRepository; _specialLiquidationService = specialLiquidationService; _marginTradingSettings = marginTradingSettings; _cqrsContextNamesSettings = cqrsContextNamesSettings; _liquidationHelper = liquidationHelper; _ordersCache = ordersCache; _rfqPauseService = rfqPauseService; _log = log; _assetPairsCache = assetPairsCache; }
public SpecialLiquidationCommandsHandler( ITradingEngine tradingEngine, IDateService dateService, IChaosKitty chaosKitty, IOperationExecutionInfoRepository operationExecutionInfoRepository, ILog log, MarginTradingSettings marginTradingSettings, IAssetPairsCache assetPairsCache, IAssetPairDayOffService assetPairDayOffService, IExchangeConnectorClient exchangeConnectorClient, IIdentityGenerator identityGenerator, IAccountsCacheService accountsCacheService, OrdersCache ordersCache, IRfqPauseService rfqPauseService) { _tradingEngine = tradingEngine; _dateService = dateService; _chaosKitty = chaosKitty; _operationExecutionInfoRepository = operationExecutionInfoRepository; _log = log; _marginTradingSettings = marginTradingSettings; _assetPairsCache = assetPairsCache; _assetPairDayOffService = assetPairDayOffService; _exchangeConnectorClient = exchangeConnectorClient; _identityGenerator = identityGenerator; _accountsCacheService = accountsCacheService; _ordersCache = ordersCache; _rfqPauseService = rfqPauseService; }
public void CalculatePauseSummary_Cannot_Be_Paused_When_ThereIsNo_Pause_But_State_IsNotAllowed() { var pauseSummary = IRfqPauseService.CalculatePauseSummary( new OperationExecutionInfoWithPause <SpecialLiquidationOperationData>( "name", "id", DateTime.UtcNow, new SpecialLiquidationOperationData { State = GetRandomOperationState(false) }) { CurrentPause = null }); Assert.IsFalse(pauseSummary.CanBePaused); }
public void CalculatePauseSummary_Cannot_Be_Cancelled_When_ThereIsNo_Active_Pause(PauseState pauseState) { var pauseSummary = IRfqPauseService.CalculatePauseSummary( new OperationExecutionInfoWithPause <SpecialLiquidationOperationData>( "name", "id", DateTime.UtcNow, new SpecialLiquidationOperationData { State = GetRandomOperationState() }) { CurrentPause = null }); Assert.IsFalse(pauseSummary.CanBeResumed); }
public void CalculatePauseSummary_Considered_As_Paused_When_Active_Or_Pending_Cancellation(PauseState pauseState) { var pauseSummary = IRfqPauseService.CalculatePauseSummary( new OperationExecutionInfoWithPause <SpecialLiquidationOperationData>( "name", "id", DateTime.UtcNow, new SpecialLiquidationOperationData { State = GetRandomOperationState() }) { CurrentPause = new OperationExecutionPause { State = pauseState } }); Assert.IsTrue(pauseSummary.IsPaused); }
public void CalculatePauseSummary_Can_Be_Paused_When_ThereIs_CancelledPause() { var pauseSummary = IRfqPauseService.CalculatePauseSummary( new OperationExecutionInfoWithPause <SpecialLiquidationOperationData>( "name", "id", DateTime.UtcNow, new SpecialLiquidationOperationData { State = GetRandomOperationState(true) }) { CurrentPause = null, LatestCancelledPause = new OperationExecutionPause { State = PauseState.Cancelled } }); Assert.IsTrue(pauseSummary.CanBePaused); }
public void CalculatePauseSummary_Cannot_Be_Paused_When_ThereIs_Pause_Already() { var pauseSummary = IRfqPauseService.CalculatePauseSummary( new OperationExecutionInfoWithPause <SpecialLiquidationOperationData>( "name", "id", DateTime.UtcNow, new SpecialLiquidationOperationData { State = GetRandomOperationState() }) { CurrentPause = new OperationExecutionPause { State = PauseState.Active } }); Assert.IsFalse(pauseSummary.CanBePaused); }
public static RfqWithPauseSummary ToRfqWithPauseSummary(this OperationExecutionInfoWithPause <SpecialLiquidationOperationData> o) { return(new RfqWithPauseSummary { Id = o.Id, InstrumentId = o.Data.Instrument, PositionIds = o.Data.PositionIds, Volume = o.Data.Volume, Price = o.Data.Price, ExternalProviderId = o.Data.ExternalProviderId, AccountId = o.Data.AccountId, CausationOperationId = o.Data.CausationOperationId, CreatedBy = string.IsNullOrEmpty(o.Data.AdditionalInfo) ? null : Deserialize(o.Data.AdditionalInfo)?.CreatedBy, OriginatorType = o.Data.OriginatorType, RequestNumber = o.Data.RequestNumber, RequestedFromCorporateActions = o.Data.RequestedFromCorporateActions, State = o.Data.State, LastModified = o.LastModified, PauseSummary = IRfqPauseService.CalculatePauseSummary(o) }); }
public ProductChangedProjection( ITradingEngine tradingEngine, IAssetPairsCache assetPairsCache, IOrderReader orderReader, IScheduleSettingsCacheService scheduleSettingsCacheService, ITradingInstrumentsManager tradingInstrumentsManager, IRfqService rfqService, IRfqPauseService rfqPauseService, MarginTradingSettings mtSettings, ILog log, IQuoteCacheService quoteCache) { _tradingEngine = tradingEngine; _assetPairsCache = assetPairsCache; _orderReader = orderReader; _scheduleSettingsCacheService = scheduleSettingsCacheService; _tradingInstrumentsManager = tradingInstrumentsManager; _rfqService = rfqService; _rfqPauseService = rfqPauseService; _mtSettings = mtSettings; _log = log; _quoteCache = quoteCache; }
public RfqController(IRfqPauseService rfqPauseService, IRfqService rfqService) { _rfqPauseService = rfqPauseService; _rfqService = rfqService; }