public async Task <IActionResult> CheckOut([FromBody] CheckOutApiModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } return(Ok(await manager.CheckOut(model))); }
public async Task <OrderARModel> CheckOut(CheckOutApiModel model) { var order = await this.orderRepository.GetById(model.OrderId.Value); if (order != null && order.Status.Equals("On-going")) { order.Status = "Completed"; order.TipPercentage = model.TipPercentage.Value; var foodTotal = Math.Round(order.Items.Where(c => !c.IsDeleted).Sum(c => c.FoodItem.Cost * c.Quantity), 2); var tipAmount = model.TipPercentage.Value > 0 ? Math.Round((model.TipPercentage.Value / 100) * foodTotal, 2) : 0; order.TotalAmount = Math.Round(foodTotal + tipAmount, 2); await this.orderRepository.Update(order); } return(ContructOrderReponseModel(order)); }