diff --git a/ContosoPizza/ContosoPizza.db b/ContosoPizza/ContosoPizza.db index a1f9119..2d1ca80 100644 Binary files a/ContosoPizza/ContosoPizza.db and b/ContosoPizza/ContosoPizza.db differ diff --git a/ContosoPizza/ContosoPizza.db-shm b/ContosoPizza/ContosoPizza.db-shm new file mode 100644 index 0000000..ecbad1a Binary files /dev/null and b/ContosoPizza/ContosoPizza.db-shm differ diff --git a/ContosoPizza/ContosoPizza.db-wal b/ContosoPizza/ContosoPizza.db-wal new file mode 100644 index 0000000..7ee7f00 Binary files /dev/null and b/ContosoPizza/ContosoPizza.db-wal differ diff --git a/ContosoPizza/Pages/Index.cshtml b/ContosoPizza/Pages/Index.cshtml index b5f0c15..bc0e2f3 100644 --- a/ContosoPizza/Pages/Index.cshtml +++ b/ContosoPizza/Pages/Index.cshtml @@ -1,10 +1,11 @@ @page @model IndexModel @{ - ViewData["Title"] = "Home page"; + ViewData["Title"] = "The Home for Pizza Lovers"; + TimeSpan timeInBusiness = DateTime.Now - new DateTime(2018, 8, 14); }
-

Welcome

-

Learn about building Web apps with ASP.NET Core.

+

Welcome to Contoso Pizza

+

The best pizza in town for @Convert.ToInt32(timeInBusiness.TotalDays) days!

diff --git a/ContosoPizza/Pages/PizzaList.cshtml b/ContosoPizza/Pages/PizzaList.cshtml new file mode 100644 index 0000000..789753a --- /dev/null +++ b/ContosoPizza/Pages/PizzaList.cshtml @@ -0,0 +1,72 @@ +@page +@model ContosoPizza.Pages.PizzaListModel +@{ + ViewData["Title"] = "Pizza List 🍕"; +} + +

Pizza List 🍕

+ +
+
+
+ + + +
+
+ + + +
+
+ +
+
+ + + +
+
+ +
+
+ + + + + + + + + + + + + @foreach (var pizza in Model.PizzaList) + { + + + + + + + + } + +
NamePriceSizeGluten FreeDelete
@pizza.Name@($"{pizza.Price:C}")@pizza.Size@(pizza.IsGlutenFree ? "✔️" : string.Empty) +
+ +
+
+ +@section Scripts { + +} \ No newline at end of file diff --git a/ContosoPizza/Pages/PizzaList.cshtml.cs b/ContosoPizza/Pages/PizzaList.cshtml.cs new file mode 100644 index 0000000..6d2d002 --- /dev/null +++ b/ContosoPizza/Pages/PizzaList.cshtml.cs @@ -0,0 +1,43 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using ContosoPizza.Models; +using ContosoPizza.Services; + +namespace ContosoPizza.Pages +{ + public class PizzaListModel : PageModel + { + private readonly PizzaService _service; + [BindProperty] + public Pizza NewPizza {get; set;} = default!; + public IList PizzaList {get; set;} = default!; + + public PizzaListModel(PizzaService service) + { + _service = service; + } + public void OnGet() + { + PizzaList = _service.GetPizzas(); + } + + public IActionResult OnPost() + { + if(!ModelState.IsValid || NewPizza == null) + { + return Page(); + } + + _service.AddPizza(NewPizza); + + return RedirectToAction("Get"); + } + + public IActionResult OnPostDelete(int id) + { + _service.DeletePizza(id); + + return RedirectToAction("Get"); + } + } +} diff --git a/ContosoPizza/Pages/Shared/_Layout.cshtml b/ContosoPizza/Pages/Shared/_Layout.cshtml index ff24a5c..dc5a77f 100644 --- a/ContosoPizza/Pages/Shared/_Layout.cshtml +++ b/ContosoPizza/Pages/Shared/_Layout.cshtml @@ -25,6 +25,9 @@ + diff --git a/ContosoPizza/Program.cs b/ContosoPizza/Program.cs index 5c6dd50..dad05a9 100644 --- a/ContosoPizza/Program.cs +++ b/ContosoPizza/Program.cs @@ -9,7 +9,7 @@ builder.Services.AddRazorPages(); builder.Services.AddDbContext(options => options.UseSqlite("Data Source=ContosoPizza.db")); - +builder.Services.AddScoped(); var app = builder.Build(); // Configure the HTTP request pipeline.