public void SerializeDeserialize()
        {
            // arrange
            OrderDocument order     = new OrderDocument();
            OrderItem     orderItem = new OrderItem();

            orderItem.Id          = 3;
            orderItem.Description = "Soup of the day";
            orderItem.Price       = 6.95m;
            orderItem.Quantity    = 2;
            order.AddItem(orderItem);

            // act
            string        json            = order.Serialize();
            OrderDocument rehydratedOrder = new OrderDocument(json);

            // assert

            Assert.That(rehydratedOrder.GetItems().Count, Is.EqualTo(1));
            OrderItem rehydratedOrderItem = rehydratedOrder.GetItems()[0];

            Assert.That(rehydratedOrderItem.Id, Is.EqualTo(3));
            Assert.That(rehydratedOrderItem.Description, Is.EqualTo("Soup of the day"));
            Assert.That(rehydratedOrderItem.Price, Is.EqualTo(6.95m));
            Assert.That(rehydratedOrderItem.Quantity, Is.EqualTo(2));
        }
Exemple #2
0
        public void Handle(PriceOrder meal)
        {
            OrderDocument order = meal.Order;

            order.SubTotal = order.GetItems().Sum(item => item.Price * item.Quantity);
            order.Tax      = order.SubTotal * 0.2m;
            order.Total    = order.Tax + order.SubTotal;

            var messageId = Guid.NewGuid();

            _bus.Publish(new OrderPriced(order)
            {
                MessageId     = messageId,
                CorrelationId = meal.CorrelationId,
                CausationId   = meal.MessageId
            });
        }