public async Task <IActionResult> Post([FromBody] AddUpdateOderApiModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } return(Ok(await manager.Add(model))); }
public async Task <OrderARModel> Update(int orderId, AddUpdateOderApiModel model) { var order = await this.orderRepository.GetById(orderId); if (order != null && !order.Status.Equals("Completed")) { order.CustomerName = model.CustomerName; foreach (var item in model.Items) { var foodExists = order.Items.FirstOrDefault(c => c.FoodItemId == item.FoodItemId); if (foodExists != null) { if (item.Quantity <= 0) { foodExists.IsActive = false; foodExists.IsDeleted = true; foodExists.Quantity = 0; } else { foodExists.IsActive = true; foodExists.IsDeleted = false; foodExists.Quantity = item.Quantity.Value; } } else { order.Items.Add(new Models.Data.OrderItem() { FoodItemId = item.FoodItemId.Value, Quantity = item.Quantity.Value, IsActive = true, IsDeleted = false }); } } foreach (var item in order.Items) { var foodExists = model.Items.FirstOrDefault(c => c.FoodItemId == item.FoodItemId); if (foodExists == null) { item.IsActive = false; item.IsDeleted = true; item.Quantity = 0; } } await this.orderRepository.Update(order); } order = await this.orderRepository.GetById(orderId); return(ContructOrderReponseModel(order)); }
public async Task <IActionResult> Put(int id, [FromBody] AddUpdateOderApiModel model) { if (id <= 0) { ModelState.AddModelError("", "Invalid Id"); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } return(Ok(await manager.Update(id, model))); }
public async Task <OrderARModel> Add(AddUpdateOderApiModel model) { var order = new Models.Data.Order() { CustomerName = model.CustomerName, Status = "On-going", Items = model.Items.Where(c => c.Quantity > 0).Select(c => new Models.Data.OrderItem() { FoodItemId = c.FoodItemId.Value, Quantity = c.Quantity.Value, IsActive = true, IsDeleted = false }).ToList() }; await this.orderRepository.Add(order); order = await this.orderRepository.GetById(order.Id); return(ContructOrderReponseModel(order)); }