Example #1
0
        private static Order SaveAsOrder(ShoppingCart shoppingCart)
        {
            Order order;
            using (var context = new OrderContext())
            {
                // TODO 8.3: Look for existing order by uniquifier.
                var matchingOrders =
                    from o in context.Orders
                    where o.Uniquifier == shoppingCart.Uniquifier
                    select o;

                order = matchingOrders.FirstOrDefault();
                if (order != null)
                    return order;

                order = new Order
                {
                    Item = shoppingCart.Item,
                    // TODO 8.4: Copy uniquifier.
                    Uniquifier = shoppingCart.Uniquifier
                };
                context.Orders.Add(order);

                context.SaveChanges();
            }
            return order;
        }