示例#1
0
        public async Task <ActionResult <OrderAPIModel> > UpdateOrder(int id, OrderAPIModel order)
        {
            var validator        = new OrderValidator();
            var validationResult = await validator.ValidateAsync(order);

            if (!validationResult.IsValid)
            {
                return(BadRequest(validationResult.Errors));
            }

            var orderToUpdate = await _orderService.GetOrderById(id);

            if (orderToUpdate == null)
            {
                return(NotFound());
            }

            var orderModel = _mapper.Map <OrderAPIModel, Orders>(order);

            await _orderService.UpdateOrder(orderToUpdate, orderModel);

            orderModel = await _orderService.GetOrderById(id);

            var orderAPIModel = _mapper.Map <Orders, OrderAPIModel>(orderModel);

            return(Ok(orderAPIModel));
        }
        // Prodvide the order related to the authenticated user.
        // If no order is associated to this user. Creates a new one.
        // GET: api/CustomerOrder
        public async Task <OrderAPIModel> Get()
        {
            var userName = User.Identity.GetUserName();
            var user     = await UserManager.FindByNameAsync(userName);

            Order order = await DbManager.Orders.FirstOrDefaultAsync(r => r.OrderOwner.Id == user.Id);

            // in case of no order open. Create a new one
            if (order == null)
            {
                order = new Order
                {
                    IsOrderCompleted = false,
                    OrderOpenTime    = DateTime.Now,
                    OrderOwner       = user
                };
                DbManager.Orders.Add(order);
                await DbManager.SaveChangesAsync();
            }

            OrderAPIModel orderAPI = new OrderAPIModel
            {
                IsOrderCompleted = order.IsOrderCompleted,
                Id = order.Id,
            };

            if (order.OrderSlot != null)
            {
                orderAPI.OrderSlot = new OrderSlotAPI
                {
                    OrderSlotId   = order.OrderSlot.OrderSlotId,
                    OrderSlotTime = order.OrderSlot.OrderSlotTime,
                    SlotGroup     = order.OrderSlot.SlotGroup
                };
            }
            if (order.OrderedItems.Count() > 0)
            {
                orderAPI.OrderRestaurantId = order.OrderedItems.FirstOrDefault().Item.Menu.resto.Id;
                foreach (var item in order.OrderedItems)
                {
                    orderAPI.OrderedItems.Add(new OrderedItemAPIModel
                    {
                        ItemId             = item.Id,
                        Quantity           = item.Quantity,
                        SelectedHotNotCold = item.SelectedHotNotCold,
                        SelectedMeatId     = item.SelectedMeatId,
                        SelectedSalt       = item.SelectedSalt,
                        SelectedSauceId    = item.SelectedSauceId,
                        SelectedSize       = item.SelectedSize
                    });
                }
            }
            return(orderAPI);
        }
示例#3
0
        public async Task <ActionResult <OrderAPIModel> > CreateOrder(OrderAPIModel order)
        {
            var validator        = new OrderValidator();
            var validationResult = await validator.ValidateAsync(order);

            if (!validationResult.IsValid)
            {
                return(BadRequest(validationResult.Errors));
            }

            var orderModel    = _mapper.Map <OrderAPIModel, Orders>(order);
            var orderAPIModel = await _orderService.CreateOrder(orderModel);

            return(Ok(orderAPIModel));
        }
示例#4
0
 public void AddItem(OrderAPIModel model)
 {
     var response = webRequestHelper.Post("/api/operations/orders", JsonConvert.SerializeObject(model), "application/json; charset=UTF-8", authToken);
 }