├── 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 |