예제 #1
0
        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));
        }
예제 #2
0
        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)
            });
        }
예제 #3
0
        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);
        }