Exemple #1
0
        public async Task HandleHandlesItemsCheckedInToInventory()
        {
            var repositoryMock = new Mock <IReadModelRepository <InventoryItemDetailsDto, Guid> >();
            var hubMock        = new Mock <InventoryHub>();

            var itemsCheckedInToInventoryEvent = new ItemsCheckedInToInventory(_itemId, 5)
            {
                Version   = _version,
                TimeStamp = _timeStamp
            };

            hubMock.Setup(x => x.SendUpdateInventoryItemDetailMessage(
                              _itemId, itemsCheckedInToInventoryEvent))
            .Returns(Task.CompletedTask)
            .Verifiable();
            repositoryMock.Setup(x => x.AddOrUpdate(It.Is <InventoryItemDetailsDto>
                                                        (m => m.Name == _itemName && m.Version == 0 &&
                                                        m.Id == _itemId &&
                                                        m.CurrentCount == 10 &&
                                                        m.Timestamp == _timeStamp)))
            .Returns(Task.CompletedTask)
            .Verifiable();
            repositoryMock.Setup(x => x.GetById(_itemId))
            .ReturnsAsync(_searchResponseMock.Object);

            var target = GetTarget(repositoryMock, hubMock);

            await target.Handle(itemsCheckedInToInventoryEvent, new CancellationToken(false));

            repositoryMock.Verify();
            hubMock.Verify();
        }
        public void Handle(ItemsCheckedInToInventory message)
        {
            InventoryItemDetailsDto d = GetDetailsItem(message.Id);

            d.CurrentCount += message.Count;
            d.Version       = message.Version;
        }
Exemple #3
0
        public void Handle(ItemsCheckedInToInventory message)
        {
            InventoryItemDetailsDto dto;

            if (ReadModelFacade.UseSqlDatabase)
            {
                using (var datastore = new SqlDatabase())
                {
                    if (datastore.Details.TryGetValue(message.Id, out dto))
                    {
                        dto.CurrentCount += message.Count;
                        dto.Version       = message.Version;
                        datastore.InventoryItemDetailsDtoStore.Update(dto);
                    }
                }
            }
            else
            {
                if (InMemoryDatabase.Details.TryGetValue(message.Id, out dto))
                {
                    dto.CurrentCount += message.Count;
                    dto.Version       = message.Version;
                }
            }
        }
        public void Handle(ItemsCheckedInToInventory message)
        {
            var dto = GetDetailsItem(message.Id);

            dto.CurrentCount += message.Count;
            dto.Version       = message.Version;
        }
Exemple #5
0
        public void Handle(ItemsCheckedInToInventory @event)
        {
            var details = GetDetailsItem(@event.Id);

            details.CurrentCount += @event.Count;
            details.Version       = @event.Version;
        }
Exemple #6
0
        public Task Handle(ItemsCheckedInToInventory message, CancellationToken token)
        {
            var dto = GetDetailsItem(message.Id);

            dto.CurrentCount += message.Count;
            dto.Version       = message.Version;
            return(Task.CompletedTask);
        }
        public Task HandleAsync(ItemsCheckedInToInventory message)
        {
            var dto = GetDetailsItem(message.Id);

            dto.CurrentCount += message.Count;
            dto.Version       = message.Version;
            return(Task.FromResult(0));
        }
 private static InventoryItemStockView Map(ItemsCheckedInToInventory e, InventoryItemStockView v)
 {
     return(new InventoryItemStockView
     {
         IsActive = v.IsActive,
         Sku = v.Sku,
         Count = v.Count + e.Count,
         OverStockLimit = v.OverStockLimit
     });
 }
        public async Task HandleAsync(ItemsCheckedInToInventory message)
        {
            Console.WriteLine("ItemsCheckedInToInventory: " + message.Id);
            var item = await this.repository.GetByIdAsync(message.Id);

            item.Version         = message.OriginalVersion;
            item.LastUpdatedAt   = message.Timestamp;
            item.LastUpdatedById = message.OperatorId;

            item.CurrentCount += message.Count;

            await this.repository.UpdateAsync(item);

            await this.repository.UnitOfWork.CommitAsync();
        }
