예제 #1
0
 public static RfqContract ToContract(this RfqWithPauseSummary rfqWithPauseSummary)
 {
     return(new RfqContract
     {
         Id = rfqWithPauseSummary.Id,
         InstrumentId = rfqWithPauseSummary.InstrumentId,
         PositionIds = rfqWithPauseSummary.PositionIds,
         Volume = rfqWithPauseSummary.Volume,
         Price = rfqWithPauseSummary.Price,
         ExternalProviderId = rfqWithPauseSummary.ExternalProviderId,
         AccountId = rfqWithPauseSummary.AccountId,
         CausationOperationId = rfqWithPauseSummary.CausationOperationId,
         CreatedBy = rfqWithPauseSummary.CreatedBy,
         OriginatorType = (RfqOriginatorType)rfqWithPauseSummary.OriginatorType,
         RequestNumber = rfqWithPauseSummary.RequestNumber,
         RequestedFromCorporateActions = rfqWithPauseSummary.RequestedFromCorporateActions,
         State = (RfqOperationState)rfqWithPauseSummary.State,
         LastModified = rfqWithPauseSummary.LastModified,
         Pause = rfqWithPauseSummary.PauseSummary != null
             ? new RfqPauseSummaryContract
         {
             CanBePaused = rfqWithPauseSummary.PauseSummary.CanBePaused,
             CanBeResumed = rfqWithPauseSummary.PauseSummary.CanBeResumed,
             CanBeStopped = rfqWithPauseSummary.PauseSummary.CanBeStopped,
             IsPaused = rfqWithPauseSummary.PauseSummary.IsPaused,
             PauseReason = rfqWithPauseSummary.PauseSummary.PauseReason,
             ResumeReason = rfqWithPauseSummary.PauseSummary.ResumeReason
         }
             : null
     });
 }
        public async Task TradingEnabled_RfqResumed()
        {
            //Arrange
            var projection = InitProjection();

            var rfqId = Guid.NewGuid().ToString();
            var rfq   = new RfqWithPauseSummary()
            {
                Id           = rfqId,
                PauseSummary = new RfqPauseSummary()
                {
                    CanBeResumed = true,
                }
            };

            _rfqService.SetupSequence(x => x.GetAsync(It.IsAny <RfqFilter>(),
                                                      It.IsAny <int>(),
                                                      It.IsAny <int>()))
            .ReturnsAsync(new PaginatedResponse <RfqWithPauseSummary>(new List <RfqWithPauseSummary>()
            {
                rfq
            }, 0, 1, 1))
            .ReturnsAsync(new PaginatedResponse <RfqWithPauseSummary>(new List <RfqWithPauseSummary>(), 0, 0, 1));

            var @event = GetTradingDisabledChangedEvent(true, false);

            //Action
            await projection.Handle(@event);

            //Assert
            _rfqPauseService.Verify(x => x.ResumeAsync(rfqId,
                                                       PauseCancellationSource.TradingEnabled,
                                                       It.IsAny <Initiator>()),
                                    Times.Once);
        }