├── save-points ├── 07-javascript-interop │ ├── BlazingPizza.Tests │ │ ├── PROGRESS.MD │ │ ├── Helpers │ │ │ └── TestAuthenticationViewComponent.razor │ │ ├── ComponentLibrary │ │ │ └── OrderReviewTests.razor │ │ └── TestDoubles │ │ │ └── DummyNavigationInterception.cs │ ├── BlazingPizza.Client │ │ ├── wwwroot │ │ │ ├── img │ │ │ │ ├── icon-512.png │ │ │ │ └── pizzas │ │ │ │ │ ├── brit.jpg │ │ │ │ │ ├── bacon.jpg │ │ │ │ │ ├── cheese.jpg │ │ │ │ │ ├── meaty.jpg │ │ │ │ │ ├── salad.jpg │ │ │ │ │ ├── mushroom.jpg │ │ │ │ │ ├── pepperoni.jpg │ │ │ │ │ └── margherita.jpg │ │ │ └── css │ │ │ │ └── font │ │ │ │ ├── quicksand-v8-latin-300.woff │ │ │ │ ├── quicksand-v8-latin-500.woff │ │ │ │ ├── quicksand-v8-latin-700.woff │ │ │ │ ├── quicksand-v8-latin-300.woff2 │ │ │ │ ├── quicksand-v8-latin-500.woff2 │ │ │ │ ├── quicksand-v8-latin-700.woff2 │ │ │ │ ├── quicksand-v8-latin-regular.woff │ │ │ │ └── quicksand-v8-latin-regular.woff2 │ │ ├── Shared │ │ │ └── RedirectToLogin.razor │ │ └── PizzaAuthenticationState.cs │ ├── BlazingPizza.Server │ │ ├── PizzaStoreUser.cs │ │ ├── appsettings.json │ │ ├── appsettings.Development.json │ │ └── PizzasController.cs │ ├── BlazingPizza.ComponentsLibrary │ │ ├── wwwroot │ │ │ ├── leaflet │ │ │ │ └── images │ │ │ │ │ ├── layers.png │ │ │ │ │ ├── layers-2x.png │ │ │ │ │ ├── marker-icon.png │ │ │ │ │ ├── marker-icon-2x.png │ │ │ │ │ └── marker-shadow.png │ │ │ └── localStorage.js │ │ ├── _Imports.razor │ │ ├── JSRuntimeExtensions.cs │ │ ├── PizzaCard.razor │ │ └── ConfiguredPizzaItem.razor │ └── BlazingPizza.Shared │ │ ├── Maps │ │ ├── Point.cs │ │ └── Marker.cs │ │ ├── UserInfo.cs │ │ ├── PizzaTopping.cs │ │ ├── Topping.cs │ │ ├── Services │ │ └── IAuthenticationViewComponentTypeProvider.cs │ │ ├── BlazingPizza.Shared.csproj │ │ ├── NotificationSubscription.cs │ │ └── PizzaSpecial.cs ├── 06-authentication-and-authorization │ ├── BlazingPizza.Tests │ │ ├── PROGRESS.MD │ │ ├── Helpers │ │ │ └── TestAuthenticationViewComponent.razor │ │ ├── ComponentLibrary │ │ │ └── OrderReviewTests.razor │ │ └── TestDoubles │ │ │ └── DummyNavigationInterception.cs │ ├── BlazingPizza.Client │ │ ├── wwwroot │ │ │ ├── img │ │ │ │ ├── icon-512.png │ │ │ │ └── pizzas │ │ │ │ │ ├── bacon.jpg │ │ │ │ │ ├── brit.jpg │ │ │ │ │ ├── meaty.jpg │ │ │ │ │ ├── salad.jpg │ │ │ │ │ ├── cheese.jpg │ │ │ │ │ ├── margherita.jpg │ │ │ │ │ ├── mushroom.jpg │ │ │ │ │ └── pepperoni.jpg │ │ │ └── css │ │ │ │ └── font │ │ │ │ ├── quicksand-v8-latin-300.woff │ │ │ │ ├── quicksand-v8-latin-300.woff2 │ │ │ │ ├── quicksand-v8-latin-500.woff │ │ │ │ ├── quicksand-v8-latin-500.woff2 │ │ │ │ ├── quicksand-v8-latin-700.woff │ │ │ │ ├── quicksand-v8-latin-700.woff2 │ │ │ │ ├── quicksand-v8-latin-regular.woff │ │ │ │ └── quicksand-v8-latin-regular.woff2 │ │ ├── Shared │ │ │ └── RedirectToLogin.razor │ │ └── PizzaAuthenticationState.cs │ ├── BlazingPizza.Server │ │ ├── PizzaStoreUser.cs │ │ ├── appsettings.json │ │ ├── appsettings.Development.json │ │ └── PizzasController.cs │ ├── BlazingPizza.Shared │ │ ├── Maps │ │ │ ├── Point.cs │ │ │ └── Marker.cs │ │ ├── UserInfo.cs │ │ ├── PizzaTopping.cs │ │ ├── Topping.cs │ │ ├── Services │ │ │ └── IAuthenticationViewComponentTypeProvider.cs │ │ ├── BlazingPizza.Shared.csproj │ │ ├── NotificationSubscription.cs │ │ └── PizzaSpecial.cs │ └── BlazingPizza.ComponentsLibrary │ │ ├── wwwroot │ │ ├── leaflet │ │ │ └── images │ │ │ │ ├── layers.png │ │ │ │ ├── layers-2x.png │ │ │ │ ├── marker-icon.png │ │ │ │ ├── marker-icon-2x.png │ │ │ │ └── marker-shadow.png │ │ └── localStorage.js │ │ ├── _Imports.razor │ │ └── PizzaCard.razor ├── 00-get-started │ ├── BlazingPizza.Client │ │ ├── Pages │ │ │ └── Index.razor │ │ ├── Shared │ │ │ └── MainLayout.razor │ │ ├── wwwroot │ │ │ ├── img │ │ │ │ ├── icon-512.png │ │ │ │ └── pizzas │ │ │ │ │ ├── bacon.jpg │ │ │ │ │ ├── brit.jpg │ │ │ │ │ ├── cheese.jpg │ │ │ │ │ ├── meaty.jpg │ │ │ │ │ ├── salad.jpg │ │ │ │ │ ├── mushroom.jpg │ │ │ │ │ ├── margherita.jpg │ │ │ │ │ └── pepperoni.jpg │ │ │ └── css │ │ │ │ └── font │ │ │ │ ├── quicksand-v8-latin-300.woff │ │ │ │ ├── quicksand-v8-latin-500.woff │ │ │ │ ├── quicksand-v8-latin-700.woff │ │ │ │ ├── quicksand-v8-latin-300.woff2 │ │ │ │ ├── quicksand-v8-latin-500.woff2 │ │ │ │ ├── quicksand-v8-latin-700.woff2 │ │ │ │ ├── quicksand-v8-latin-regular.woff │ │ │ │ └── quicksand-v8-latin-regular.woff2 │ │ └── App.razor │ ├── BlazingPizza.Server │ │ ├── PizzaStoreUser.cs │ │ ├── appsettings.json │ │ ├── appsettings.Development.json │ │ └── PizzasController.cs │ ├── BlazingPizza.ComponentsLibrary │ │ ├── wwwroot │ │ │ ├── leaflet │ │ │ │ └── images │ │ │ │ │ ├── layers.png │ │ │ │ │ ├── layers-2x.png │ │ │ │ │ ├── marker-icon.png │ │ │ │ │ ├── marker-shadow.png │ │ │ │ │ └── marker-icon-2x.png │ │ │ └── localStorage.js │ │ └── _Imports.razor │ └── BlazingPizza.Shared │ │ ├── Maps │ │ ├── Point.cs │ │ └── Marker.cs │ │ ├── UserInfo.cs │ │ ├── PizzaTopping.cs │ │ ├── Topping.cs │ │ ├── BlazingPizza.Shared.csproj │ │ ├── NotificationSubscription.cs │ │ ├── Address.cs │ │ └── PizzaSpecial.cs ├── 08-templated-components │ ├── BlazingComponents │ │ ├── _Imports.razor │ │ └── TemplatedDialog.razor │ ├── BlazingPizza.Client │ │ ├── wwwroot │ │ │ ├── img │ │ │ │ ├── icon-512.png │ │ │ │ └── pizzas │ │ │ │ │ ├── brit.jpg │ │ │ │ │ ├── bacon.jpg │ │ │ │ │ ├── cheese.jpg │ │ │ │ │ ├── meaty.jpg │ │ │ │ │ ├── salad.jpg │ │ │ │ │ ├── mushroom.jpg │ │ │ │ │ ├── pepperoni.jpg │ │ │ │ │ └── margherita.jpg │ │ │ └── css │ │ │ │ └── font │ │ │ │ ├── quicksand-v8-latin-300.woff │ │ │ │ ├── quicksand-v8-latin-300.woff2 │ │ │ │ ├── quicksand-v8-latin-500.woff │ │ │ │ ├── quicksand-v8-latin-500.woff2 │ │ │ │ ├── quicksand-v8-latin-700.woff │ │ │ │ ├── quicksand-v8-latin-700.woff2 │ │ │ │ ├── quicksand-v8-latin-regular.woff │ │ │ │ └── quicksand-v8-latin-regular.woff2 │ │ ├── Shared │ │ │ └── RedirectToLogin.razor │ │ └── PizzaAuthenticationState.cs │ ├── BlazingPizza.Server │ │ ├── PizzaStoreUser.cs │ │ ├── appsettings.json │ │ ├── appsettings.Development.json │ │ └── PizzasController.cs │ ├── BlazingPizza.ComponentsLibrary │ │ ├── wwwroot │ │ │ ├── leaflet │ │ │ │ └── images │ │ │ │ │ ├── layers.png │ │ │ │ │ ├── layers-2x.png │ │ │ │ │ ├── marker-icon.png │ │ │ │ │ ├── marker-icon-2x.png │ │ │ │ │ └── marker-shadow.png │ │ │ └── localStorage.js │ │ ├── _Imports.razor │ │ ├── JSRuntimeExtensions.cs │ │ ├── PizzaCard.razor │ │ ├── ConfiguredPizzaItem.razor │ │ └── OrderItem.razor │ ├── BlazingPizza.Shared │ │ ├── Maps │ │ │ ├── Point.cs │ │ │ └── Marker.cs │ │ ├── UserInfo.cs │ │ ├── PizzaTopping.cs │ │ ├── Topping.cs │ │ ├── Services │ │ │ └── IAuthenticationViewComponentTypeProvider.cs │ │ ├── BlazingPizza.Shared.csproj │ │ ├── NotificationSubscription.cs │ │ └── PizzaSpecial.cs │ └── BlazingPizza.Tests │ │ ├── Helpers │ │ └── TestAuthenticationViewComponent.razor │ │ ├── ComponentLibrary │ │ └── OrderReviewTests.razor │ │ └── TestDoubles │ │ └── DummyNavigationInterception.cs ├── 09-progressive-web-app │ ├── BlazingComponents │ │ ├── _Imports.razor │ │ └── TemplatedDialog.razor │ ├── BlazingPizza.Client │ │ ├── wwwroot │ │ │ ├── img │ │ │ │ ├── icon-512.png │ │ │ │ └── pizzas │ │ │ │ │ ├── bacon.jpg │ │ │ │ │ ├── brit.jpg │ │ │ │ │ ├── meaty.jpg │ │ │ │ │ ├── salad.jpg │ │ │ │ │ ├── cheese.jpg │ │ │ │ │ ├── mushroom.jpg │ │ │ │ │ ├── margherita.jpg │ │ │ │ │ └── pepperoni.jpg │ │ │ ├── css │ │ │ │ └── font │ │ │ │ │ ├── quicksand-v8-latin-300.woff │ │ │ │ │ ├── quicksand-v8-latin-300.woff2 │ │ │ │ │ ├── quicksand-v8-latin-500.woff │ │ │ │ │ ├── quicksand-v8-latin-500.woff2 │ │ │ │ │ ├── quicksand-v8-latin-700.woff │ │ │ │ │ ├── quicksand-v8-latin-700.woff2 │ │ │ │ │ ├── quicksand-v8-latin-regular.woff │ │ │ │ │ └── quicksand-v8-latin-regular.woff2 │ │ │ └── manifest.json │ │ ├── Shared │ │ │ └── RedirectToLogin.razor │ │ └── PizzaAuthenticationState.cs │ ├── BlazingPizza.Server │ │ ├── PizzaStoreUser.cs │ │ ├── appsettings.json │ │ ├── appsettings.Development.json │ │ └── PizzasController.cs │ ├── BlazingPizza.ComponentsLibrary │ │ ├── wwwroot │ │ │ ├── leaflet │ │ │ │ └── images │ │ │ │ │ ├── layers.png │ │ │ │ │ ├── layers-2x.png │ │ │ │ │ ├── marker-icon.png │ │ │ │ │ ├── marker-shadow.png │ │ │ │ │ └── marker-icon-2x.png │ │ │ └── localStorage.js │ │ ├── _Imports.razor │ │ ├── JSRuntimeExtensions.cs │ │ ├── PizzaCard.razor │ │ ├── ConfiguredPizzaItem.razor │ │ └── OrderItem.razor │ ├── BlazingPizza.Shared │ │ ├── Maps │ │ │ ├── Point.cs │ │ │ └── Marker.cs │ │ ├── UserInfo.cs │ │ ├── PizzaTopping.cs │ │ ├── Topping.cs │ │ ├── NotificationSubscription.cs │ │ ├── Services │ │ │ └── IAuthenticationViewComponentTypeProvider.cs │ │ ├── BlazingPizza.Shared.csproj │ │ └── PizzaSpecial.cs │ └── BlazingPizza.Tests │ │ ├── Helpers │ │ └── TestAuthenticationViewComponent.razor │ │ ├── ComponentLibrary │ │ └── OrderReviewTests.razor │ │ └── TestDoubles │ │ └── DummyNavigationInterception.cs ├── 02-customize-a-pizza │ ├── BlazingPizza.Client │ │ ├── wwwroot │ │ │ ├── img │ │ │ │ ├── icon-512.png │ │ │ │ └── pizzas │ │ │ │ │ ├── bacon.jpg │ │ │ │ │ ├── brit.jpg │ │ │ │ │ ├── meaty.jpg │ │ │ │ │ ├── salad.jpg │ │ │ │ │ ├── cheese.jpg │ │ │ │ │ ├── margherita.jpg │ │ │ │ │ ├── mushroom.jpg │ │ │ │ │ └── pepperoni.jpg │ │ │ └── css │ │ │ │ └── font │ │ │ │ ├── quicksand-v8-latin-300.woff │ │ │ │ ├── quicksand-v8-latin-300.woff2 │ │ │ │ ├── quicksand-v8-latin-500.woff │ │ │ │ ├── quicksand-v8-latin-500.woff2 │ │ │ │ ├── quicksand-v8-latin-700.woff │ │ │ │ ├── quicksand-v8-latin-700.woff2 │ │ │ │ ├── quicksand-v8-latin-regular.woff │ │ │ │ └── quicksand-v8-latin-regular.woff2 │ │ ├── App.razor │ │ └── Shared │ │ │ └── MainLayout.razor │ ├── BlazingPizza.Server │ │ ├── PizzaStoreUser.cs │ │ ├── appsettings.json │ │ ├── appsettings.Development.json │ │ └── PizzasController.cs │ ├── BlazingPizza.ComponentsLibrary │ │ ├── wwwroot │ │ │ ├── leaflet │ │ │ │ └── images │ │ │ │ │ ├── layers.png │ │ │ │ │ ├── layers-2x.png │ │ │ │ │ ├── marker-icon.png │ │ │ │ │ ├── marker-icon-2x.png │ │ │ │ │ └── marker-shadow.png │ │ │ └── localStorage.js │ │ ├── _Imports.razor │ │ ├── PizzaCard.razor │ │ └── ConfiguredPizzaItem.razor │ └── BlazingPizza.Shared │ │ ├── Maps │ │ ├── Point.cs │ │ └── Marker.cs │ │ ├── UserInfo.cs │ │ ├── PizzaTopping.cs │ │ ├── Topping.cs │ │ ├── BlazingPizza.Shared.csproj │ │ ├── NotificationSubscription.cs │ │ ├── Address.cs │ │ └── PizzaSpecial.cs ├── 03-show-order-status │ ├── BlazingPizza.Client │ │ ├── wwwroot │ │ │ ├── img │ │ │ │ ├── icon-512.png │ │ │ │ └── pizzas │ │ │ │ │ ├── bacon.jpg │ │ │ │ │ ├── brit.jpg │ │ │ │ │ ├── meaty.jpg │ │ │ │ │ ├── salad.jpg │ │ │ │ │ ├── cheese.jpg │ │ │ │ │ ├── margherita.jpg │ │ │ │ │ ├── mushroom.jpg │ │ │ │ │ └── pepperoni.jpg │ │ │ └── css │ │ │ │ └── font │ │ │ │ ├── quicksand-v8-latin-300.woff │ │ │ │ ├── quicksand-v8-latin-300.woff2 │ │ │ │ ├── quicksand-v8-latin-500.woff │ │ │ │ ├── quicksand-v8-latin-500.woff2 │ │ │ │ ├── quicksand-v8-latin-700.woff │ │ │ │ ├── quicksand-v8-latin-700.woff2 │ │ │ │ ├── quicksand-v8-latin-regular.woff │ │ │ │ └── quicksand-v8-latin-regular.woff2 │ │ ├── App.razor │ │ └── Shared │ │ │ └── MainLayout.razor │ ├── BlazingPizza.Server │ │ ├── PizzaStoreUser.cs │ │ ├── appsettings.json │ │ ├── appsettings.Development.json │ │ └── PizzasController.cs │ ├── BlazingPizza.ComponentsLibrary │ │ ├── wwwroot │ │ │ ├── leaflet │ │ │ │ └── images │ │ │ │ │ ├── layers.png │ │ │ │ │ ├── layers-2x.png │ │ │ │ │ ├── marker-icon.png │ │ │ │ │ ├── marker-icon-2x.png │ │ │ │ │ └── marker-shadow.png │ │ │ └── localStorage.js │ │ ├── _Imports.razor │ │ ├── PizzaCard.razor │ │ └── ConfiguredPizzaItem.razor │ ├── BlazingPizza.Shared │ │ ├── Maps │ │ │ ├── Point.cs │ │ │ └── Marker.cs │ │ ├── UserInfo.cs │ │ ├── PizzaTopping.cs │ │ ├── Topping.cs │ │ ├── BlazingPizza.Shared.csproj │ │ ├── NotificationSubscription.cs │ │ ├── Address.cs │ │ └── PizzaSpecial.cs │ └── BlazingPizza.Tests │ │ └── ComponentLibrary │ │ └── OrderReviewTests.razor ├── 01-Components-and-layout │ ├── BlazingPizza.Client │ │ ├── wwwroot │ │ │ ├── img │ │ │ │ ├── icon-512.png │ │ │ │ └── pizzas │ │ │ │ │ ├── bacon.jpg │ │ │ │ │ ├── brit.jpg │ │ │ │ │ ├── cheese.jpg │ │ │ │ │ ├── meaty.jpg │ │ │ │ │ ├── salad.jpg │ │ │ │ │ ├── mushroom.jpg │ │ │ │ │ ├── margherita.jpg │ │ │ │ │ └── pepperoni.jpg │ │ │ └── css │ │ │ │ └── font │ │ │ │ ├── quicksand-v8-latin-300.woff │ │ │ │ ├── quicksand-v8-latin-500.woff │ │ │ │ ├── quicksand-v8-latin-700.woff │ │ │ │ ├── quicksand-v8-latin-300.woff2 │ │ │ │ ├── quicksand-v8-latin-500.woff2 │ │ │ │ ├── quicksand-v8-latin-700.woff2 │ │ │ │ ├── quicksand-v8-latin-regular.woff │ │ │ │ └── quicksand-v8-latin-regular.woff2 │ │ ├── App.razor │ │ ├── Shared │ │ │ └── MainLayout.razor │ │ └── Pages │ │ │ └── Index.razor │ ├── BlazingPizza.Server │ │ ├── PizzaStoreUser.cs │ │ ├── appsettings.json │ │ ├── appsettings.Development.json │ │ └── PizzasController.cs │ ├── BlazingPizza.ComponentsLibrary │ │ ├── wwwroot │ │ │ ├── leaflet │ │ │ │ └── images │ │ │ │ │ ├── layers.png │ │ │ │ │ ├── layers-2x.png │ │ │ │ │ ├── marker-icon.png │ │ │ │ │ ├── marker-shadow.png │ │ │ │ │ └── marker-icon-2x.png │ │ │ └── localStorage.js │ │ ├── Map │ │ │ ├── Point.cs │ │ │ └── Marker.cs │ │ ├── _Imports.razor │ │ └── PizzaCard.razor │ └── BlazingPizza.Shared │ │ ├── Maps │ │ ├── Point.cs │ │ └── Marker.cs │ │ ├── UserInfo.cs │ │ ├── PizzaTopping.cs │ │ ├── Topping.cs │ │ ├── BlazingPizza.Shared.csproj │ │ ├── NotificationSubscription.cs │ │ ├── Address.cs │ │ └── PizzaSpecial.cs ├── 04-refactor-state-management │ ├── BlazingPizza.Client │ │ ├── wwwroot │ │ │ ├── img │ │ │ │ ├── icon-512.png │ │ │ │ └── pizzas │ │ │ │ │ ├── brit.jpg │ │ │ │ │ ├── bacon.jpg │ │ │ │ │ ├── cheese.jpg │ │ │ │ │ ├── meaty.jpg │ │ │ │ │ ├── salad.jpg │ │ │ │ │ ├── mushroom.jpg │ │ │ │ │ ├── pepperoni.jpg │ │ │ │ │ └── margherita.jpg │ │ │ └── css │ │ │ │ └── font │ │ │ │ ├── quicksand-v8-latin-300.woff │ │ │ │ ├── quicksand-v8-latin-300.woff2 │ │ │ │ ├── quicksand-v8-latin-500.woff │ │ │ │ ├── quicksand-v8-latin-500.woff2 │ │ │ │ ├── quicksand-v8-latin-700.woff │ │ │ │ ├── quicksand-v8-latin-700.woff2 │ │ │ │ ├── quicksand-v8-latin-regular.woff │ │ │ │ └── quicksand-v8-latin-regular.woff2 │ │ ├── App.razor │ │ └── Shared │ │ │ └── MainLayout.razor │ ├── BlazingPizza.Server │ │ ├── PizzaStoreUser.cs │ │ ├── appsettings.json │ │ ├── appsettings.Development.json │ │ └── PizzasController.cs │ ├── BlazingPizza.ComponentsLibrary │ │ ├── wwwroot │ │ │ ├── leaflet │ │ │ │ └── images │ │ │ │ │ ├── layers.png │ │ │ │ │ ├── layers-2x.png │ │ │ │ │ ├── marker-icon.png │ │ │ │ │ ├── marker-icon-2x.png │ │ │ │ │ └── marker-shadow.png │ │ │ └── localStorage.js │ │ ├── _Imports.razor │ │ ├── PizzaCard.razor │ │ └── ConfiguredPizzaItem.razor │ ├── BlazingPizza.Shared │ │ ├── Maps │ │ │ ├── Point.cs │ │ │ └── Marker.cs │ │ ├── UserInfo.cs │ │ ├── PizzaTopping.cs │ │ ├── Topping.cs │ │ ├── BlazingPizza.Shared.csproj │ │ ├── NotificationSubscription.cs │ │ ├── Address.cs │ │ └── PizzaSpecial.cs │ └── BlazingPizza.Tests │ │ └── ComponentLibrary │ │ └── OrderReviewTests.razor └── 05-checkout-with-validation │ ├── BlazingPizza.Client │ ├── wwwroot │ │ ├── img │ │ │ ├── icon-512.png │ │ │ └── pizzas │ │ │ │ ├── bacon.jpg │ │ │ │ ├── brit.jpg │ │ │ │ ├── meaty.jpg │ │ │ │ ├── salad.jpg │ │ │ │ ├── cheese.jpg │ │ │ │ ├── mushroom.jpg │ │ │ │ ├── margherita.jpg │ │ │ │ └── pepperoni.jpg │ │ └── css │ │ │ └── font │ │ │ ├── quicksand-v8-latin-300.woff │ │ │ ├── quicksand-v8-latin-300.woff2 │ │ │ ├── quicksand-v8-latin-500.woff │ │ │ ├── quicksand-v8-latin-500.woff2 │ │ │ ├── quicksand-v8-latin-700.woff │ │ │ ├── quicksand-v8-latin-700.woff2 │ │ │ ├── quicksand-v8-latin-regular.woff │ │ │ └── quicksand-v8-latin-regular.woff2 │ ├── App.razor │ └── Shared │ │ └── MainLayout.razor │ ├── BlazingPizza.Server │ ├── PizzaStoreUser.cs │ ├── appsettings.json │ ├── appsettings.Development.json │ └── PizzasController.cs │ ├── BlazingPizza.Shared │ ├── Maps │ │ ├── Point.cs │ │ └── Marker.cs │ ├── UserInfo.cs │ ├── PizzaTopping.cs │ ├── Topping.cs │ ├── BlazingPizza.Shared.csproj │ ├── NotificationSubscription.cs │ └── PizzaSpecial.cs │ ├── BlazingPizza.ComponentsLibrary │ ├── wwwroot │ │ ├── leaflet │ │ │ └── images │ │ │ │ ├── layers.png │ │ │ │ ├── layers-2x.png │ │ │ │ ├── marker-icon.png │ │ │ │ ├── marker-shadow.png │ │ │ │ └── marker-icon-2x.png │ │ └── localStorage.js │ ├── _Imports.razor │ ├── PizzaCard.razor │ └── ConfiguredPizzaItem.razor │ └── BlazingPizza.Tests │ └── ComponentLibrary │ └── OrderReviewTests.razor ├── src ├── BlazingComponents │ ├── _Imports.razor │ ├── TemplatedDialog.razor │ └── BlazingComponents.csproj ├── BlazingPizza.Client │ ├── wwwroot │ │ ├── img │ │ │ ├── icon-512.png │ │ │ └── pizzas │ │ │ │ ├── brit.jpg │ │ │ │ ├── bacon.jpg │ │ │ │ ├── cheese.jpg │ │ │ │ ├── meaty.jpg │ │ │ │ ├── salad.jpg │ │ │ │ ├── mushroom.jpg │ │ │ │ ├── pepperoni.jpg │ │ │ │ └── margherita.jpg │ │ ├── css │ │ │ └── font │ │ │ │ ├── quicksand-v8-latin-300.woff │ │ │ │ ├── quicksand-v8-latin-500.woff │ │ │ │ ├── quicksand-v8-latin-700.woff │ │ │ │ ├── quicksand-v8-latin-300.woff2 │ │ │ │ ├── quicksand-v8-latin-500.woff2 │ │ │ │ ├── quicksand-v8-latin-700.woff2 │ │ │ │ ├── quicksand-v8-latin-regular.woff │ │ │ │ └── quicksand-v8-latin-regular.woff2 │ │ └── manifest.json │ ├── Shared │ │ └── RedirectToLogin.razor │ └── PizzaAuthenticationState.cs ├── BlazingPizza.ComponentsLibrary │ ├── wwwroot │ │ ├── leaflet │ │ │ └── images │ │ │ │ ├── layers.png │ │ │ │ ├── layers-2x.png │ │ │ │ ├── marker-icon.png │ │ │ │ ├── marker-icon-2x.png │ │ │ │ └── marker-shadow.png │ │ └── localStorage.js │ ├── _Imports.razor │ ├── JSRuntimeExtensions.cs │ ├── PizzaCard.razor │ ├── ConfiguredPizzaItem.razor │ ├── OrderItem.razor │ └── Map │ │ └── Map.razor ├── BlazingPizza.Server │ ├── PizzaStoreUser.cs │ ├── appsettings.json │ ├── appsettings.Development.json │ └── PizzasController.cs ├── BlazingPizza.Shared │ ├── Maps │ │ ├── Point.cs │ │ └── Marker.cs │ ├── UserInfo.cs │ ├── PizzaTopping.cs │ ├── Topping.cs │ ├── BlazingPizza.Shared.csproj │ ├── NotificationSubscription.cs │ ├── Services │ │ ├── IAuthenticationViewComponentTypeProvider.cs │ │ └── AuthenticationViewComponentTypeProvider.cs │ └── PizzaSpecial.cs ├── BlazingPizza.Tests │ ├── Helpers │ │ └── TestAuthenticationViewComponent.razor │ ├── ComponentLibrary │ │ └── OrderReviewTests.razor │ └── TestDoubles │ │ └── DummyNavigationInterception.cs └── nuget.config ├── ui-mockup.pptx ├── global.json ├── Directory.Build.props └── docs └── 00-get-started.md /save-points/07-javascript-interop/BlazingPizza.Tests/PROGRESS.MD: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Tests/PROGRESS.MD: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/BlazingComponents/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Components.Web 2 | -------------------------------------------------------------------------------- /ui-mockup.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/ui-mockup.pptx -------------------------------------------------------------------------------- /global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "rollForward": "latestMajor", 4 | "allowPrerelease": false 5 | } 6 | } -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/Pages/Index.razor: -------------------------------------------------------------------------------- 1 | @page "/" 2 | 3 |

