Esempio n. 1
0
 private static void VerifyItems(IEnumerable <OrderItem> items, LookupAggregate lookup)
 {
     foreach (var orderItem in items)
     {
         VerifyAggregateExists <Product>(orderItem.ProductId, lookup);
     }
 }
        public IAggregate Handle(PlaceOrder command)
        {
            var lookup = new LookupAggregate(_domainRepository);
            var order  = Order.Create(command.Id, command.CustomerId, command.Items, lookup);

            return(order);
        }
Esempio n. 3
0
 private static void VerifyAggregateExists <TAggregate>(Guid aggregateId, LookupAggregate lookup) where TAggregate : IAggregate, new()
 {
     lookup.GetById <TAggregate>(aggregateId);
 }
Esempio n. 4
0
 public static IAggregate Create(Guid id, Guid customerId, FSharpList <OrderItem> items, LookupAggregate lookup)
 {
     VerifyAggregateExists <Customer>(customerId, lookup);
     VerifyItems(items, lookup);
     return(new Order(id, customerId, items));
 }