public IEnumerable <IntegrationSagaItemEntity> Convert(IntegrationSagaExtended source, IEnumerable <IntegrationSagaItemEntity> destination, ResolutionContext context)
 {
     return(source.IntegrationItems.Select(sourceIntegrationItem =>
                                           new IntegrationSagaItemEntity
     {
         Id = sourceIntegrationItem.Id,
         SagaId = source.Id
     }));
 }
示例#2
0
        public async Task SaveSagaAsync(IntegrationSagaExtended integrationSaga, CancellationToken cancellationToken)
        {
            var integrationSagaEntity = _mapper.Map <IntegrationSagaEntity>(integrationSaga);

            var integrationSagaItems = _mapper.Map <IEnumerable <IntegrationSagaItemEntity> >(integrationSaga);

            await SagaItemsCollection.InsertManyAsync(integrationSagaItems, _insertManyOptions, cancellationToken);

            await SagasCollection.InsertOneAsync(integrationSagaEntity, null, cancellationToken);

            await SetSagaStateAsync(integrationSagaEntity.Id, SagaStates.InProgress, cancellationToken);
        }
示例#3
0
        public UpdateServiceTests()
        {
            _integrationDal = new Mock <IIntegrationDal>();

            var dateTimeService = new Mock <IDateTimeService>();

            _integrationSagaFactory = new Mock <IIntegrationSagaFactory>();

            _tvShowUpdateService = new Mock <ITvShowUpdateService>();

            _cancellationToken = new CancellationToken();

            var sagaId = new Guid("2aa0b175-7bcb-458a-9130-9b282af9f27b");

            var dateTimeOfPreviousExecution = new DateTime(2018, 11, 6, 12, 01, 01);

            _integrationItem = new IntegrationItem(1);

            _integrationSaga = new IntegrationSagaExtended
            {
                Id               = sagaId,
                StartDate        = dateTimeOfPreviousExecution,
                IntegrationItems = new List <IntegrationItem>()
                {
                    new IntegrationItem(1),
                    new IntegrationItem(2),
                    new IntegrationItem(3)
                }
            };

            _updateService = new UpdateService(
                _integrationDal.Object,
                dateTimeService.Object,
                _integrationSagaFactory.Object,
                _tvShowUpdateService.Object
                );
        }