Blazing Pizzas

4 | -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingComponents/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Components.Web 2 | -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingComponents/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Components.Web 2 | -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/img/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.Client/wwwroot/img/icon-512.png -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/Shared/MainLayout.razor: -------------------------------------------------------------------------------- 1 | @inherits LayoutComponentBase 2 | 3 |
4 | @Body 5 |
6 | -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff -------------------------------------------------------------------------------- /src/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/wwwroot/img/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.Client/wwwroot/img/icon-512.png -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2 -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2 -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2 -------------------------------------------------------------------------------- /src/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2 -------------------------------------------------------------------------------- /src/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /src/BlazingPizza.Server/PizzaStoreUser.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | public class PizzaStoreUser : IdentityUser 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg -------------------------------------------------------------------------------- /src/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /src/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/src/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/icon-512.png -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/icon-512.png -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/icon-512.png -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/icon-512.png -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/icon-512.png -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/icon-512.png -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Server/PizzaStoreUser.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | public class PizzaStoreUser : IdentityUser 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Server/PizzaStoreUser.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | public class PizzaStoreUser : IdentityUser 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Server/PizzaStoreUser.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | public class PizzaStoreUser : IdentityUser 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/icon-512.png -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/icon-512.png -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg -------------------------------------------------------------------------------- /src/BlazingPizza.Shared/Maps/Point.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Point 4 | { 5 | public double X { get; set; } 6 | 7 | public double Y { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Server/PizzaStoreUser.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | public class PizzaStoreUser : IdentityUser 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Server/PizzaStoreUser.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | public class PizzaStoreUser : IdentityUser 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Server/PizzaStoreUser.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | public class PizzaStoreUser : IdentityUser 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Server/PizzaStoreUser.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | public class PizzaStoreUser : IdentityUser 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Server/PizzaStoreUser.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | public class PizzaStoreUser : IdentityUser 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Server/PizzaStoreUser.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | public class PizzaStoreUser : IdentityUser 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg -------------------------------------------------------------------------------- /src/BlazingPizza.Shared/UserInfo.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class UserInfo 4 | { 5 | public bool IsAuthenticated { get; set; } 6 | 7 | public string Name { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2 -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2 -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2 -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/icon-512.png -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Server/PizzaStoreUser.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | public class PizzaStoreUser : IdentityUser 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2 -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/pizzas/bacon.jpg -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/pizzas/brit.jpg -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/pizzas/meaty.jpg -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/pizzas/salad.jpg -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Shared/Maps/Point.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Point 4 | { 5 | public double X { get; set; } 6 | 7 | public double Y { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2 -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2 -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2 -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2 -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2 -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2 -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/pizzas/cheese.jpg -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/00-get-started/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Shared/Maps/Point.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Point 4 | { 5 | public double X { get; set; } 6 | 7 | public double Y { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Shared/Maps/Point.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Point 4 | { 5 | public double X { get; set; } 6 | 7 | public double Y { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/pizzas/margherita.jpg -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/pizzas/mushroom.jpg -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/img/pizzas/pepperoni.jpg -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2 -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2 -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2 -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Shared/Maps/Point.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Point 4 | { 5 | public double X { get; set; } 6 | 7 | public double Y { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2 -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2 -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2 -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2 -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2 -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2 -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Shared/Maps/Point.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Point 4 | { 5 | public double X { get; set; } 6 | 7 | public double Y { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Shared/UserInfo.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class UserInfo 4 | { 5 | public bool IsAuthenticated { get; set; } 6 | 7 | public string Name { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2 -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2 -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2 -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Shared/Maps/Point.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Point 4 | { 5 | public double X { get; set; } 6 | 7 | public double Y { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2 -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2 -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Shared/Maps/Point.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Point 4 | { 5 | public double X { get; set; } 6 | 7 | public double Y { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2 -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Shared/Maps/Point.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Point 4 | { 5 | public double X { get; set; } 6 | 7 | public double Y { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /src/BlazingPizza.Client/Shared/RedirectToLogin.razor: -------------------------------------------------------------------------------- 1 | @inject NavigationManager Navigation 2 | @code { 3 | protected override void OnInitialized() 4 | { 5 | Navigation.NavigateTo($"authentication/login?returnUrl={Navigation.Uri}"); 6 | } 7 | } -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2 -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/02-customize-a-pizza/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Shared/UserInfo.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class UserInfo 4 | { 5 | public bool IsAuthenticated { get; set; } 6 | 7 | public string Name { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/03-show-order-status/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Shared/UserInfo.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class UserInfo 4 | { 5 | public bool IsAuthenticated { get; set; } 6 | 7 | public string Name { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2 -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2 -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2 -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Shared/Maps/Point.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Point 4 | { 5 | public double X { get; set; } 6 | 7 | public double Y { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2 -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2 -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2 -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/07-javascript-interop/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Shared/UserInfo.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class UserInfo 4 | { 5 | public bool IsAuthenticated { get; set; } 6 | 7 | public string Name { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2 -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2 -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Shared/UserInfo.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class UserInfo 4 | { 5 | public bool IsAuthenticated { get; set; } 6 | 7 | public string Name { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Shared/Maps/Point.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Point 4 | { 5 | public double X { get; set; } 6 | 7 | public double Y { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/08-templated-components/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Shared/UserInfo.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class UserInfo 4 | { 5 | public bool IsAuthenticated { get; set; } 6 | 7 | public string Name { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/09-progressive-web-app/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Shared/UserInfo.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class UserInfo 4 | { 5 | public bool IsAuthenticated { get; set; } 6 | 7 | public string Name { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/01-Components-and-layout/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2 -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Shared/UserInfo.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class UserInfo 4 | { 5 | public bool IsAuthenticated { get; set; } 6 | 7 | public string Name { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2 -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Shared/UserInfo.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class UserInfo 4 | { 5 | public bool IsAuthenticated { get; set; } 6 | 7 | public string Name { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/04-refactor-state-management/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/05-checkout-with-validation/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-300.woff2 -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-500.woff2 -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-700.woff2 -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers.png -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Shared/UserInfo.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class UserInfo 4 | { 5 | public bool IsAuthenticated { get; set; } 6 | 7 | public string Name { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.ComponentsLibrary/Map/Point.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.ComponentsLibrary.Map 2 | { 3 | public class Point 4 | { 5 | public double X { get; set; } 6 | 7 | public double Y { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.Client/wwwroot/css/font/quicksand-v8-latin-regular.woff2 -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/Shared/RedirectToLogin.razor: -------------------------------------------------------------------------------- 1 | @inject NavigationManager Navigation 2 | @code { 3 | protected override void OnInitialized() 4 | { 5 | Navigation.NavigateTo($"authentication/login?returnUrl={Navigation.Uri}"); 6 | } 7 | } -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/Shared/RedirectToLogin.razor: -------------------------------------------------------------------------------- 1 | @inject NavigationManager Navigation 2 | @code { 3 | protected override void OnInitialized() 4 | { 5 | Navigation.NavigateTo($"authentication/login?returnUrl={Navigation.Uri}"); 6 | } 7 | } -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/Shared/RedirectToLogin.razor: -------------------------------------------------------------------------------- 1 | @inject NavigationManager Navigation 2 | @code { 3 | protected override void OnInitialized() 4 | { 5 | Navigation.NavigateTo($"authentication/login?returnUrl={Navigation.Uri}"); 6 | } 7 | } -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egil/blazor-workshop/HEAD/save-points/06-authentication-and-authorization/BlazingPizza.ComponentsLibrary/wwwroot/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /src/BlazingPizza.Shared/PizzaTopping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class PizzaTopping 4 | { 5 | public Topping Topping { get; set; } 6 | 7 | public int ToppingId { get; set; } 8 | 9 | public int PizzaId { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/Shared/RedirectToLogin.razor: -------------------------------------------------------------------------------- 1 | @inject NavigationManager Navigation 2 | @code { 3 | protected override void OnInitialized() 4 | { 5 | Navigation.NavigateTo($"authentication/login?returnUrl={Navigation.Uri}"); 6 | } 7 | } -------------------------------------------------------------------------------- /src/BlazingPizza.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "IdentityServer": { 8 | "Clients": { 9 | "BlazingPizza.Client": { 10 | "Profile": "IdentityServerSPA" 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/BlazingPizza.Client/PizzaAuthenticationState.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Components.WebAssembly.Authentication; 2 | 3 | namespace BlazingPizza.Client 4 | { 5 | public class PizzaAuthenticationState : RemoteAuthenticationState 6 | { 7 | public Order Order { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Shared/PizzaTopping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class PizzaTopping 4 | { 5 | public Topping Topping { get; set; } 6 | 7 | public int ToppingId { get; set; } 8 | 9 | public int PizzaId { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Shared/PizzaTopping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class PizzaTopping 4 | { 5 | public Topping Topping { get; set; } 6 | 7 | public int ToppingId { get; set; } 8 | 9 | public int PizzaId { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Shared/PizzaTopping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class PizzaTopping 4 | { 5 | public Topping Topping { get; set; } 6 | 7 | public int ToppingId { get; set; } 8 | 9 | public int PizzaId { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Shared/PizzaTopping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class PizzaTopping 4 | { 5 | public Topping Topping { get; set; } 6 | 7 | public int ToppingId { get; set; } 8 | 9 | public int PizzaId { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "IdentityServer": { 8 | "Clients": { 9 | "BlazingPizza.Client": { 10 | "Profile": "IdentityServerSPA" 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Shared/PizzaTopping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class PizzaTopping 4 | { 5 | public Topping Topping { get; set; } 6 | 7 | public int ToppingId { get; set; } 8 | 9 | public int PizzaId { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Shared/PizzaTopping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class PizzaTopping 4 | { 5 | public Topping Topping { get; set; } 6 | 7 | public int ToppingId { get; set; } 8 | 9 | public int PizzaId { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Shared/PizzaTopping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class PizzaTopping 4 | { 5 | public Topping Topping { get; set; } 6 | 7 | public int ToppingId { get; set; } 8 | 9 | public int PizzaId { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/BlazingPizza.Server/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | }, 9 | "IdentityServer": { 10 | "Key": { 11 | "Type": "Development" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "IdentityServer": { 8 | "Clients": { 9 | "BlazingPizza.Client": { 10 | "Profile": "IdentityServerSPA" 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "IdentityServer": { 8 | "Clients": { 9 | "BlazingPizza.Client": { 10 | "Profile": "IdentityServerSPA" 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Shared/PizzaTopping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class PizzaTopping 4 | { 5 | public Topping Topping { get; set; } 6 | 7 | public int ToppingId { get; set; } 8 | 9 | public int PizzaId { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Shared/PizzaTopping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class PizzaTopping 4 | { 5 | public Topping Topping { get; set; } 6 | 7 | public int ToppingId { get; set; } 8 | 9 | public int PizzaId { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "IdentityServer": { 8 | "Clients": { 9 | "BlazingPizza.Client": { 10 | "Profile": "IdentityServerSPA" 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/BlazingPizza.Shared/Maps/Marker.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Marker 4 | { 5 | public string Description { get; set; } 6 | 7 | public double X { get; set; } 8 | 9 | public double Y { get; set; } 10 | 11 | public bool ShowPopup { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/BlazingPizza.Tests/Helpers/TestAuthenticationViewComponent.razor: -------------------------------------------------------------------------------- 1 | @Action 2 | @code{ 3 | [Parameter] public string Action { get; set; } 4 | 5 | [Parameter] public PizzaAuthenticationState AuthenticationState { get; set; } 6 | 7 | [Parameter] public EventCallback OnLogInSucceeded { get; set; } 8 | } -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "IdentityServer": { 8 | "Clients": { 9 | "BlazingPizza.Client": { 10 | "Profile": "IdentityServerSPA" 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Shared/PizzaTopping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class PizzaTopping 4 | { 5 | public Topping Topping { get; set; } 6 | 7 | public int ToppingId { get; set; } 8 | 9 | public int PizzaId { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "IdentityServer": { 8 | "Clients": { 9 | "BlazingPizza.Client": { 10 | "Profile": "IdentityServerSPA" 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "IdentityServer": { 8 | "Clients": { 9 | "BlazingPizza.Client": { 10 | "Profile": "IdentityServerSPA" 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/nuget.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "IdentityServer": { 8 | "Clients": { 9 | "BlazingPizza.Client": { 10 | "Profile": "IdentityServerSPA" 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "IdentityServer": { 8 | "Clients": { 9 | "BlazingPizza.Client": { 10 | "Profile": "IdentityServerSPA" 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Client/PizzaAuthenticationState.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Components.WebAssembly.Authentication; 2 | 3 | namespace BlazingPizza.Client 4 | { 5 | public class PizzaAuthenticationState : RemoteAuthenticationState 6 | { 7 | public Order Order { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Client/PizzaAuthenticationState.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Components.WebAssembly.Authentication; 2 | 3 | namespace BlazingPizza.Client 4 | { 5 | public class PizzaAuthenticationState : RemoteAuthenticationState 6 | { 7 | public Order Order { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/PizzaAuthenticationState.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Components.WebAssembly.Authentication; 2 | 3 | namespace BlazingPizza.Client 4 | { 5 | public class PizzaAuthenticationState : RemoteAuthenticationState 6 | { 7 | public Order Order { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Server/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | }, 9 | "IdentityServer": { 10 | "Key": { 11 | "Type": "Development" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "IdentityServer": { 8 | "Clients": { 9 | "BlazingPizza.Client": { 10 | "Profile": "IdentityServerSPA" 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/BlazingComponents/TemplatedDialog.razor: -------------------------------------------------------------------------------- 1 | @if (Show) 2 | { 3 |
4 |
5 | @ChildContent 6 |
7 |
8 | } 9 | 10 | @code { 11 | [Parameter] public RenderFragment ChildContent { get; set; } 12 | [Parameter] public bool Show { get; set; } 13 | } -------------------------------------------------------------------------------- /src/BlazingPizza.ComponentsLibrary/wwwroot/localStorage.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | window.blazorLocalStorage = { 3 | get: key => key in localStorage ? JSON.parse(localStorage[key]) : null, 4 | set: (key, value) => { localStorage[key] = JSON.stringify(value); }, 5 | delete: key => { delete localStorage[key]; } 6 | }; 7 | })(); 8 | -------------------------------------------------------------------------------- /src/BlazingPizza.Shared/Topping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class Topping 4 | { 5 | public int Id { get; set; } 6 | 7 | public string Name { get; set; } 8 | 9 | public decimal Price { get; set; } 10 | 11 | public string GetFormattedPrice() => Price.ToString("0.00"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Server/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | }, 9 | "IdentityServer": { 10 | "Key": { 11 | "Type": "Development" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Server/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | }, 9 | "IdentityServer": { 10 | "Key": { 11 | "Type": "Development" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/BlazingPizza.ComponentsLibrary/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Authorization 2 | @using Microsoft.AspNetCore.Components.Forms 3 | @using Microsoft.AspNetCore.Components.Routing 4 | @using Microsoft.AspNetCore.Components.Web 5 | @using Microsoft.JSInterop 6 | @using BlazingPizza 7 | @using BlazingPizza.ComponentsLibrary 8 | @using BlazingPizza.Maps -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Shared/Maps/Marker.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Marker 4 | { 5 | public string Description { get; set; } 6 | 7 | public double X { get; set; } 8 | 9 | public double Y { get; set; } 10 | 11 | public bool ShowPopup { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Server/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | }, 9 | "IdentityServer": { 10 | "Key": { 11 | "Type": "Development" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Client/PizzaAuthenticationState.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Components.WebAssembly.Authentication; 2 | 3 | namespace BlazingPizza.Client 4 | { 5 | public class PizzaAuthenticationState : RemoteAuthenticationState 6 | { 7 | public Order Order { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Server/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | }, 9 | "IdentityServer": { 10 | "Key": { 11 | "Type": "Development" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Server/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | }, 9 | "IdentityServer": { 10 | "Key": { 11 | "Type": "Development" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Server/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | }, 9 | "IdentityServer": { 10 | "Key": { 11 | "Type": "Development" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Shared/Maps/Marker.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Marker 4 | { 5 | public string Description { get; set; } 6 | 7 | public double X { get; set; } 8 | 9 | public double Y { get; set; } 10 | 11 | public bool ShowPopup { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Shared/Maps/Marker.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Marker 4 | { 5 | public string Description { get; set; } 6 | 7 | public double X { get; set; } 8 | 9 | public double Y { get; set; } 10 | 11 | public bool ShowPopup { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Server/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | }, 9 | "IdentityServer": { 10 | "Key": { 11 | "Type": "Development" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Server/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | }, 9 | "IdentityServer": { 10 | "Key": { 11 | "Type": "Development" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Shared/Maps/Marker.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Marker 4 | { 5 | public string Description { get; set; } 6 | 7 | public double X { get; set; } 8 | 9 | public double Y { get; set; } 10 | 11 | public bool ShowPopup { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Tests/Helpers/TestAuthenticationViewComponent.razor: -------------------------------------------------------------------------------- 1 | @Action 2 | @code{ 3 | [Parameter] public string Action { get; set; } 4 | 5 | [Parameter] public PizzaAuthenticationState AuthenticationState { get; set; } 6 | 7 | [Parameter] public EventCallback OnLogInSucceeded { get; set; } 8 | } -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Tests/Helpers/TestAuthenticationViewComponent.razor: -------------------------------------------------------------------------------- 1 | @Action 2 | @code{ 3 | [Parameter] public string Action { get; set; } 4 | 5 | [Parameter] public PizzaAuthenticationState AuthenticationState { get; set; } 6 | 7 | [Parameter] public EventCallback OnLogInSucceeded { get; set; } 8 | } -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Tests/Helpers/TestAuthenticationViewComponent.razor: -------------------------------------------------------------------------------- 1 | @Action 2 | @code{ 3 | [Parameter] public string Action { get; set; } 4 | 5 | [Parameter] public PizzaAuthenticationState AuthenticationState { get; set; } 6 | 7 | [Parameter] public EventCallback OnLogInSucceeded { get; set; } 8 | } -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Shared/Maps/Marker.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Marker 4 | { 5 | public string Description { get; set; } 6 | 7 | public double X { get; set; } 8 | 9 | public double Y { get; set; } 10 | 11 | public bool ShowPopup { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Server/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | }, 9 | "IdentityServer": { 10 | "Key": { 11 | "Type": "Development" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Shared/Maps/Marker.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Marker 4 | { 5 | public string Description { get; set; } 6 | 7 | public double X { get; set; } 8 | 9 | public double Y { get; set; } 10 | 11 | public bool ShowPopup { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Shared/Maps/Marker.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Marker 4 | { 5 | public string Description { get; set; } 6 | 7 | public double X { get; set; } 8 | 9 | public double Y { get; set; } 10 | 11 | public bool ShowPopup { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.ComponentsLibrary/wwwroot/localStorage.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | window.blazorLocalStorage = { 3 | get: key => key in localStorage ? JSON.parse(localStorage[key]) : null, 4 | set: (key, value) => { localStorage[key] = JSON.stringify(value); }, 5 | delete: key => { delete localStorage[key]; } 6 | }; 7 | })(); 8 | -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Shared/Topping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class Topping 4 | { 5 | public int Id { get; set; } 6 | 7 | public string Name { get; set; } 8 | 9 | public decimal Price { get; set; } 10 | 11 | public string GetFormattedPrice() => Price.ToString("0.00"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Shared/Maps/Marker.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Marker 4 | { 5 | public string Description { get; set; } 6 | 7 | public double X { get; set; } 8 | 9 | public double Y { get; set; } 10 | 11 | public bool ShowPopup { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Shared/Maps/Marker.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Marker 4 | { 5 | public string Description { get; set; } 6 | 7 | public double X { get; set; } 8 | 9 | public double Y { get; set; } 10 | 11 | public bool ShowPopup { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.ComponentsLibrary/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Authorization 2 | @using Microsoft.AspNetCore.Components.Forms 3 | @using Microsoft.AspNetCore.Components.Routing 4 | @using Microsoft.AspNetCore.Components.Web 5 | @using Microsoft.JSInterop 6 | @using BlazingPizza 7 | @using BlazingPizza.ComponentsLibrary 8 | @using BlazingPizza.Maps -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.ComponentsLibrary/wwwroot/localStorage.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | window.blazorLocalStorage = { 3 | get: key => key in localStorage ? JSON.parse(localStorage[key]) : null, 4 | set: (key, value) => { localStorage[key] = JSON.stringify(value); }, 5 | delete: key => { delete localStorage[key]; } 6 | }; 7 | })(); 8 | -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Shared/Topping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class Topping 4 | { 5 | public int Id { get; set; } 6 | 7 | public string Name { get; set; } 8 | 9 | public decimal Price { get; set; } 10 | 11 | public string GetFormattedPrice() => Price.ToString("0.00"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.ComponentsLibrary/wwwroot/localStorage.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | window.blazorLocalStorage = { 3 | get: key => key in localStorage ? JSON.parse(localStorage[key]) : null, 4 | set: (key, value) => { localStorage[key] = JSON.stringify(value); }, 5 | delete: key => { delete localStorage[key]; } 6 | }; 7 | })(); 8 | -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Shared/Topping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class Topping 4 | { 5 | public int Id { get; set; } 6 | 7 | public string Name { get; set; } 8 | 9 | public decimal Price { get; set; } 10 | 11 | public string GetFormattedPrice() => Price.ToString("0.00"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Shared/Maps/Marker.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.Maps 2 | { 3 | public class Marker 4 | { 5 | public string Description { get; set; } 6 | 7 | public double X { get; set; } 8 | 9 | public double Y { get; set; } 10 | 11 | public bool ShowPopup { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Tests/Helpers/TestAuthenticationViewComponent.razor: -------------------------------------------------------------------------------- 1 | @Action 2 | @code{ 3 | [Parameter] public string Action { get; set; } 4 | 5 | [Parameter] public PizzaAuthenticationState AuthenticationState { get; set; } 6 | 7 | [Parameter] public EventCallback OnLogInSucceeded { get; set; } 8 | } -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.ComponentsLibrary/wwwroot/localStorage.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | window.blazorLocalStorage = { 3 | get: key => key in localStorage ? JSON.parse(localStorage[key]) : null, 4 | set: (key, value) => { localStorage[key] = JSON.stringify(value); }, 5 | delete: key => { delete localStorage[key]; } 6 | }; 7 | })(); 8 | -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Shared/Topping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class Topping 4 | { 5 | public int Id { get; set; } 6 | 7 | public string Name { get; set; } 8 | 9 | public decimal Price { get; set; } 10 | 11 | public string GetFormattedPrice() => Price.ToString("0.00"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Shared/Topping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class Topping 4 | { 5 | public int Id { get; set; } 6 | 7 | public string Name { get; set; } 8 | 9 | public decimal Price { get; set; } 10 | 11 | public string GetFormattedPrice() => Price.ToString("0.00"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingComponents/TemplatedDialog.razor: -------------------------------------------------------------------------------- 1 | @if (Show) 2 | { 3 |
4 |
5 | @ChildContent 6 |
7 |
8 | } 9 | 10 | @code { 11 | [Parameter] public RenderFragment ChildContent { get; set; } 12 | [Parameter] public bool Show { get; set; } 13 | } -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Shared/Topping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class Topping 4 | { 5 | public int Id { get; set; } 6 | 7 | public string Name { get; set; } 8 | 9 | public decimal Price { get; set; } 10 | 11 | public string GetFormattedPrice() => Price.ToString("0.00"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.ComponentsLibrary/wwwroot/localStorage.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | window.blazorLocalStorage = { 3 | get: key => key in localStorage ? JSON.parse(localStorage[key]) : null, 4 | set: (key, value) => { localStorage[key] = JSON.stringify(value); }, 5 | delete: key => { delete localStorage[key]; } 6 | }; 7 | })(); 8 | -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Shared/Topping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class Topping 4 | { 5 | public int Id { get; set; } 6 | 7 | public string Name { get; set; } 8 | 9 | public decimal Price { get; set; } 10 | 11 | public string GetFormattedPrice() => Price.ToString("0.00"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.ComponentsLibrary/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Authorization 2 | @using Microsoft.AspNetCore.Components.Forms 3 | @using Microsoft.AspNetCore.Components.Routing 4 | @using Microsoft.AspNetCore.Components.Web 5 | @using Microsoft.JSInterop 6 | @using BlazingPizza 7 | @using BlazingPizza.ComponentsLibrary 8 | @using BlazingPizza.Maps -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Shared/Topping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class Topping 4 | { 5 | public int Id { get; set; } 6 | 7 | public string Name { get; set; } 8 | 9 | public decimal Price { get; set; } 10 | 11 | public string GetFormattedPrice() => Price.ToString("0.00"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Shared/Topping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class Topping 4 | { 5 | public int Id { get; set; } 6 | 7 | public string Name { get; set; } 8 | 9 | public decimal Price { get; set; } 10 | 11 | public string GetFormattedPrice() => Price.ToString("0.00"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.ComponentsLibrary/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Authorization 2 | @using Microsoft.AspNetCore.Components.Forms 3 | @using Microsoft.AspNetCore.Components.Routing 4 | @using Microsoft.AspNetCore.Components.Web 5 | @using Microsoft.JSInterop 6 | @using BlazingPizza 7 | @using BlazingPizza.ComponentsLibrary 8 | @using BlazingPizza.Maps -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingComponents/TemplatedDialog.razor: -------------------------------------------------------------------------------- 1 | @if (Show) 2 | { 3 |
4 |
5 | @ChildContent 6 |
7 |
8 | } 9 | 10 | @code { 11 | [Parameter] public RenderFragment ChildContent { get; set; } 12 | [Parameter] public bool Show { get; set; } 13 | } -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.ComponentsLibrary/wwwroot/localStorage.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | window.blazorLocalStorage = { 3 | get: key => key in localStorage ? JSON.parse(localStorage[key]) : null, 4 | set: (key, value) => { localStorage[key] = JSON.stringify(value); }, 5 | delete: key => { delete localStorage[key]; } 6 | }; 7 | })(); 8 | -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.ComponentsLibrary/wwwroot/localStorage.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | window.blazorLocalStorage = { 3 | get: key => key in localStorage ? JSON.parse(localStorage[key]) : null, 4 | set: (key, value) => { localStorage[key] = JSON.stringify(value); }, 5 | delete: key => { delete localStorage[key]; } 6 | }; 7 | })(); 8 | -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.ComponentsLibrary/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Authorization 2 | @using Microsoft.AspNetCore.Components.Forms 3 | @using Microsoft.AspNetCore.Components.Routing 4 | @using Microsoft.AspNetCore.Components.Web 5 | @using Microsoft.JSInterop 6 | @using BlazingPizza 7 | @using BlazingPizza.ComponentsLibrary 8 | @using BlazingPizza.Maps -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.ComponentsLibrary/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Authorization 2 | @using Microsoft.AspNetCore.Components.Forms 3 | @using Microsoft.AspNetCore.Components.Routing 4 | @using Microsoft.AspNetCore.Components.Web 5 | @using Microsoft.JSInterop 6 | @using BlazingPizza 7 | @using BlazingPizza.ComponentsLibrary 8 | @using BlazingPizza.Maps 9 | -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.ComponentsLibrary/wwwroot/localStorage.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | window.blazorLocalStorage = { 3 | get: key => key in localStorage ? JSON.parse(localStorage[key]) : null, 4 | set: (key, value) => { localStorage[key] = JSON.stringify(value); }, 5 | delete: key => { delete localStorage[key]; } 6 | }; 7 | })(); 8 | -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.ComponentsLibrary/wwwroot/localStorage.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | window.blazorLocalStorage = { 3 | get: key => key in localStorage ? JSON.parse(localStorage[key]) : null, 4 | set: (key, value) => { localStorage[key] = JSON.stringify(value); }, 5 | delete: key => { delete localStorage[key]; } 6 | }; 7 | })(); 8 | -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.ComponentsLibrary/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Authorization 2 | @using Microsoft.AspNetCore.Components.Forms 3 | @using Microsoft.AspNetCore.Components.Routing 4 | @using Microsoft.AspNetCore.Components.Web 5 | @using Microsoft.JSInterop 6 | @using BlazingPizza 7 | @using BlazingPizza.ComponentsLibrary 8 | @using BlazingPizza.Maps -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.ComponentsLibrary/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Authorization 2 | @using Microsoft.AspNetCore.Components.Forms 3 | @using Microsoft.AspNetCore.Components.Routing 4 | @using Microsoft.AspNetCore.Components.Web 5 | @using Microsoft.JSInterop 6 | @using BlazingPizza 7 | @using BlazingPizza.ComponentsLibrary 8 | @using BlazingPizza.Maps -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.ComponentsLibrary/Map/Marker.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza.ComponentsLibrary.Map 2 | { 3 | public class Marker 4 | { 5 | public string Description { get; set; } 6 | 7 | public double X { get; set; } 8 | 9 | public double Y { get; set; } 10 | 11 | public bool ShowPopup { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.ComponentsLibrary/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Authorization 2 | @using Microsoft.AspNetCore.Components.Forms 3 | @using Microsoft.AspNetCore.Components.Routing 4 | @using Microsoft.AspNetCore.Components.Web 5 | @using Microsoft.JSInterop 6 | @using BlazingPizza 7 | @using BlazingPizza.ComponentsLibrary 8 | @using BlazingPizza.Maps -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.ComponentsLibrary/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Authorization 2 | @using Microsoft.AspNetCore.Components.Forms 3 | @using Microsoft.AspNetCore.Components.Routing 4 | @using Microsoft.AspNetCore.Components.Web 5 | @using Microsoft.JSInterop 6 | @using BlazingPizza 7 | @using BlazingPizza.ComponentsLibrary 8 | @using BlazingPizza.Maps -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.ComponentsLibrary/wwwroot/localStorage.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | window.blazorLocalStorage = { 3 | get: key => key in localStorage ? JSON.parse(localStorage[key]) : null, 4 | set: (key, value) => { localStorage[key] = JSON.stringify(value); }, 5 | delete: key => { delete localStorage[key]; } 6 | }; 7 | })(); 8 | -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Shared/Topping.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class Topping 4 | { 5 | public int Id { get; set; } 6 | 7 | public string Name { get; set; } 8 | 9 | public decimal Price { get; set; } 10 | 11 | public string GetFormattedPrice() => Price.ToString("0.00"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/BlazingPizza.Client/wwwroot/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "Blazing Pizza", 3 | "name": "Blazing Pizza", 4 | "icons": [ 5 | { 6 | "src": "img/icon-512.png", 7 | "type": "image/png", 8 | "sizes": "512x512" 9 | } 10 | ], 11 | "start_url": "/", 12 | "background_color": "#860000", 13 | "display": "standalone", 14 | "scope": "/", 15 | "theme_color": "#860000" 16 | } -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.ComponentsLibrary/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Authorization 2 | @using Microsoft.AspNetCore.Components.Forms 3 | @using Microsoft.AspNetCore.Components.Routing 4 | @using Microsoft.AspNetCore.Components.Web 5 | @using Microsoft.JSInterop 6 | @using BlazingPizza 7 | @using BlazingPizza.ComponentsLibrary 8 | @using BlazingPizza.Maps -------------------------------------------------------------------------------- /src/BlazingPizza.ComponentsLibrary/JSRuntimeExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Microsoft.JSInterop; 3 | 4 | namespace BlazingPizza.ComponentsLibrary 5 | { 6 | public static class JSRuntimeExtensions 7 | { 8 | public static ValueTask Confirm(this IJSRuntime jsRuntime, string message) 9 | => jsRuntime.InvokeAsync("confirm", message); 10 | } 11 | } -------------------------------------------------------------------------------- /src/BlazingPizza.Shared/BlazingPizza.Shared.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | BlazingPizza 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Client/wwwroot/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "Blazing Pizza", 3 | "name": "Blazing Pizza", 4 | "icons": [ 5 | { 6 | "src": "img/icon-512.png", 7 | "type": "image/png", 8 | "sizes": "512x512" 9 | } 10 | ], 11 | "start_url": "/", 12 | "background_color": "#860000", 13 | "display": "standalone", 14 | "scope": "/", 15 | "theme_color": "#860000" 16 | } -------------------------------------------------------------------------------- /src/BlazingPizza.Server/PizzasController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | [Route("pizzas")] 6 | [ApiController] 7 | public class PizzasController : Controller 8 | { 9 | private readonly PizzaStoreContext _db; 10 | 11 | public PizzasController(PizzaStoreContext db) 12 | { 13 | _db = db; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/BlazingPizza.Shared/NotificationSubscription.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class NotificationSubscription 4 | { 5 | public int NotificationSubscriptionId { get; set; } 6 | 7 | public string UserId { get; set; } 8 | 9 | public string Url { get; set; } 10 | 11 | public string P256dh { get; set; } 12 | 13 | public string Auth { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.ComponentsLibrary/JSRuntimeExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Microsoft.JSInterop; 3 | 4 | namespace BlazingPizza.ComponentsLibrary 5 | { 6 | public static class JSRuntimeExtensions 7 | { 8 | public static ValueTask Confirm(this IJSRuntime jsRuntime, string message) 9 | => jsRuntime.InvokeAsync("confirm", message); 10 | } 11 | } -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.ComponentsLibrary/JSRuntimeExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Microsoft.JSInterop; 3 | 4 | namespace BlazingPizza.ComponentsLibrary 5 | { 6 | public static class JSRuntimeExtensions 7 | { 8 | public static ValueTask Confirm(this IJSRuntime jsRuntime, string message) 9 | => jsRuntime.InvokeAsync("confirm", message); 10 | } 11 | } -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.ComponentsLibrary/JSRuntimeExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Microsoft.JSInterop; 3 | 4 | namespace BlazingPizza.ComponentsLibrary 5 | { 6 | public static class JSRuntimeExtensions 7 | { 8 | public static ValueTask Confirm(this IJSRuntime jsRuntime, string message) 9 | => jsRuntime.InvokeAsync("confirm", message); 10 | } 11 | } -------------------------------------------------------------------------------- /src/BlazingPizza.Shared/Services/IAuthenticationViewComponentTypeProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace BlazingPizza.Services 9 | { 10 | public interface IAuthenticationViewComponentTypeProvider 11 | { 12 | public Type GetAuthenticationViewComponentType(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Server/PizzasController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | [Route("pizzas")] 6 | [ApiController] 7 | public class PizzasController : Controller 8 | { 9 | private readonly PizzaStoreContext _db; 10 | 11 | public PizzasController(PizzaStoreContext db) 12 | { 13 | _db = db; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Client/App.razor: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Sorry, there's nothing at this address.
8 |
9 |
10 |
11 | -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Server/PizzasController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | [Route("pizzas")] 6 | [ApiController] 7 | public class PizzasController : Controller 8 | { 9 | private readonly PizzaStoreContext _db; 10 | 11 | public PizzasController(PizzaStoreContext db) 12 | { 13 | _db = db; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Server/PizzasController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | [Route("pizzas")] 6 | [ApiController] 7 | public class PizzasController : Controller 8 | { 9 | private readonly PizzaStoreContext _db; 10 | 11 | public PizzasController(PizzaStoreContext db) 12 | { 13 | _db = db; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Server/PizzasController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | [Route("pizzas")] 6 | [ApiController] 7 | public class PizzasController : Controller 8 | { 9 | private readonly PizzaStoreContext _db; 10 | 11 | public PizzasController(PizzaStoreContext db) 12 | { 13 | _db = db; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Server/PizzasController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | [Route("pizzas")] 6 | [ApiController] 7 | public class PizzasController : Controller 8 | { 9 | private readonly PizzaStoreContext _db; 10 | 11 | public PizzasController(PizzaStoreContext db) 12 | { 13 | _db = db; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Server/PizzasController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | [Route("pizzas")] 6 | [ApiController] 7 | public class PizzasController : Controller 8 | { 9 | private readonly PizzaStoreContext _db; 10 | 11 | public PizzasController(PizzaStoreContext db) 12 | { 13 | _db = db; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/App.razor: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Sorry, there's nothing at this address.
8 |
9 |
10 |
11 | -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/App.razor: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Sorry, there's nothing at this address.
8 |
9 |
10 |
11 | -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Server/PizzasController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | [Route("pizzas")] 6 | [ApiController] 7 | public class PizzasController : Controller 8 | { 9 | private readonly PizzaStoreContext _db; 10 | 11 | public PizzasController(PizzaStoreContext db) 12 | { 13 | _db = db; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Server/PizzasController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | [Route("pizzas")] 6 | [ApiController] 7 | public class PizzasController : Controller 8 | { 9 | private readonly PizzaStoreContext _db; 10 | 11 | public PizzasController(PizzaStoreContext db) 12 | { 13 | _db = db; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Shared/NotificationSubscription.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | public class NotificationSubscription 4 | { 5 | public int NotificationSubscriptionId { get; set; } 6 | 7 | public string UserId { get; set; } 8 | 9 | public string Url { get; set; } 10 | 11 | public string P256dh { get; set; } 12 | 13 | public string Auth { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/App.razor: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Sorry, there's nothing at this address.
8 |
9 |
10 |
11 | -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/Shared/MainLayout.razor: -------------------------------------------------------------------------------- 1 | @inherits LayoutComponentBase 2 | 3 |
4 | 7 | 8 | 9 | 10 |
Get Pizza
11 |
12 |
13 | 14 |
15 | @Body 16 |
-------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Client/Shared/MainLayout.razor: -------------------------------------------------------------------------------- 1 | @inherits LayoutComponentBase 2 | 3 |
4 | 7 | 8 | 9 | 10 |
Get Pizza
11 |
12 |
13 | 14 |
15 | @Body 16 |
-------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Server/PizzasController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | [Route("pizzas")] 6 | [ApiController] 7 | public class PizzasController : Controller 8 | { 9 | private readonly PizzaStoreContext _db; 10 | 11 | public PizzasController(PizzaStoreContext db) 12 | { 13 | _db = db; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Shared/BlazingPizza.Shared.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | BlazingPizza 6 | 9.0 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/App.razor: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Sorry, there's nothing at this address.
8 |
9 |
10 |
11 | -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/App.razor: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Sorry, there's nothing at this address.
8 |
9 |
10 |
11 | -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Server/PizzasController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace BlazingPizza.Server 4 | { 5 | [Route("pizzas")] 6 | [ApiController] 7 | public class PizzasController : Controller 8 | { 9 | private readonly PizzaStoreContext _db; 10 | 11 | public PizzasController(PizzaStoreContext db) 12 | { 13 | _db = db; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Shared/Services/IAuthenticationViewComponentTypeProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace BlazingPizza.Services 9 | { 10 | public interface IAuthenticationViewComponentTypeProvider 11 | { 12 | public Type GetAuthenticationViewComponentType(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Shared/Services/IAuthenticationViewComponentTypeProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace BlazingPizza.Services 9 | { 10 | public interface IAuthenticationViewComponentTypeProvider 11 | { 12 | public Type GetAuthenticationViewComponentType(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Shared/Services/IAuthenticationViewComponentTypeProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace BlazingPizza.Services 9 | { 10 | public interface IAuthenticationViewComponentTypeProvider 11 | { 12 | public Type GetAuthenticationViewComponentType(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Shared/BlazingPizza.Shared.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | BlazingPizza 6 | 9.0 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Shared/BlazingPizza.Shared.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | BlazingPizza 6 | 9.0 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Shared/BlazingPizza.Shared.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | BlazingPizza 6 | 9.0 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Shared/Services/IAuthenticationViewComponentTypeProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace BlazingPizza.Services 9 | { 10 | public interface IAuthenticationViewComponentTypeProvider 11 | { 12 | public Type GetAuthenticationViewComponentType(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Shared/BlazingPizza.Shared.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | BlazingPizza 6 | 9.0 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Shared/BlazingPizza.Shared.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | BlazingPizza 6 | 9.0 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Shared/BlazingPizza.Shared.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | BlazingPizza 6 | 9.0 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Shared/BlazingPizza.Shared.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | BlazingPizza 6 | 9.0 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Shared/BlazingPizza.Shared.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | BlazingPizza 6 | 9.0 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/BlazingPizza.Tests/ComponentLibrary/OrderReviewTests.razor: -------------------------------------------------------------------------------- 1 | @inherits TestContext 2 | @code 3 | { 4 | [Theory, AutoData] 5 | public void OrderView_Lists_All_Toppings_In_Per_Pizza(Order order) 6 | { 7 | var totalTopping = order.Pizzas.SelectMany(x=>x.Toppings).Count(); 8 | var cut = Render(@); 9 | 10 | var toppings = cut.FindAll("ul li"); 11 | 12 | toppings.Should().HaveCount(totalTopping); 13 | } 14 | } -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Shared/BlazingPizza.Shared.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | BlazingPizza 6 | 9.0 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Shared/NotificationSubscription.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BlazingPizza 4 | { 5 | public class NotificationSubscription 6 | { 7 | public int NotificationSubscriptionId { get; set; } 8 | 9 | public string UserId { get; set; } 10 | 11 | public string Url { get; set; } 12 | 13 | public string P256dh { get; set; } 14 | 15 | public string Auth { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Shared/NotificationSubscription.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BlazingPizza 4 | { 5 | public class NotificationSubscription 6 | { 7 | public int NotificationSubscriptionId { get; set; } 8 | 9 | public string UserId { get; set; } 10 | 11 | public string Url { get; set; } 12 | 13 | public string P256dh { get; set; } 14 | 15 | public string Auth { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Shared/NotificationSubscription.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BlazingPizza 4 | { 5 | public class NotificationSubscription 6 | { 7 | public int NotificationSubscriptionId { get; set; } 8 | 9 | public string UserId { get; set; } 10 | 11 | public string Url { get; set; } 12 | 13 | public string P256dh { get; set; } 14 | 15 | public string Auth { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Shared/NotificationSubscription.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BlazingPizza 4 | { 5 | public class NotificationSubscription 6 | { 7 | public int NotificationSubscriptionId { get; set; } 8 | 9 | public string UserId { get; set; } 10 | 11 | public string Url { get; set; } 12 | 13 | public string P256dh { get; set; } 14 | 15 | public string Auth { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Tests/ComponentLibrary/OrderReviewTests.razor: -------------------------------------------------------------------------------- 1 | @inherits TestContext 2 | @code 3 | { 4 | [Theory, AutoData] 5 | public void OrderView_Lists_All_Toppings_In_Per_Pizza(Order order) 6 | { 7 | var totalTopping = order.Pizzas.SelectMany(x=>x.Toppings).Count(); 8 | var cut = Render(@); 9 | 10 | var toppings = cut.FindAll("ul li"); 11 | 12 | toppings.Should().HaveCount(totalTopping); 13 | } 14 | } -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Shared/NotificationSubscription.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BlazingPizza 4 | { 5 | public class NotificationSubscription 6 | { 7 | public int NotificationSubscriptionId { get; set; } 8 | 9 | public string UserId { get; set; } 10 | 11 | public string Url { get; set; } 12 | 13 | public string P256dh { get; set; } 14 | 15 | public string Auth { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Tests/ComponentLibrary/OrderReviewTests.razor: -------------------------------------------------------------------------------- 1 | @inherits TestContext 2 | @code 3 | { 4 | [Theory, AutoData] 5 | public void OrderView_Lists_All_Toppings_In_Per_Pizza(Order order) 6 | { 7 | var totalTopping = order.Pizzas.SelectMany(x=>x.Toppings).Count(); 8 | var cut = Render(@); 9 | 10 | var toppings = cut.FindAll("ul li"); 11 | 12 | toppings.Should().HaveCount(totalTopping); 13 | } 14 | } -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Shared/NotificationSubscription.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BlazingPizza 4 | { 5 | public class NotificationSubscription 6 | { 7 | public int NotificationSubscriptionId { get; set; } 8 | 9 | public string UserId { get; set; } 10 | 11 | public string Url { get; set; } 12 | 13 | public string P256dh { get; set; } 14 | 15 | public string Auth { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Tests/ComponentLibrary/OrderReviewTests.razor: -------------------------------------------------------------------------------- 1 | @inherits TestContext 2 | @code 3 | { 4 | [Theory, AutoData] 5 | public void OrderView_Lists_All_Toppings_In_Per_Pizza(Order order) 6 | { 7 | var totalTopping = order.Pizzas.SelectMany(x=>x.Toppings).Count(); 8 | var cut = Render(@); 9 | 10 | var toppings = cut.FindAll("ul li"); 11 | 12 | toppings.Should().HaveCount(totalTopping); 13 | } 14 | } -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Tests/ComponentLibrary/OrderReviewTests.razor: -------------------------------------------------------------------------------- 1 | @inherits TestContext 2 | @code 3 | { 4 | [Theory, AutoData] 5 | public void OrderView_Lists_All_Toppings_In_Per_Pizza(Order order) 6 | { 7 | var totalTopping = order.Pizzas.SelectMany(x=>x.Toppings).Count(); 8 | var cut = Render(@); 9 | 10 | var toppings = cut.FindAll("ul li"); 11 | 12 | toppings.Should().HaveCount(totalTopping); 13 | } 14 | } -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Shared/NotificationSubscription.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BlazingPizza 4 | { 5 | public class NotificationSubscription 6 | { 7 | public int NotificationSubscriptionId { get; set; } 8 | 9 | public string UserId { get; set; } 10 | 11 | public string Url { get; set; } 12 | 13 | public string P256dh { get; set; } 14 | 15 | public string Auth { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Tests/ComponentLibrary/OrderReviewTests.razor: -------------------------------------------------------------------------------- 1 | @inherits TestContext 2 | @code 3 | { 4 | [Theory, AutoData] 5 | public void OrderView_Lists_All_Toppings_In_Per_Pizza(Order order) 6 | { 7 | var totalTopping = order.Pizzas.SelectMany(x=>x.Toppings).Count(); 8 | var cut = Render(@); 9 | 10 | var toppings = cut.FindAll("ul li"); 11 | 12 | toppings.Should().HaveCount(totalTopping); 13 | } 14 | } -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Shared/NotificationSubscription.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BlazingPizza 4 | { 5 | public class NotificationSubscription 6 | { 7 | public int NotificationSubscriptionId { get; set; } 8 | 9 | public string UserId { get; set; } 10 | 11 | public string Url { get; set; } 12 | 13 | public string P256dh { get; set; } 14 | 15 | public string Auth { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Tests/ComponentLibrary/OrderReviewTests.razor: -------------------------------------------------------------------------------- 1 | @inherits TestContext 2 | @code 3 | { 4 | [Theory, AutoData] 5 | public void OrderView_Lists_All_Toppings_In_Per_Pizza(Order order) 6 | { 7 | var totalTopping = order.Pizzas.SelectMany(x=>x.Toppings).Count(); 8 | var cut = Render(@); 9 | 10 | var toppings = cut.FindAll("ul li"); 11 | 12 | toppings.Should().HaveCount(totalTopping); 13 | } 14 | } -------------------------------------------------------------------------------- /Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6.0.6 4 | 6.0.0 5 | 6.0.6 6 | 6.0.6 7 | 6.0.0 8 | 9 | 10 | net6.0 11 | 10.0 12 | 13 | 14 | -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Shared/NotificationSubscription.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BlazingPizza 4 | { 5 | public class NotificationSubscription 6 | { 7 | public int NotificationSubscriptionId { get; set; } 8 | 9 | public string UserId { get; set; } 10 | 11 | public string Url { get; set; } 12 | 13 | public string P256dh { get; set; } 14 | 15 | public string Auth { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Tests/ComponentLibrary/OrderReviewTests.razor: -------------------------------------------------------------------------------- 1 | @inherits TestContext 2 | @code 3 | { 4 | [Theory, AutoData] 5 | public void OrderView_Lists_All_Toppings_In_Per_Pizza(Order order) 6 | { 7 | var totalTopping = order.Pizzas.SelectMany(x=>x.Toppings).Count(); 8 | var cut = Render(@); 9 | 10 | var toppings = cut.FindAll("ul li"); 11 | 12 | toppings.Should().HaveCount(totalTopping); 13 | } 14 | } -------------------------------------------------------------------------------- /src/BlazingPizza.ComponentsLibrary/PizzaCard.razor: -------------------------------------------------------------------------------- 1 |
  • 2 |
    3 | @Special.Name 4 | @Special.Description 5 | @Special.GetFormattedBasePrice() 6 |
    7 |
  • 8 | 9 | @code { 10 | [Parameter] public PizzaSpecial Special { get; set; } 11 | [Parameter] public EventCallback OnClick { get; set; } 12 | } -------------------------------------------------------------------------------- /src/BlazingPizza.Tests/TestDoubles/DummyNavigationInterception.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore.Components.Routing; 7 | 8 | namespace BlazingPizza.TestDoubles 9 | { 10 | public class DummyNavigationInterception : INavigationInterception 11 | { 12 | public Task EnableNavigationInterceptionAsync() 13 | { 14 | return Task.CompletedTask; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /docs/00-get-started.md: -------------------------------------------------------------------------------- 1 | # Get started 2 | 3 | In this session, you'll setup your machine for Blazor development and build your first Blazor app. 4 | 5 | ## Setup 6 | 7 | To get started with Blazor, follow the instructions on https://aka.ms/blazor-getting-started. 8 | 9 | ## Build your first app 10 | 11 | Once you have your first Blazor app running, try [building your first Blazor app](https://docs.microsoft.com/aspnet/core/tutorials/build-your-first-blazor-app). 12 | 13 | Next up - [Components and layout](01-components-and-layout.md) 14 | -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Shared/Address.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BlazingPizza 4 | { 5 | public class Address 6 | { 7 | public int Id { get; set; } 8 | 9 | public string Name { get; set; } 10 | 11 | public string Line1 { get; set; } 12 | 13 | public string Line2 { get; set; } 14 | 15 | public string City { get; set; } 16 | 17 | public string Region { get; set; } 18 | 19 | public string PostalCode { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.ComponentsLibrary/PizzaCard.razor: -------------------------------------------------------------------------------- 1 |
  • 2 |
    3 | @Special.Name 4 | @Special.Description 5 | @Special.GetFormattedBasePrice() 6 |
    7 |
  • 8 | 9 | @code { 10 | [Parameter] public PizzaSpecial Special { get; set; } 11 | [Parameter] public EventCallback OnClick { get; set; } 12 | } -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.ComponentsLibrary/PizzaCard.razor: -------------------------------------------------------------------------------- 1 |
  • 2 |
    3 | @Special.Name 4 | @Special.Description 5 | @Special.GetFormattedBasePrice() 6 |
    7 |
  • 8 | 9 | @code { 10 | [Parameter] public PizzaSpecial Special { get; set; } 11 | [Parameter] public EventCallback OnClick { get; set; } 12 | } -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.ComponentsLibrary/PizzaCard.razor: -------------------------------------------------------------------------------- 1 |
  • 2 |
    3 | @Special.Name 4 | @Special.Description 5 | @Special.GetFormattedBasePrice() 6 |
    7 |
  • 8 | 9 | @code { 10 | [Parameter] public PizzaSpecial Special { get; set; } 11 | [Parameter] public EventCallback OnClick { get; set; } 12 | } -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.ComponentsLibrary/PizzaCard.razor: -------------------------------------------------------------------------------- 1 |
  • 2 |
    3 | @Special.Name 4 | @Special.Description 5 | @Special.GetFormattedBasePrice() 6 |
    7 |
  • 8 | 9 | @code { 10 | [Parameter] public PizzaSpecial Special { get; set; } 11 | [Parameter] public EventCallback OnClick { get; set; } 12 | } -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.ComponentsLibrary/PizzaCard.razor: -------------------------------------------------------------------------------- 1 |
  • 2 |
    3 | @Special.Name 4 | @Special.Description 5 | @Special.GetFormattedBasePrice() 6 |
    7 |
  • 8 | 9 | @code { 10 | [Parameter] public PizzaSpecial Special { get; set; } 11 | [Parameter] public EventCallback OnClick { get; set; } 12 | } -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Shared/Address.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BlazingPizza 4 | { 5 | public class Address 6 | { 7 | public int Id { get; set; } 8 | 9 | public string Name { get; set; } 10 | 11 | public string Line1 { get; set; } 12 | 13 | public string Line2 { get; set; } 14 | 15 | public string City { get; set; } 16 | 17 | public string Region { get; set; } 18 | 19 | public string PostalCode { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Shared/Address.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BlazingPizza 4 | { 5 | public class Address 6 | { 7 | public int Id { get; set; } 8 | 9 | public string Name { get; set; } 10 | 11 | public string Line1 { get; set; } 12 | 13 | public string Line2 { get; set; } 14 | 15 | public string City { get; set; } 16 | 17 | public string Region { get; set; } 18 | 19 | public string PostalCode { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.ComponentsLibrary/PizzaCard.razor: -------------------------------------------------------------------------------- 1 |
  • 2 |
    3 | @Special.Name 4 | @Special.Description 5 | @Special.GetFormattedBasePrice() 6 |
    7 |
  • 8 | 9 | @code { 10 | [Parameter] public PizzaSpecial Special { get; set; } 11 | [Parameter] public EventCallback OnClick { get; set; } 12 | } -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.ComponentsLibrary/PizzaCard.razor: -------------------------------------------------------------------------------- 1 |
  • 2 |
    3 | @Special.Name 4 | @Special.Description 5 | @Special.GetFormattedBasePrice() 6 |
    7 |
  • 8 | 9 | @code { 10 | [Parameter] public PizzaSpecial Special { get; set; } 11 | [Parameter] public EventCallback OnClick { get; set; } 12 | } -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Shared/Address.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BlazingPizza 4 | { 5 | public class Address 6 | { 7 | public int Id { get; set; } 8 | 9 | public string Name { get; set; } 10 | 11 | public string Line1 { get; set; } 12 | 13 | public string Line2 { get; set; } 14 | 15 | public string City { get; set; } 16 | 17 | public string Region { get; set; } 18 | 19 | public string PostalCode { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.ComponentsLibrary/PizzaCard.razor: -------------------------------------------------------------------------------- 1 |
  • 2 |
    3 | @Special.Name 4 | @Special.Description 5 | @Special.GetFormattedBasePrice() 6 |
    7 |
  • 8 | 9 | @code { 10 | [Parameter] public PizzaSpecial Special { get; set; } 11 | [Parameter] public EventCallback OnClick { get; set; } 12 | } -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Tests/TestDoubles/DummyNavigationInterception.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore.Components.Routing; 7 | 8 | namespace BlazingPizza.TestDoubles 9 | { 10 | public class DummyNavigationInterception : INavigationInterception 11 | { 12 | public Task EnableNavigationInterceptionAsync() 13 | { 14 | return Task.CompletedTask; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Tests/TestDoubles/DummyNavigationInterception.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore.Components.Routing; 7 | 8 | namespace BlazingPizza.TestDoubles 9 | { 10 | public class DummyNavigationInterception : INavigationInterception 11 | { 12 | public Task EnableNavigationInterceptionAsync() 13 | { 14 | return Task.CompletedTask; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Shared/Address.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BlazingPizza 4 | { 5 | public class Address 6 | { 7 | public int Id { get; set; } 8 | 9 | public string Name { get; set; } 10 | 11 | public string Line1 { get; set; } 12 | 13 | public string Line2 { get; set; } 14 | 15 | public string City { get; set; } 16 | 17 | public string Region { get; set; } 18 | 19 | public string PostalCode { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.ComponentsLibrary/PizzaCard.razor: -------------------------------------------------------------------------------- 1 |
  • 2 |
    3 | @Special.Name 4 | @Special.Description 5 | @Special.GetFormattedBasePrice() 6 |
    7 |
  • 8 | 9 | @code { 10 | [Parameter] public PizzaSpecial Special { get; set; } 11 | [Parameter] public EventCallback OnClick { get; set; } 12 | } -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Tests/TestDoubles/DummyNavigationInterception.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore.Components.Routing; 7 | 8 | namespace BlazingPizza.TestDoubles 9 | { 10 | public class DummyNavigationInterception : INavigationInterception 11 | { 12 | public Task EnableNavigationInterceptionAsync() 13 | { 14 | return Task.CompletedTask; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Tests/TestDoubles/DummyNavigationInterception.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore.Components.Routing; 7 | 8 | namespace BlazingPizza.TestDoubles 9 | { 10 | public class DummyNavigationInterception : INavigationInterception 11 | { 12 | public Task EnableNavigationInterceptionAsync() 13 | { 14 | return Task.CompletedTask; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Client/Shared/MainLayout.razor: -------------------------------------------------------------------------------- 1 | @inherits LayoutComponentBase 2 | 3 |
    4 | 7 | 8 | 9 | 10 |
    Get Pizza
    11 |
    12 | 13 | 14 |
    My Orders
    15 |
    16 |
    17 | 18 |
    19 | @Body 20 |
    -------------------------------------------------------------------------------- /src/BlazingPizza.Shared/PizzaSpecial.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | /// 4 | /// Represents a pre-configured template for a pizza a user can order 5 | /// 6 | public class PizzaSpecial 7 | { 8 | public int Id { get; set; } 9 | 10 | public string Name { get; set; } 11 | 12 | public decimal BasePrice { get; set; } 13 | 14 | public string Description { get; set; } 15 | 16 | public string ImageUrl { get; set; } 17 | 18 | public string GetFormattedBasePrice() => BasePrice.ToString("0.00"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Client/Shared/MainLayout.razor: -------------------------------------------------------------------------------- 1 | @inherits LayoutComponentBase 2 | 3 |
    4 | 7 | 8 | 9 | 10 |
    Get Pizza
    11 |
    12 | 13 | 14 |
    My Orders
    15 |
    16 |
    17 | 18 |
    19 | @Body 20 |
    -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Client/Shared/MainLayout.razor: -------------------------------------------------------------------------------- 1 | @inherits LayoutComponentBase 2 | 3 |
    4 | 7 | 8 | 9 | 10 |
    Get Pizza
    11 |
    12 | 13 | 14 |
    My Orders
    15 |
    16 |
    17 | 18 |
    19 | @Body 20 |
    -------------------------------------------------------------------------------- /src/BlazingPizza.ComponentsLibrary/ConfiguredPizzaItem.razor: -------------------------------------------------------------------------------- 1 |
    2 | x 3 |
    @(Pizza.Size)" @Pizza.Special.Name
    4 |
      5 | @foreach (var topping in Pizza.Toppings) 6 | { 7 |
    • + @topping.Topping.Name
    • 8 | } 9 |
    10 |
    11 | @Pizza.GetFormattedTotalPrice() 12 |
    13 |
    14 | 15 | @code { 16 | [Parameter] public Pizza Pizza { get; set; } 17 | [Parameter] public EventCallback OnRemoved { get; set; } 18 | } -------------------------------------------------------------------------------- /src/BlazingPizza.ComponentsLibrary/OrderItem.razor: -------------------------------------------------------------------------------- 1 |
    2 |
    @Item.Order.CreatedTime.ToLongDateString()
    3 | Items: 4 | @Item.Order.Pizzas.Count(); 5 | Total price: 6 | £@Item.Order.GetFormattedTotalPrice() 7 |
    8 |
    9 | Status: @Item.StatusText 10 |
    11 | 16 | @code { 17 | [Parameter] public OrderWithStatus Item { get; set; } 18 | } -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Client/Pages/Index.razor: -------------------------------------------------------------------------------- 1 | @page "/" 2 | @inject IPizzaApi Api 3 | 4 |
    5 |
      6 | @if (specials is not null) 7 | { 8 | @foreach (var special in specials) 9 | { 10 | 11 | } 12 | } 13 |
    14 |
    15 | 16 | @code { 17 | IReadOnlyList specials; 18 | 19 | protected override async Task OnInitializedAsync() 20 | { 21 | specials = await Api.GetPizzaSpecialsAsync(); 22 | } 23 | } -------------------------------------------------------------------------------- /save-points/00-get-started/BlazingPizza.Shared/PizzaSpecial.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | /// 4 | /// Represents a pre-configured template for a pizza a user can order 5 | /// 6 | public class PizzaSpecial 7 | { 8 | public int Id { get; set; } 9 | 10 | public string Name { get; set; } 11 | 12 | public decimal BasePrice { get; set; } 13 | 14 | public string Description { get; set; } 15 | 16 | public string ImageUrl { get; set; } 17 | 18 | public string GetFormattedBasePrice() => BasePrice.ToString("0.00"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.Shared/PizzaSpecial.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | /// 4 | /// Represents a pre-configured template for a pizza a user can order 5 | /// 6 | public class PizzaSpecial 7 | { 8 | public int Id { get; set; } 9 | 10 | public string Name { get; set; } 11 | 12 | public decimal BasePrice { get; set; } 13 | 14 | public string Description { get; set; } 15 | 16 | public string ImageUrl { get; set; } 17 | 18 | public string GetFormattedBasePrice() => BasePrice.ToString("0.00"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.Shared/PizzaSpecial.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | /// 4 | /// Represents a pre-configured template for a pizza a user can order 5 | /// 6 | public class PizzaSpecial 7 | { 8 | public int Id { get; set; } 9 | 10 | public string Name { get; set; } 11 | 12 | public decimal BasePrice { get; set; } 13 | 14 | public string Description { get; set; } 15 | 16 | public string ImageUrl { get; set; } 17 | 18 | public string GetFormattedBasePrice() => BasePrice.ToString("0.00"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /save-points/01-Components-and-layout/BlazingPizza.Shared/PizzaSpecial.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | /// 4 | /// Represents a pre-configured template for a pizza a user can order 5 | /// 6 | public class PizzaSpecial 7 | { 8 | public int Id { get; set; } 9 | 10 | public string Name { get; set; } 11 | 12 | public decimal BasePrice { get; set; } 13 | 14 | public string Description { get; set; } 15 | 16 | public string ImageUrl { get; set; } 17 | 18 | public string GetFormattedBasePrice() => BasePrice.ToString("0.00"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /save-points/02-customize-a-pizza/BlazingPizza.ComponentsLibrary/ConfiguredPizzaItem.razor: -------------------------------------------------------------------------------- 1 |
    2 | x 3 |
    @(Pizza.Size)" @Pizza.Special.Name
    4 |
      5 | @foreach (var topping in Pizza.Toppings) 6 | { 7 |
    • + @topping.Topping.Name
    • 8 | } 9 |
    10 |
    11 | @Pizza.GetFormattedTotalPrice() 12 |
    13 |
    14 | 15 | @code { 16 | [Parameter] public Pizza Pizza { get; set; } 17 | [Parameter] public EventCallback OnRemoved { get; set; } 18 | } -------------------------------------------------------------------------------- /save-points/03-show-order-status/BlazingPizza.ComponentsLibrary/ConfiguredPizzaItem.razor: -------------------------------------------------------------------------------- 1 |
    2 | x 3 |
    @(Pizza.Size)" @Pizza.Special.Name
    4 |
      5 | @foreach (var topping in Pizza.Toppings) 6 | { 7 |
    • + @topping.Topping.Name
    • 8 | } 9 |
    10 |
    11 | @Pizza.GetFormattedTotalPrice() 12 |
    13 |
    14 | 15 | @code { 16 | [Parameter] public Pizza Pizza { get; set; } 17 | [Parameter] public EventCallback OnRemoved { get; set; } 18 | } -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.Shared/PizzaSpecial.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | /// 4 | /// Represents a pre-configured template for a pizza a user can order 5 | /// 6 | public class PizzaSpecial 7 | { 8 | public int Id { get; set; } 9 | 10 | public string Name { get; set; } 11 | 12 | public decimal BasePrice { get; set; } 13 | 14 | public string Description { get; set; } 15 | 16 | public string ImageUrl { get; set; } 17 | 18 | public string GetFormattedBasePrice() => BasePrice.ToString("0.00"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.Shared/PizzaSpecial.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | /// 4 | /// Represents a pre-configured template for a pizza a user can order 5 | /// 6 | public class PizzaSpecial 7 | { 8 | public int Id { get; set; } 9 | 10 | public string Name { get; set; } 11 | 12 | public decimal BasePrice { get; set; } 13 | 14 | public string Description { get; set; } 15 | 16 | public string ImageUrl { get; set; } 17 | 18 | public string GetFormattedBasePrice() => BasePrice.ToString("0.00"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.Shared/PizzaSpecial.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | /// 4 | /// Represents a pre-configured template for a pizza a user can order 5 | /// 6 | public class PizzaSpecial 7 | { 8 | public int Id { get; set; } 9 | 10 | public string Name { get; set; } 11 | 12 | public decimal BasePrice { get; set; } 13 | 14 | public string Description { get; set; } 15 | 16 | public string ImageUrl { get; set; } 17 | 18 | public string GetFormattedBasePrice() => BasePrice.ToString("0.00"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.Shared/PizzaSpecial.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | /// 4 | /// Represents a pre-configured template for a pizza a user can order 5 | /// 6 | public class PizzaSpecial 7 | { 8 | public int Id { get; set; } 9 | 10 | public string Name { get; set; } 11 | 12 | public decimal BasePrice { get; set; } 13 | 14 | public string Description { get; set; } 15 | 16 | public string ImageUrl { get; set; } 17 | 18 | public string GetFormattedBasePrice() => BasePrice.ToString("0.00"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.Shared/PizzaSpecial.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | /// 4 | /// Represents a pre-configured template for a pizza a user can order 5 | /// 6 | public class PizzaSpecial 7 | { 8 | public int Id { get; set; } 9 | 10 | public string Name { get; set; } 11 | 12 | public decimal BasePrice { get; set; } 13 | 14 | public string Description { get; set; } 15 | 16 | public string ImageUrl { get; set; } 17 | 18 | public string GetFormattedBasePrice() => BasePrice.ToString("0.00"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /save-points/07-javascript-interop/BlazingPizza.ComponentsLibrary/ConfiguredPizzaItem.razor: -------------------------------------------------------------------------------- 1 |
    2 | x 3 |
    @(Pizza.Size)" @Pizza.Special.Name
    4 |
      5 | @foreach (var topping in Pizza.Toppings) 6 | { 7 |
    • + @topping.Topping.Name
    • 8 | } 9 |
    10 |
    11 | @Pizza.GetFormattedTotalPrice() 12 |
    13 |
    14 | 15 | @code { 16 | [Parameter] public Pizza Pizza { get; set; } 17 | [Parameter] public EventCallback OnRemoved { get; set; } 18 | } -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.ComponentsLibrary/ConfiguredPizzaItem.razor: -------------------------------------------------------------------------------- 1 |
    2 | x 3 |
    @(Pizza.Size)" @Pizza.Special.Name
    4 |
      5 | @foreach (var topping in Pizza.Toppings) 6 | { 7 |
    • + @topping.Topping.Name
    • 8 | } 9 |
    10 |
    11 | @Pizza.GetFormattedTotalPrice() 12 |
    13 |
    14 | 15 | @code { 16 | [Parameter] public Pizza Pizza { get; set; } 17 | [Parameter] public EventCallback OnRemoved { get; set; } 18 | } -------------------------------------------------------------------------------- /save-points/08-templated-components/BlazingPizza.ComponentsLibrary/OrderItem.razor: -------------------------------------------------------------------------------- 1 |
    2 |
    @Item.Order.CreatedTime.ToLongDateString()
    3 | Items: 4 | @Item.Order.Pizzas.Count(); 5 | Total price: 6 | £@Item.Order.GetFormattedTotalPrice() 7 |
    8 |
    9 | Status: @Item.StatusText 10 |
    11 | 16 | @code { 17 | [Parameter] public OrderWithStatus Item { get; set; } 18 | } -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.ComponentsLibrary/ConfiguredPizzaItem.razor: -------------------------------------------------------------------------------- 1 |
    2 | x 3 |
    @(Pizza.Size)" @Pizza.Special.Name
    4 |
      5 | @foreach (var topping in Pizza.Toppings) 6 | { 7 |
    • + @topping.Topping.Name
    • 8 | } 9 |
    10 |
    11 | @Pizza.GetFormattedTotalPrice() 12 |
    13 |
    14 | 15 | @code { 16 | [Parameter] public Pizza Pizza { get; set; } 17 | [Parameter] public EventCallback OnRemoved { get; set; } 18 | } -------------------------------------------------------------------------------- /save-points/09-progressive-web-app/BlazingPizza.ComponentsLibrary/OrderItem.razor: -------------------------------------------------------------------------------- 1 |
    2 |
    @Item.Order.CreatedTime.ToLongDateString()
    3 | Items: 4 | @Item.Order.Pizzas.Count(); 5 | Total price: 6 | £@Item.Order.GetFormattedTotalPrice() 7 |
    8 |
    9 | Status: @Item.StatusText 10 |
    11 | 16 | @code { 17 | [Parameter] public OrderWithStatus Item { get; set; } 18 | } -------------------------------------------------------------------------------- /src/BlazingComponents/BlazingComponents.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | BlazingPizza.BlazingComponents 6 | annotations 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/BlazingPizza.Shared/Services/AuthenticationViewComponentTypeProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace BlazingPizza.Services 4 | { 5 | public class AuthenticationViewComponentTypeProvider : IAuthenticationViewComponentTypeProvider 6 | { 7 | private readonly Type authComponentType; 8 | 9 | public AuthenticationViewComponentTypeProvider(Type authComponentType) 10 | { 11 | this.authComponentType = authComponentType; 12 | } 13 | 14 | public Type GetAuthenticationViewComponentType() 15 | { 16 | return authComponentType; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /save-points/04-refactor-state-management/BlazingPizza.ComponentsLibrary/ConfiguredPizzaItem.razor: -------------------------------------------------------------------------------- 1 |
    2 | x 3 |
    @(Pizza.Size)" @Pizza.Special.Name
    4 |
      5 | @foreach (var topping in Pizza.Toppings) 6 | { 7 |
    • + @topping.Topping.Name
    • 8 | } 9 |
    10 |
    11 | @Pizza.GetFormattedTotalPrice() 12 |
    13 |
    14 | 15 | @code { 16 | [Parameter] public Pizza Pizza { get; set; } 17 | [Parameter] public EventCallback OnRemoved { get; set; } 18 | } -------------------------------------------------------------------------------- /save-points/05-checkout-with-validation/BlazingPizza.ComponentsLibrary/ConfiguredPizzaItem.razor: -------------------------------------------------------------------------------- 1 |
    2 | x 3 |
    @(Pizza.Size)" @Pizza.Special.Name
    4 |
      5 | @foreach (var topping in Pizza.Toppings) 6 | { 7 |
    • + @topping.Topping.Name
    • 8 | } 9 |
    10 |
    11 | @Pizza.GetFormattedTotalPrice() 12 |
    13 |
    14 | 15 | @code { 16 | [Parameter] public Pizza Pizza { get; set; } 17 | [Parameter] public EventCallback OnRemoved { get; set; } 18 | } -------------------------------------------------------------------------------- /save-points/06-authentication-and-authorization/BlazingPizza.Shared/PizzaSpecial.cs: -------------------------------------------------------------------------------- 1 | namespace BlazingPizza 2 | { 3 | /// 4 | /// Represents a pre-configured template for a pizza a user can order 5 | /// 6 | public class PizzaSpecial 7 | { 8 | public int Id { get; set; } 9 | 10 | public string Name { get; set; } 11 | 12 | public decimal BasePrice { get; set; } 13 | 14 | public string Description { get; set; } 15 | 16 | public string ImageUrl { get; set; } 17 | 18 | public string GetFormattedBasePrice() => BasePrice.ToString("0.00"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/BlazingPizza.ComponentsLibrary/Map/Map.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.JSInterop 2 | @inject IJSRuntime JSRuntime 3 | 4 |
    5 | 6 | @code { 7 | string elementId = $"map-{Guid.NewGuid().ToString("D")}"; 8 | 9 | [Parameter] public double Zoom { get; set; } 10 | [Parameter] public List Markers { get; set; } 11 | 12 | protected async override Task OnAfterRenderAsync(bool firstRender) 13 | { 14 | await JSRuntime.InvokeVoidAsync( 15 | "deliveryMap.showOrUpdate", 16 | elementId, 17 | Markers); 18 | } 19 | } 20 | --------------------------------------------------------------------------------