public Order AddOrder(Order order) { IEnumerable <(bool productFound, OrderLine orderLine)> orderlines = order.OrderLines.LeftJoin( context.Products, ol => ol.Product.Id, p => p.Id, ol => (false, ol), (ol, p) => (true, new OrderLine() { Product = p, Quantity = ol.Quantity, Fulfilled = ol.Fulfilled })).ToArray(); var faultyLines = orderlines.Where(ol => !ol.productFound).Select(ol => ol.orderLine); if (faultyLines.Any()) { throw new Exception($"Product id's [{string.Join(", ", faultyLines.Select(ol => ol.Product.Id))}] from orderlines could not be found."); } Order newOrder = new Order() { Date = order.Date, Remark = order.Remark, OrderLines = orderlines.Where(ol => ol.Item1).Select(ol => ol.Item2).ToList() }; context.Orders.Add(newOrder); context.SaveChanges(); return(newOrder); }
public void UpdateOrderTestAddedOrderlines() { Order order = orderService.AddOrder(mockFactory.CreateOrder()); order.OrderLines.Add(mockFactory.CreateOrderLine(0, 2, 1, 0)); context.SaveChanges(); Order updatedOrder = orderService.UpdateOrder(order); Assert.Equal(order.OrderLines.Count, updatedOrder.OrderLines.Count); }
public void GetOrdersTestCount() { int orderCount = 3; for (int i = 0; i < orderCount; i++) { Order order = mockFactory.CreateOrder(); context.Add(order); context.SaveChanges(); } var orders = orderService.GetOrders(); Assert.Equal(orderCount, orders.Count()); }
public EarlessContext InitializeContext() { EarlessContext context = TestDbGenerator.CreateContext(); TestDbGenerator.Initialize(context); productCategories = GetProductCategories(false); context.AddRange(); products = GetProducts(false, productCategories); context.AddRange(products); context.SaveChanges(); return(context); }