public IActionResult Get([FromRoute] int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { Order order = _context.Order.Include("ProductOrders.Product").Single(m => m.OrderID == id); List <Product> theseProducts = new List <Product>(); foreach (ProductOrder productOrder in order.ProductOrders) { theseProducts.Add(productOrder.Product); } List <ProductOnOrderJSON> jSONProducts = new List <ProductOnOrderJSON>(); foreach (Product product in theseProducts) { int index = jSONProducts.FindIndex(x => x.ProductID == product.ProductID); if (index != -1) { jSONProducts[index].Quantity++; } else { ProductOnOrderJSON newProduct = new ProductOnOrderJSON() { ProductID = product.ProductID, Name = product.Title, Price = product.Price, Quantity = 1 }; jSONProducts.Add(newProduct); } } OrderWithProductJSON orderWithProducts = new OrderWithProductJSON() { OrderID = order.OrderID, CustomerID = order.CustomerID, PaymentTypeID = order.PaymentTypeID, Products = jSONProducts }; if (order == null) { return(NotFound()); } return(Ok(orderWithProducts)); } catch (System.InvalidOperationException ex) { return(NotFound(ex)); } }
public IActionResult Get([FromRoute] int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { Orders orders = _context.Orders.Include("ProductOrders.Product").Single(m => m.OrderId == id); List <Product> theseProducts = new List <Product>(); foreach (OrderProduct orderProduct in orders.ProductOrders) { theseProducts.Add(orderProduct.Product); } List <ProductOnOrderJSON> jSONProducts = new List <ProductOnOrderJSON>(); foreach (Product product in theseProducts) { ProductOnOrderJSON newProduct = new ProductOnOrderJSON() { ProductId = product.ProductId, Name = product.Title, Price = product.Price, Quantity = 1 }; jSONProducts.Add(newProduct); } OrderWithProductJSON orderWithProducts = new OrderWithProductJSON() { OrderId = orders.OrderId, CustomerId = orders.CustomerId, PaymentTypeId = orders.CustomerPaymentId, Products = jSONProducts }; if (orders == null) { return(NotFound()); } return(Ok(orderWithProducts)); } catch (System.InvalidOperationException ex) { return(NotFound(ex)); } }