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)); }
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 }); }