public void OrderDispatchedEvent_should_work_with_default_sizes()
        {
            // create the event
            var order = new Order(345);

            order.Lines.Add(new OrderLine("Widget", "-", 2));
            var @event = new OrderDispatchedEvent(order);

            // create existing stock items
            var dateCreated = new DateTime(2011, 2, 15);
            var stockItems  = new System.Collections.Generic.List <StockItem>()
            {
                StockItem.Create("Widget", "-", dateCreated, "*****@*****.**"),
            };

            // create some initial stock
            stockItems[0].ReceiveStock(10, dateCreated, user);
            stockItems[0].Deactivate(dateCreated, user);

            stockItemRepository.GetAllDelegate = () => stockItems.AsQueryable();

            // execute
            decrementStockLevelOnOrderDispatchedEvent.Handle(@event);

            // assert
            stockItems[0].Level.ShouldEqual(8); // 10-2 = 8
        }
        public void Handle(DispatchOrderCommand command)
        {
            Log.InfoFormat("Dispatching Order {0}", command.Order.OrderId);
            var dispatchTime = DateTime.UtcNow;
            var done         = command.Order.Dispatched(dispatchTime);

            _storage.OrderDispatched(done, dispatchTime);
            var e = new OrderDispatchedEvent(done);

            _onDispatched(e);
        }
        public void Handle(OrderDispatched orderDispatched)
        {
            if (orderDispatched == null)
            {
                throw new ArgumentNullException("orderDispatched");
            }

            var order = new EventOrder(orderDispatched.Order.Id);

            foreach (var orderLine in orderDispatched.Order.OrderLines)
            {
                order.Lines.Add(new EventOrderLine(orderLine.ProductUrlName, orderLine.SizeName, orderLine.Quantity));
            }

            var externalOrderDispatched = new OrderDispatchedEvent(order);

            domainEventService.Raise(externalOrderDispatched);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// 订单发货后的事件的事件处理方法
 /// </summary>
 /// <param name="notification"></param>
 /// <param name="cancellationToken"></param>
 /// <returns></returns>
 public Task Handle(OrderDispatchedEvent notification, CancellationToken cancellationToken)
 {
     return(Task.CompletedTask);
 }
Ejemplo n.º 5
0
 public OrderState Apply(OrderDispatchedEvent @event)
 {
     DispatchedDate = @event.Date;
     return(this);
 }
Ejemplo n.º 6
0
        public void MyTestMethod()
        {
            var domainevent = new OrderDispatchedEvent();

            DomainEvent.Publish <OrderDispatchedEvent>(domainevent);
        }