Beispiel #1
0
        public async Task Handle(RemoveItemsFromInventory message)
        {
            var item = await _repository.GetById(message.InventoryItemId);

            item.Remove(message.Count);
            await _repository.Save(item);
        }
Beispiel #2
0
        public void Handle(RemoveItemsFromInventory message)
        {
            var item = _session.Get <InventoryItem>(message.Id, message.ExpectedVersion);

            item.Remove(message.Count);
            _session.Commit();
        }
Beispiel #3
0
        public async Task Handle(RemoveItemsFromInventory message)
        {
            var item = await _session.Get <InventoryItem>(message.Id, message.ExpectedVersion);

            item.Remove(message.Count);
            await _session.Commit();
        }
Beispiel #4
0
        // 删除事件处理
        public void Handle(RemoveItemsFromInventory message)
        {
            var item = _repository.GetById(message.InventoryItemId);

            item.Remove(message.Count);
            _repository.Save(item, message.OriginalVersion);
        }
        public void Handle(RemoveItemsFromInventory message)
        {
            var item = _repository.Get(message.AggregateId);

            item.Remove(message.Count);
            _repository.Save(item, message.ExpectedVersion);
        }
        public async Task HandleAsync(RemoveItemsFromInventory message)
        {
            var item = await this.repository.GetByIdAsync(message.Id);

            item.Remove(message.Count);
            await this.repository.SaveAsync(item, message.OriginalVersion);
        }
Beispiel #7
0
        public ActionResult Remove(Guid id, int number, int version)
        {
            var command = new RemoveItemsFromInventory(id, number, version);

            _bus.Send(command);
            return(RedirectToAction("Index"));
        }
Beispiel #8
0
        public async Task Test1()
        {
            BoundedContext <InventoryItemCommand, InventoryItemEvent, Json> context = new TestInventoryBoundedContext();
            // for testing purposes make the aggregate block the current thread while processing
            var inventoryItem = context.Create <InventoryItem, InventoryItemCommandHandler>();
            await Task.Delay(TimeSpan.FromSeconds(1));

            Validated <InventoryItemCommand> removeItems = RemoveItemsFromInventory.Create(1, 1);

            Result <CommandResult <InventoryItemEvent>, Error[]> result = await inventoryItem.Accept(removeItems);

            switch (result)
            {
            case Ok <CommandResult <InventoryItemEvent>, Error[]>(var commandResult):
                commandResult.Events.Should().BeEquivalentTo(new[] { new ItemsRemovedFromInventory(1, 1) });
                commandResult.ExpectedVersion.Should().Be(new ExistingVersion(4L));
                break;

            case Error <CommandResult <InventoryItemEvent>, Error[]>(var errors):
                errors.Should().BeEmpty();
                break;
            }
        }
 public void Handle(RemoveItemsFromInventory message)
 {
     var item = _repository.GetById(message.InventoryItemId);
     item.Remove(message.Count);
     _repository.Save(item, message.OriginalVersion);
 }