public OrderModel AddOrderPos(long orderId, long itemTypeId) { var relevantOrder = context.Order .Include(o => o.Positions) .FirstOrDefault(o => o.Id == orderId); if (relevantOrder == null) { return(null); } var position = new OrderPos() { Number = context.OrderPos .Where(op => op.OrderId == orderId) .Select(op => op.Number) .DefaultIfEmpty(0) .Max() + 1, CreationDate = DateTime.Now, PosStatus = PosStatus.New, ItemtypId = itemTypeId, OrderId = orderId, Amount = 1 }; relevantOrder.Positions.Add(position); context.SaveChanges(); return(orderService.GetOrder(orderId)); }
public static OrderPosModel MapFromDatabase(OrderPos orderPos) { if (orderPos == null) { return(null); } return(new OrderPosModel() { Id = orderPos.Id, Number = orderPos.Number, PricePaidByCustomer = orderPos.PricePaidByCustomer, Amount = orderPos.Amount, PricePos = orderPos.PricePos, PosStatus = orderPos.PosStatus, Comment = orderPos.Comment, ItemType = ItemTypeModel.MapFromDatabase(orderPos.Itemtyp) }); }
public void TestDoCalculateOrderPrice() { var context = MockContextFactory.Create(); var waiter = new Tablet() { Id = 4, Identifier = "brutus", Mode = Mode.Waiter }; var order1 = new Order { Id = 4, OrderStatus = OrderStatus.New, PriceOrder = 0, TableId = 5, Waiter = waiter }; var order2 = new Order { Id = 8, OrderStatus = OrderStatus.Active, PriceOrder = 0, TableId = 7, Waiter = waiter }; var itemA = new Itemtyp { Id = 1, Number = 1, Title = "soup", Description = "tomatosoup", ItemPrice = 9 }; var itemB = new Itemtyp { Id = 2, Number = 2, Title = "salad", Description = "tomatosalad", ItemPrice = 12 }; var positionSoup = new OrderPos { Amount = 1, Id = 6, Order = order2, OrderId = order2.Id, PricePos = 9, PricePaidByCustomer = 9, Itemtyp = itemA, ItemtypId = itemA.Id, PosStatus = PosStatus.Active }; var positionSalad = new OrderPos { Amount = 1, Id = 8, Order = order2, OrderId = order2.Id, PricePos = 12, PricePaidByCustomer = 12, Itemtyp = itemA, ItemtypId = itemA.Id, PosStatus = PosStatus.Active }; context.Tablet.Add(waiter); context.Order.Add(order1); context.Order.Add(order2); context.Itemtyp.Add(itemA); context.Itemtyp.Add(itemB); context.OrderPos.Add(positionSoup); context.OrderPos.Add(positionSalad); context.SaveChanges(); var orderService = new OrderService(new MockDataService(context)); orderService.DoCalulateOrderPrice(4); orderService.DoCalulateOrderPrice(8); context.SaveChanges(); Assert.Equal(0, order1.PriceOrder); Assert.Equal(21, order2.PriceOrder); }