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); }
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)); }
public void AddItem(OrderAPIModel model) { var response = webRequestHelper.Post("/api/operations/orders", JsonConvert.SerializeObject(model), "application/json; charset=UTF-8", authToken); }