Exemple #10
0
        /// <summary>
        /// Handles the specified message.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <param name="token">The token.</param>
        /// <returns>A <see cref="Task" />.</returns>
        public async Task Handle(ItemsCheckedInToInventory message, CancellationToken token)
        {
            var itemQuery = await _database.GetById(message.Id);

            if (itemQuery.Documents.Any())
            {
                var d = itemQuery.Documents.Single();
                d.CurrentCount += message.Count;
                d.Timestamp     = message.TimeStamp.DateTime;
                d.Version       = message.Version;
                await _database.AddOrUpdate(d);

                // notify hub
                await _hub.SendUpdateInventoryListMessage();
            }
        }
Exemple #11
0
        partial void OnHandle(ItemsCheckedInToInventory @event)
        {
            // Define Query
            ISingleResultQuery <InventoryItemQueryStrategy, InventoryItemEntity> query = QueryFactory.CreateNewSingleResultQuery <InventoryItemQueryStrategy, InventoryItemEntity>();

            query.QueryStrategy.WithRsn(@event.Rsn);

            // Retrieve Data, but remember if no items exist, the value is null
            query = InventoryItemRepository.Retrieve(query, false);
            InventoryItemEntity inventoryItem = query.Result;

            // As a previous event will have created this instance we should throw an exception if it is not found.
            if (inventoryItem == null)
            {
                throw new NullReferenceException(string.Format("No entity was found by the id '{0}'", @event.Rsn));
            }

            inventoryItem.CurrentCount += @event.Count;

            // Again, this MUST be an update as commented above.
            InventoryItemRepository.Update(inventoryItem);
        }
Exemple #12
0
 public void Handle(ItemsCheckedInToInventory message)
 {
     this.InventoryItemChanged(message);
 }
Exemple #13
0
 private void Apply(ItemsCheckedInToInventory e)
 {
     _count += e.Count;
 }
Exemple #14
0
 private static void Handle(InventoryItemStockView view, ItemsCheckedInToInventory notification, AdoNetTransactionUowProvider <TConnectionStringName> uowProvider)
 {
     uowProvider.Value.Connection.Update(Map(notification, view), uowProvider.Value);
 }
Exemple #15
0
        public void Handle(ItemsCheckedInToInventory message)
        {
            var a = _repository.FindOne <InventoryItemDetailsDto>(message.AggregateId);

            _repository.Update(message.AggregateId, Update <InventoryItemDetailsDto> .Inc(d => d.CurrentCount, message.Count).Set(d => d.Version, message.Version));
        }
Exemple #16
0
 private void Apply(ItemsCheckedInToInventory e)
 {
     _itemsCheckedIn += e.ItemsCheckedIn;
 }
        public void given_existing_item_when_receive_items_checked_in_then_expected_count_correct(ItemsCheckedInToInventory msg, int preCount, string name)
        {
            var repository = new Dictionary <Guid, InventoryItemDetailsDto>()
            {
                { msg.Id, new InventoryItemDetailsDto(msg.Id, name, preCount, 0) }
            };
            var view = new InventoryItemDetailView(repository);

            view.Handle(msg);

            var item = view.Repository[msg.Id];

            Assert.Equal(msg.Id, item.Id);
            var expectedCount = preCount + msg.Count;

            Assert.Equal(expectedCount, item.CurrentCount);
        }
Exemple #18
0
 public void Apply(ItemsCheckedInToInventory @event)
 {
     Count += @event.Count;
 }
Exemple #19
0
 public void Handle(ItemsCheckedInToInventory obj)
 {
     List.First(f => f.Id == obj.Id).CurrentCount++;
 }