From 9383a2fb09ffb60cfe63683106945bd688affa59 Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Wed, 1 Jun 2022 21:13:43 +0200 Subject: feat: Initial commit after clean slate --- src/Pages/Status.cshtml.cs | 53 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/Pages/Status.cshtml.cs (limited to 'src/Pages/Status.cshtml.cs') diff --git a/src/Pages/Status.cshtml.cs b/src/Pages/Status.cshtml.cs new file mode 100644 index 0000000..ed15120 --- /dev/null +++ b/src/Pages/Status.cshtml.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.EntityFrameworkCore; +using VSH.Data; +using VSH.Data.Database; + +namespace VSH.Pages; + +public class Status : PageModel +{ + private readonly MainDbContext _context; + public Order CurrentOrder { get; private set; } + public List CurrentOrderProducts { get; } + + public Status(MainDbContext context) { + _context = context; + CurrentOrderProducts = new List(); + } + + public ActionResult OnGet(string orderReference) { + try { + CurrentOrder = _context.Orders.SingleOrDefault(o => o.OrderReference == orderReference); + if (CurrentOrder == default) return Page(); + + foreach (var orderProduct in CurrentOrder.Products) { + var dbProduct = _context.Products.Include(c => c.Category) + .SingleOrDefault(p => p.Id == orderProduct.Id); + if (dbProduct == default) continue; + CurrentOrderProducts.Add(new StatusProduct(dbProduct, orderProduct)); + } + + return Page(); + } catch (Exception e) { + Console.WriteLine(e); + } + + return Redirect("/errors/500"); + } + + public class StatusProduct + { + public StatusProduct(Product dbProdcut, OrderProduct orderProduct) { + DbProdcut = dbProdcut; + OrderProduct = orderProduct; + } + + public Product DbProdcut { get; } + public OrderProduct OrderProduct { get; } + } +} \ No newline at end of file -- cgit v1.3