├── .env ├── .gitattributes ├── .gitignore ├── LICENSE ├── NuGet.config ├── README.md ├── _docker ├── rabbitmq │ ├── Dockerfile.nanowin │ ├── enabled_plugins │ └── rabbitmq.config └── redis │ └── Dockerfile.nanowin ├── cli-linux ├── build-bits-linux.sh ├── docker-compose.local.build.yml └── prepare-spa-app.sh ├── cli-mac └── build-bits.sh ├── cli-windows ├── add-firewall-rules-for-sts-auth-thru-docker.ps1 ├── build-bits-simple.ps1 ├── build-bits.ps1 ├── delete-images.ps1 ├── start-external.ps1 └── start-windows-containers.ps1 ├── docker-compose-external.override.yml ├── docker-compose-external.yml ├── docker-compose-windows.override.yml ├── docker-compose-windows.prod.yml ├── docker-compose-windows.yml ├── docker-compose.ci.build.yml ├── docker-compose.dcproj ├── docker-compose.override.yml ├── docker-compose.prod.yml ├── docker-compose.vs.debug.yml ├── docker-compose.vs.release.yml ├── docker-compose.yml ├── eShopOnContainers-MobileApps.sln ├── eShopOnContainers-ServicesAndWebApps.sln ├── eShopOnContainers.sln ├── hosts ├── img ├── Bower_and_Gulp_setup.png ├── Generating_Docker_Images.png ├── Multiple-Distributed-Dependencies.png ├── Node_setup_for_npm.png ├── docker-compose-up-1.png ├── docker-compose-up-2.png ├── docker-ps-with-all-microservices.png ├── docker_settings.png ├── docker_settings_shared_drives.png ├── eShopOnContainers_Architecture_Diagram.png ├── eShopOnContainers_Architecture_Diagram_old.png ├── eShopOnContainers_Types_Of_Microservices.png ├── ebook_arch_dev_microservices_containers_cover.png ├── ebook_containers_lifecycle.png ├── eshop-webmvc-app-screenshot.png ├── eshop-webspa-app-screenshot.png ├── eshop_cover.png ├── eshop_logo.png ├── exploring-to-production-ready.png ├── firewall-rule-for-eshop.png ├── list-of-images.png ├── login-demo-user.png ├── spa │ ├── installing_npm_node.png │ ├── npm-rebuild-node-sass.png │ ├── npm-run-build.png │ ├── npm-versions-powershell.png │ ├── vs-tools-path-custom-node.png │ └── vs-tools-path-original.png ├── vs-solution-structure.png ├── vs2017 │ ├── github-clone-branch.png │ ├── vs2017_additional_mobile_workloads.png │ ├── vs2017_server_workload.png │ └── xamarin-workload-options.png ├── xamarin-enterprise-patterns-ebook-cover-small.png ├── xamarin-mobile-App.png ├── xamarin-settings.png └── xamarin │ └── fix-hyperv-for-issue-xamarin-app-minimize-in-vs-android-emulator.png ├── src ├── BuildingBlocks │ ├── EventBus │ │ ├── EventBus │ │ │ ├── Abstractions │ │ │ │ ├── IEventBus.cs │ │ │ │ └── IIntegrationEventHandler.cs │ │ │ ├── EventBus.csproj │ │ │ └── Events │ │ │ │ └── IntegrationEvent.cs │ │ ├── EventBusRabbitMQ │ │ │ ├── DefaultRabbitMQPersisterConnection.cs │ │ │ ├── EventBusRabbitMQ.cs │ │ │ ├── EventBusRabbitMQ.csproj │ │ │ └── IRabbitMQPersisterConnection.cs │ │ └── IntegrationEventLogEF │ │ │ ├── EventStateEnum.cs │ │ │ ├── IntegrationEventLogContext.cs │ │ │ ├── IntegrationEventLogEF.csproj │ │ │ ├── IntegrationEventLogEntry.cs │ │ │ ├── Services │ │ │ ├── IIntegrationEventLogService.cs │ │ │ └── IntegrationEventLogService.cs │ │ │ └── Utilities │ │ │ └── ResilientTransaction.cs │ ├── HealthChecks │ │ └── src │ │ │ ├── Microsoft.AspNetCore.HealthChecks │ │ │ ├── HealthCheckMiddleware.cs │ │ │ ├── HealthCheckStartupFilter.cs │ │ │ ├── HealthCheckWebHostBuilderExtension.cs │ │ │ ├── HealthCheckWebHostExtensions.cs │ │ │ └── Microsoft.AspNetCore.HealthChecks.csproj │ │ │ ├── Microsoft.Extensions.HealthChecks.Data │ │ │ ├── HealthCheckBuilderDataExtensions.cs │ │ │ └── Microsoft.Extensions.HealthChecks.Data.csproj │ │ │ ├── Microsoft.Extensions.HealthChecks │ │ │ ├── CheckStatus.cs │ │ │ ├── Checks │ │ │ │ ├── AddCheck.cs │ │ │ │ ├── NumericChecks.cs │ │ │ │ ├── SystemChecks.cs │ │ │ │ └── UrlChecks.cs │ │ │ ├── CompositeHealthCheckResult.cs │ │ │ ├── HealthCheck.cs │ │ │ ├── HealthCheckBuilder.cs │ │ │ ├── HealthCheckExtensions.cs │ │ │ ├── HealthCheckResult.cs │ │ │ ├── HealthCheckResults.cs │ │ │ ├── HealthCheckService.cs │ │ │ ├── HealthCheckServiceCollectionExtensions.cs │ │ │ ├── HealthCheckServiceExtensions.cs │ │ │ ├── IHealthCheck.cs │ │ │ ├── IHealthCheckResult.cs │ │ │ ├── IHealthCheckService.cs │ │ │ ├── Internal │ │ │ │ └── UrlChecker.cs │ │ │ └── Microsoft.Extensions.HealthChecks.csproj │ │ │ └── common │ │ │ └── Guard.cs │ └── Resilience │ │ └── Resilience.Http │ │ ├── IHttpClient.cs │ │ ├── Resilience.Http.csproj │ │ ├── ResiliencePolicy.cs │ │ ├── ResilientHttpClient.cs │ │ └── StandardHttpClient.cs ├── Mobile │ ├── .gitignore │ ├── AndroidSDKManager.ps1 │ ├── Images │ │ ├── AndroidEmulator.png │ │ ├── Auth.png │ │ ├── Catalog.png │ │ ├── Filter.png │ │ ├── MacAgent.png │ │ ├── OrderDetail.png │ │ ├── Preview.png │ │ ├── Profile.png │ │ ├── Settings.png │ │ ├── ShoppingCart.png │ │ ├── Unsupported52.0.png │ │ ├── Updates.png │ │ ├── could-not-connect-to-the-debugger.png │ │ ├── eShopOnContainers_Architecture_Diagram.png │ │ ├── launch-hyperv-manager.png │ │ ├── set-compatibility-vs-sml.png │ │ └── vm-settings.png │ ├── README.md │ ├── eShopOnContainers.Xamarin.Tests.sln │ ├── eShopOnContainers.Xamarin.sln │ └── eShopOnContainers │ │ ├── CommonResources │ │ └── Fonts │ │ │ ├── Montserrat-Bold.ttf │ │ │ ├── Montserrat-Regular.ttf │ │ │ └── SourceSansPro-Regular.ttf │ │ ├── eShopOnContainers.Core │ │ ├── Animations │ │ │ ├── Base │ │ │ │ ├── AnimationBase.cs │ │ │ │ └── EasingType.cs │ │ │ ├── FadeToAnimation.cs │ │ │ └── StoryBoard.cs │ │ ├── App.xaml │ │ ├── App.xaml.cs │ │ ├── Behaviors │ │ │ ├── Base │ │ │ │ └── BindableBehavior.cs │ │ │ ├── EventToCommandBehavior.cs │ │ │ └── LineColorBehavior.cs │ │ ├── Controls │ │ │ ├── AddBasketButton.xaml │ │ │ ├── AddBasketButton.xaml.cs │ │ │ ├── BindablePicker.cs │ │ │ ├── CustomTabbedPage.cs │ │ │ └── ToggleButton.cs │ │ ├── Converters │ │ │ ├── CountToBoolConverter.cs │ │ │ ├── DatetimeConverter.cs │ │ │ ├── FirstValidationErrorConverter.cs │ │ │ ├── ImageConverter.cs │ │ │ ├── InverseBoolConverter.cs │ │ │ ├── InverseCountToBoolConverter.cs │ │ │ ├── ItemTappedEventArgsConverter.cs │ │ │ ├── ItemsToHeightConverter.cs │ │ │ ├── ToUpperConverter.cs │ │ │ ├── WebNavigatedEventArgsConverter.cs │ │ │ └── WebNavigatingEventArgsConverter.cs │ │ ├── Effects │ │ │ └── EntryLineColorEffect.cs │ │ ├── Exceptions │ │ │ └── ServiceAuthenticationException.cs │ │ ├── Extensions │ │ │ └── ObservableExtension.cs │ │ ├── GlobalSettings.cs │ │ ├── Helpers │ │ │ ├── EasingHelper.cs │ │ │ ├── ServicesHelper.cs │ │ │ └── Settings.cs │ │ ├── Models │ │ │ ├── Basket │ │ │ │ ├── BasketItem.cs │ │ │ │ └── CustomerBasket.cs │ │ │ ├── Catalog │ │ │ │ ├── CatalogBrand.cs │ │ │ │ ├── CatalogItem.cs │ │ │ │ ├── CatalogRoot.cs │ │ │ │ └── CatalogType.cs │ │ │ ├── Navigation │ │ │ │ └── TabParameter.cs │ │ │ ├── Orders │ │ │ │ ├── CardType.CS │ │ │ │ ├── Order.cs │ │ │ │ ├── OrderItem.cs │ │ │ │ └── OrderState.cs │ │ │ └── User │ │ │ │ ├── Address.cs │ │ │ │ ├── LogoutParameter.cs │ │ │ │ ├── PaymentInfo.cs │ │ │ │ └── UserInfo.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Services │ │ │ ├── Basket │ │ │ │ ├── BasketMockService.cs │ │ │ │ ├── BasketService.cs │ │ │ │ └── IBasketService.cs │ │ │ ├── Catalog │ │ │ │ ├── CatalogMockService.cs │ │ │ │ ├── CatalogService.cs │ │ │ │ └── ICatalogService.cs │ │ │ ├── Common │ │ │ │ └── Common.cs │ │ │ ├── Dialog │ │ │ │ ├── DialogService.cs │ │ │ │ └── IDialogService.cs │ │ │ ├── Identity │ │ │ │ ├── IIdentityService.cs │ │ │ │ └── IdentityService.cs │ │ │ ├── Navigation │ │ │ │ ├── INavigationService.cs │ │ │ │ └── NavigationService.cs │ │ │ ├── OpenUrl │ │ │ │ ├── IOpenUrlService.cs │ │ │ │ └── OpenUrlService.cs │ │ │ ├── Order │ │ │ │ ├── IOrderService.cs │ │ │ │ ├── OrderMockService.cs │ │ │ │ └── OrderService.cs │ │ │ ├── RequestProvider │ │ │ │ ├── IRequestProvider.cs │ │ │ │ └── RequestProvider.cs │ │ │ └── User │ │ │ │ ├── IUserService.cs │ │ │ │ ├── UserMockService.cs │ │ │ │ └── UserService.cs │ │ ├── Triggers │ │ │ └── BeginAnimation.cs │ │ ├── Validations │ │ │ ├── IValidationRule.cs │ │ │ ├── IValidity.cs │ │ │ ├── IsNotNullOrEmptyRule.cs │ │ │ └── ValidatableObject.cs │ │ ├── ViewModels │ │ │ ├── Base │ │ │ │ ├── ExtendedBindableObject.cs │ │ │ │ ├── MessageKeys.cs │ │ │ │ ├── ViewModelBase.cs │ │ │ │ └── ViewModelLocator.cs │ │ │ ├── BasketViewModel.cs │ │ │ ├── CatalogViewModel.cs │ │ │ ├── CheckoutViewModel.cs │ │ │ ├── LoginViewModel.cs │ │ │ ├── MainViewModel.cs │ │ │ ├── OrderDetailViewModel.cs │ │ │ ├── ProfileViewModel.cs │ │ │ └── SettingsViewModel.cs │ │ ├── Views │ │ │ ├── BasketView.xaml │ │ │ ├── BasketView.xaml.cs │ │ │ ├── CatalogView.xaml │ │ │ ├── CatalogView.xaml.cs │ │ │ ├── CheckoutView.xaml │ │ │ ├── CheckoutView.xaml.cs │ │ │ ├── CustomNavigationView.xaml │ │ │ ├── CustomNavigationView.xaml.cs │ │ │ ├── FiltersView.xaml │ │ │ ├── FiltersView.xaml.cs │ │ │ ├── LoginView.xaml │ │ │ ├── LoginView.xaml.cs │ │ │ ├── MainView.xaml │ │ │ ├── MainView.xaml.cs │ │ │ ├── OrderDetailView.xaml │ │ │ ├── OrderDetailView.xaml.cs │ │ │ ├── ProfileView.xaml │ │ │ ├── ProfileView.xaml.cs │ │ │ ├── SettingsView.xaml │ │ │ ├── SettingsView.xaml.cs │ │ │ └── Templates │ │ │ │ ├── BasketItemTemplate.xaml │ │ │ │ ├── BasketItemTemplate.xaml.cs │ │ │ │ ├── OrderItemTemplate.xaml │ │ │ │ ├── OrderItemTemplate.xaml.cs │ │ │ │ ├── OrderTemplate.xaml │ │ │ │ ├── OrderTemplate.xaml.cs │ │ │ │ ├── ProductTemplate.xaml │ │ │ │ └── ProductTemplate.xaml.cs │ │ ├── app.config │ │ ├── eShopOnContainers.Core.csproj │ │ └── project.json │ │ ├── eShopOnContainers.Droid │ │ ├── Activities │ │ │ ├── MainActivity.cs │ │ │ └── SplashActivity.cs │ │ ├── Assets │ │ │ └── AboutAssets.txt │ │ ├── Effects │ │ │ └── EntryLineColorEffect.cs │ │ ├── Extensions │ │ │ └── ViewExtensions.cs │ │ ├── Helpers │ │ │ └── Settings.cs │ │ ├── Properties │ │ │ ├── AndroidManifest.xml │ │ │ └── AssemblyInfo.cs │ │ ├── Renderers │ │ │ ├── BadgeView.cs │ │ │ ├── CustomNavigationPageRenderer.cs │ │ │ ├── CustomTabbedPageRenderer.cs │ │ │ └── SlideDownMenuPageRenderer.cs │ │ ├── Resources │ │ │ ├── AboutResources.txt │ │ │ ├── Resource.Designer.cs │ │ │ ├── drawable-hdpi │ │ │ │ ├── app_settings.png │ │ │ │ ├── background.png │ │ │ │ ├── header_logo.png │ │ │ │ ├── icon.png │ │ │ │ ├── menu_cart.png │ │ │ │ ├── menu_filter.png │ │ │ │ ├── menu_profile.png │ │ │ │ ├── product_add.png │ │ │ │ ├── switch_off.png │ │ │ │ └── switch_on.png │ │ │ ├── drawable-xhdpi │ │ │ │ ├── app_settings.png │ │ │ │ ├── background.png │ │ │ │ ├── header_logo.png │ │ │ │ ├── icon.png │ │ │ │ ├── menu_cart.png │ │ │ │ ├── menu_filter.png │ │ │ │ ├── menu_profile.png │ │ │ │ ├── product_add.png │ │ │ │ ├── switch_off.png │ │ │ │ └── switch_on.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── app_settings.png │ │ │ │ ├── background.png │ │ │ │ ├── header_logo.png │ │ │ │ ├── icon.png │ │ │ │ ├── menu_cart.png │ │ │ │ ├── menu_filter.png │ │ │ │ ├── menu_profile.png │ │ │ │ ├── product_add.png │ │ │ │ ├── switch_off.png │ │ │ │ └── switch_on.png │ │ │ ├── drawable │ │ │ │ ├── banner.png │ │ │ │ ├── default_product.png │ │ │ │ ├── fake_product_01.png │ │ │ │ ├── fake_product_02.png │ │ │ │ ├── fake_product_03.png │ │ │ │ ├── fake_product_04.png │ │ │ │ ├── fake_product_05.png │ │ │ │ ├── icon.png │ │ │ │ ├── noimage.png │ │ │ │ └── splash_drawable.xml │ │ │ ├── layout │ │ │ │ ├── TabLayout.axml │ │ │ │ ├── Tabs.axml │ │ │ │ └── Toolbar.axml │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ ├── app.config │ │ ├── eShopOnContainers.Droid.csproj │ │ ├── eShopOnContainers.Droid.csproj.bak │ │ └── packages.config │ │ ├── eShopOnContainers.TestRunner.Droid │ │ ├── Assets │ │ │ └── AboutAssets.txt │ │ ├── MainActivity.cs │ │ ├── MainActivity.cs.txt │ │ ├── Properties │ │ │ ├── AndroidManifest.xml │ │ │ └── AssemblyInfo.cs │ │ ├── Resources │ │ │ ├── AboutResources.txt │ │ │ ├── Resource.Designer.cs │ │ │ ├── drawable │ │ │ │ └── Icon.png │ │ │ ├── layout │ │ │ │ └── Main.axml │ │ │ └── values │ │ │ │ └── Strings.xml │ │ ├── app.config │ │ ├── eShopOnContainers.TestRunner.Droid.csproj │ │ ├── eShopOnContainers.TestRunner.Droid.csproj.bak │ │ └── packages.config │ │ ├── eShopOnContainers.TestRunner.Windows │ │ ├── App.xaml │ │ ├── App.xaml.cs │ │ ├── Assets │ │ │ ├── LockScreenLogo.scale-200.png │ │ │ ├── SplashScreen.scale-200.png │ │ │ ├── Square150x150Logo.scale-200.png │ │ │ ├── Square44x44Logo.scale-200.png │ │ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png │ │ │ ├── StoreLogo.png │ │ │ └── Wide310x150Logo.scale-200.png │ │ ├── Package.appxmanifest │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ └── Default.rd.xml │ │ ├── eShopOnContainers.TestRunner.Windows.csproj │ │ └── project.json │ │ ├── eShopOnContainers.TestRunner.iOS │ │ ├── AppDelegate.cs │ │ ├── AppDelegate.cs.txt │ │ ├── Entitlements.plist │ │ ├── Info.plist │ │ ├── Main.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Resources │ │ │ └── LaunchScreen.xib │ │ ├── app.config │ │ ├── eShopOnContainers.TestRunner.iOS.csproj │ │ ├── eShopOnContainers.TestRunner.iOS.csproj.bak │ │ └── packages.config │ │ ├── eShopOnContainers.UITests │ │ ├── AppInitializer.cs │ │ ├── Tests.cs │ │ ├── app.config │ │ ├── eShopOnContainers.UITests.csproj │ │ └── packages.config │ │ ├── eShopOnContainers.UnitTests │ │ ├── BasketServiceTests.cs │ │ ├── CatalogServiceTests.cs │ │ ├── DummyTests.cs │ │ ├── OrdersServiceTests.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── app.config │ │ ├── eShopOnContainers.UnitTests.csproj │ │ └── packages.config │ │ ├── eShopOnContainers.Windows │ │ ├── App.xaml │ │ ├── App.xaml.cs │ │ ├── Assets │ │ │ ├── LockScreenLogo.scale-200.png │ │ │ ├── SplashScreen.scale-200.png │ │ │ ├── Square150x150Logo.scale-200.png │ │ │ ├── Square44x44Logo.scale-200.png │ │ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png │ │ │ ├── StoreLogo.png │ │ │ ├── Wide310x150Logo.scale-200.png │ │ │ ├── app_settings.png │ │ │ ├── banner.png │ │ │ ├── circle_button_background.png │ │ │ ├── default_product.png │ │ │ ├── fake_product_01.png │ │ │ ├── fake_product_02.png │ │ │ ├── fake_product_03.png │ │ │ ├── fake_product_04.png │ │ │ ├── fake_product_05.png │ │ │ ├── menu_cart.png │ │ │ ├── menu_filter.png │ │ │ ├── menu_profile.png │ │ │ ├── noimage.png │ │ │ ├── product_add.png │ │ │ ├── switchOff.png │ │ │ └── switchOn.png │ │ ├── Controls │ │ │ ├── TabItem.xaml │ │ │ └── TabItem.xaml.cs │ │ ├── Converters │ │ │ ├── TabBadgeColorConverter.cs │ │ │ ├── TabBadgeTextConverter.cs │ │ │ └── TabIconConverter.cs │ │ ├── Effects │ │ │ └── EntryLineColorEffect.cs │ │ ├── Extensions │ │ │ └── VisualTreeExtensions.cs │ │ ├── Helpers │ │ │ └── ColorHelper.cs │ │ ├── MainPage.xaml │ │ ├── MainPage.xaml.cs │ │ ├── Package.appxmanifest │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ └── Default.rd.xml │ │ ├── Renderers │ │ │ ├── CustomTabbedPageRenderer.cs │ │ │ └── SlideDownMenuPageRenderer.cs │ │ ├── eShopOnContainers.Windows.csproj │ │ └── project.json │ │ └── eShopOnContainers.iOS │ │ ├── AppDelegate.cs │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-76.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-Small-40.png │ │ │ ├── Icon-Small-40@2x.png │ │ │ ├── Icon-Small.png │ │ │ └── Icon-Small@2x.png │ │ └── LaunchImage.launchimage │ │ │ ├── Contents.json │ │ │ ├── Default-1242@3x.png │ │ │ ├── Default-568h@2x.png │ │ │ ├── Default-750@2x.png │ │ │ ├── Default-Portrait.png │ │ │ ├── Default-Portrait@2x.png │ │ │ ├── Default.png │ │ │ └── Default@2x.png │ │ ├── Effects │ │ └── EntryLineColorEffect.cs │ │ ├── Entitlements.plist │ │ ├── Helpers │ │ └── Settings.cs │ │ ├── Info.plist │ │ ├── Main.cs │ │ ├── Properties │ │ └── AssemblyInfo.cs │ │ ├── Renderers │ │ ├── CustomTabbedPageRenderer.cs │ │ └── SlideDownMenuPageRenderer.cs │ │ ├── Resources │ │ ├── Default-568h@2x.png │ │ ├── Default-Portrait.png │ │ ├── Default-Portrait@2x.png │ │ ├── Default.png │ │ ├── Default@2x.png │ │ ├── Icon-60@2x.png │ │ ├── Icon-60@3x.png │ │ ├── Icon-76.png │ │ ├── Icon-76@2x.png │ │ ├── Icon-Small-40.png │ │ ├── Icon-Small-40@2x.png │ │ ├── Icon-Small-40@3x.png │ │ ├── Icon-Small.png │ │ ├── Icon-Small@2x.png │ │ ├── Icon-Small@3x.png │ │ ├── LaunchScreen.storyboard │ │ ├── Logo.png │ │ ├── app_settings.png │ │ ├── app_settings@2x.png │ │ ├── app_settings@3x.png │ │ ├── banner.png │ │ ├── default_product.png │ │ ├── fake_product_01.png │ │ ├── fake_product_02.png │ │ ├── fake_product_03.png │ │ ├── fake_product_04.png │ │ ├── fake_product_05.png │ │ ├── menu_cart.png │ │ ├── menu_cart@2x.png │ │ ├── menu_cart@3x.png │ │ ├── menu_filter.png │ │ ├── menu_filter@2x.png │ │ ├── menu_filter@3x.png │ │ ├── menu_profile.png │ │ ├── menu_profile@2x.png │ │ ├── menu_profile@3x.png │ │ ├── noimage.png │ │ ├── product_add.png │ │ ├── product_add@2x.png │ │ ├── product_add@3x.png │ │ ├── switchOff.png │ │ ├── switchOff@2x.png │ │ ├── switchOff@3x.png │ │ ├── switchOn.png │ │ ├── switchOn@2x.png │ │ └── switchOn@3x.png │ │ ├── app.config │ │ ├── eShopOnContainers.iOS.csproj │ │ ├── iTunesArtwork │ │ ├── iTunesArtwork@2x │ │ └── packages.config ├── Services │ ├── Basket │ │ └── Basket.API │ │ │ ├── .dockerignore │ │ │ ├── Auth │ │ │ ├── Client │ │ │ │ ├── enable-token-client.js │ │ │ │ ├── oidc-token-manager.js │ │ │ │ └── popup.html │ │ │ └── Server │ │ │ │ ├── AuthorizationHeaderParameterOperationFilter.cs │ │ │ │ └── IdentitySecurityScheme.cs │ │ │ ├── Basket.API.csproj │ │ │ ├── BasketSettings.cs │ │ │ ├── Controllers │ │ │ ├── BasketController.cs │ │ │ └── HomeController.cs │ │ │ ├── Dockerfile │ │ │ ├── Dockerfile.nanowin │ │ │ ├── Infrastructure │ │ │ ├── ActionResults │ │ │ │ └── InternalServerErrorObjectResult.cs │ │ │ ├── Exceptions │ │ │ │ └── BasketDomainException.cs │ │ │ └── Filters │ │ │ │ └── HttpGlobalExceptionFilter.cs │ │ │ ├── IntegrationEvents │ │ │ ├── EventHandling │ │ │ │ ├── OrderStartedIntegrationEventHandler.cs │ │ │ │ └── ProductPriceChangedIntegrationEventHandler.cs │ │ │ └── Events │ │ │ │ ├── OrderStartedIntegrationEvent.cs │ │ │ │ └── ProductPriceChangedIntegrationEvent.cs │ │ │ ├── Model │ │ │ ├── Basket.cs │ │ │ ├── BasketItem.cs │ │ │ ├── IBasketRepository.cs │ │ │ └── RedisBasketRepository.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── README.md │ │ │ ├── Startup.cs │ │ │ ├── appsettings.json │ │ │ └── web.config │ ├── Catalog │ │ └── Catalog.API │ │ │ ├── .dockerignore │ │ │ ├── Catalog.API.csproj │ │ │ ├── CatalogSettings.cs │ │ │ ├── Controllers │ │ │ ├── CatalogController.cs │ │ │ ├── HomeController.cs │ │ │ └── PicController.cs │ │ │ ├── Dockerfile │ │ │ ├── Dockerfile.nanowin │ │ │ ├── Infrastructure │ │ │ ├── ActionResults │ │ │ │ └── InternalServerErrorObjectResult.cs │ │ │ ├── CatalogContext.cs │ │ │ ├── CatalogContextSeed.cs │ │ │ ├── CatalogMigrations │ │ │ │ ├── 20161103152832_Initial.Designer.cs │ │ │ │ ├── 20161103152832_Initial.cs │ │ │ │ ├── 20161103153420_UpdateTableNames.Designer.cs │ │ │ │ ├── 20161103153420_UpdateTableNames.cs │ │ │ │ ├── 20170314083211_AddEventTable.Designer.cs │ │ │ │ ├── 20170314083211_AddEventTable.cs │ │ │ │ ├── 20170316012921_RefactoringToIntegrationEventLog.Designer.cs │ │ │ │ ├── 20170316012921_RefactoringToIntegrationEventLog.cs │ │ │ │ ├── 20170316120022_RefactoringEventBusNamespaces.Designer.cs │ │ │ │ ├── 20170316120022_RefactoringEventBusNamespaces.cs │ │ │ │ ├── 20170322124244_RemoveIntegrationEventLogs.Designer.cs │ │ │ │ ├── 20170322124244_RemoveIntegrationEventLogs.cs │ │ │ │ └── CatalogContextModelSnapshot.cs │ │ │ ├── Exceptions │ │ │ │ └── CatalogDomainException.cs │ │ │ ├── Filters │ │ │ │ └── HttpGlobalExceptionFilter.cs │ │ │ └── IntegrationEventMigrations │ │ │ │ ├── 20170322145434_IntegrationEventInitial.Designer.cs │ │ │ │ ├── 20170322145434_IntegrationEventInitial.cs │ │ │ │ └── IntegrationEventLogContextModelSnapshot.cs │ │ │ ├── IntegrationEvents │ │ │ ├── CatalogIntegrationEventService.cs │ │ │ ├── EventHandling │ │ │ │ └── AnyFutureIntegrationEventHandler.cs.txt │ │ │ ├── Events │ │ │ │ └── ProductPriceChangedIntegrationEvent.cs │ │ │ └── ICatalogIntegrationEventService.cs │ │ │ ├── Model │ │ │ ├── CatalogBrand.cs │ │ │ ├── CatalogItem.cs │ │ │ └── CatalogType.cs │ │ │ ├── Pics │ │ │ ├── 1.png │ │ │ ├── 10.png │ │ │ ├── 11.png │ │ │ ├── 12.png │ │ │ ├── 2.png │ │ │ ├── 3.png │ │ │ ├── 4.png │ │ │ ├── 5.png │ │ │ ├── 6.png │ │ │ ├── 7.png │ │ │ ├── 8.png │ │ │ └── 9.png │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── README.md │ │ │ ├── Startup.cs │ │ │ ├── ViewModel │ │ │ └── PaginatedItemsViewModel.cs │ │ │ ├── settings.json │ │ │ └── web.config │ ├── Identity │ │ └── Identity.API │ │ │ ├── .bowerrc │ │ │ ├── .dockerignore │ │ │ ├── AppSettings.cs │ │ │ ├── Certificate │ │ │ └── Certificate.cs │ │ │ ├── Configuration │ │ │ └── Config.cs │ │ │ ├── Controllers │ │ │ ├── AccountController.cs │ │ │ ├── ConsentController.cs │ │ │ └── HomeController.cs │ │ │ ├── Data │ │ │ ├── ApplicationContextSeed.cs │ │ │ ├── ApplicationDbContext.cs │ │ │ └── Migrations │ │ │ │ ├── 20161019122215_Init_Scheme.Designer.cs │ │ │ │ ├── 20161019122215_Init_Scheme.cs │ │ │ │ ├── 20161020101725_extendProfile.Designer.cs │ │ │ │ ├── 20161020101725_extendProfile.cs │ │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── Dockerfile │ │ │ ├── Dockerfile.nanowin │ │ │ ├── Identity.API.csproj │ │ │ ├── Models │ │ │ ├── AccountViewModels │ │ │ │ ├── ConsentInputModel.cs │ │ │ │ ├── ConsentViewModel.cs │ │ │ │ ├── ExternalLoginConfirmationViewModel.cs │ │ │ │ ├── ForgotPasswordViewModel.cs │ │ │ │ ├── LoggedOutViewModel.cs │ │ │ │ ├── LoginViewModel.cs │ │ │ │ ├── LogoutViewModel.cs │ │ │ │ ├── RegisterViewModel.cs │ │ │ │ ├── ResetPasswordViewModel.cs │ │ │ │ ├── SendCodeViewModel.cs │ │ │ │ ├── VerifyCodeViewModel.cs │ │ │ │ └── _LoginViewModel.cs │ │ │ ├── ApplicationUser.cs │ │ │ ├── ErrorViewModel.cs │ │ │ └── ManageViewModels │ │ │ │ ├── AddPhoneNumberViewModel.cs │ │ │ │ ├── ChangePasswordViewModel.cs │ │ │ │ ├── ConfigureTwoFactorViewModel.cs │ │ │ │ ├── FactorViewModel.cs │ │ │ │ ├── IndexViewModel.cs │ │ │ │ ├── ManageLoginsViewModel.cs │ │ │ │ ├── RemoveLoginViewModel.cs │ │ │ │ ├── SetPasswordViewModel.cs │ │ │ │ └── VerifyPhoneNumberViewModel.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── README.md │ │ │ ├── Services │ │ │ ├── EFLoginService.cs │ │ │ ├── IEmailSender.cs │ │ │ ├── ILoginService.cs │ │ │ ├── IRedirectService.cs │ │ │ ├── ISmsSender.cs │ │ │ ├── MessageServices.cs │ │ │ ├── ProfileService.cs │ │ │ └── RedirectService.cs │ │ │ ├── Startup.cs │ │ │ ├── Views │ │ │ ├── Account │ │ │ │ ├── LoggedOut.cshtml │ │ │ │ ├── Login.cshtml │ │ │ │ ├── Logout.cshtml │ │ │ │ ├── Redirecting.cshtml │ │ │ │ └── Register.cshtml │ │ │ ├── Consent │ │ │ │ ├── Index.cshtml │ │ │ │ └── _ScopeListItem.cshtml │ │ │ ├── Home │ │ │ │ ├── About.cshtml │ │ │ │ ├── Contact.cshtml │ │ │ │ └── Index.cshtml │ │ │ ├── Shared │ │ │ │ ├── Error.cshtml │ │ │ │ ├── _Layout.cshtml │ │ │ │ ├── _LoginPartial.cshtml │ │ │ │ ├── _ValidationScriptsPartial.cshtml │ │ │ │ └── _ValidationSummary.cshtml │ │ │ ├── _ViewImports.cshtml │ │ │ └── _ViewStart.cshtml │ │ │ ├── appsettings.json │ │ │ ├── bower.json │ │ │ ├── bundleconfig.json │ │ │ ├── web.config │ │ │ └── wwwroot │ │ │ ├── _references.js │ │ │ ├── css │ │ │ ├── site.css │ │ │ └── site.min.css │ │ │ ├── favicon.ico │ │ │ ├── fonts │ │ │ ├── Montserrat-Bold.eot │ │ │ ├── Montserrat-Bold.svg │ │ │ ├── Montserrat-Bold.ttf │ │ │ ├── Montserrat-Bold.woff │ │ │ ├── Montserrat-Bold.woff2 │ │ │ ├── Montserrat-Regular.eot │ │ │ ├── Montserrat-Regular.svg │ │ │ ├── Montserrat-Regular.ttf │ │ │ ├── Montserrat-Regular.woff │ │ │ └── Montserrat-Regular.woff2 │ │ │ ├── icon.jpg │ │ │ ├── icon.png │ │ │ ├── images │ │ │ ├── arrow-down.png │ │ │ ├── arrow-right.svg │ │ │ ├── banner1.svg │ │ │ ├── banner2.svg │ │ │ ├── banner3.svg │ │ │ ├── banner4.svg │ │ │ ├── brand.PNG │ │ │ ├── brand_dark.PNG │ │ │ ├── cart.png │ │ │ ├── logout.PNG │ │ │ ├── main_banner.png │ │ │ ├── main_banner_text.png │ │ │ ├── main_banner_text.svg │ │ │ ├── my_orders.PNG │ │ │ └── refresh.svg │ │ │ └── js │ │ │ ├── site.js │ │ │ └── site.min.js │ └── Ordering │ │ ├── Ordering.API │ │ ├── .dockerignore │ │ ├── Application │ │ │ ├── Commands │ │ │ │ ├── CreateOrderCommand.cs │ │ │ │ ├── CreateOrderCommandHandler.cs │ │ │ │ ├── IdentifiedCommand.cs │ │ │ │ └── IdentifierCommandHandler.cs │ │ │ ├── Decorators │ │ │ │ ├── LogDecorator.cs │ │ │ │ └── ValidatorDecorator.cs │ │ │ ├── DomainEventHandlers │ │ │ │ ├── BuyerAndPaymentMethodVerified │ │ │ │ │ └── UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler.cs │ │ │ │ └── OrderStartedEvent │ │ │ │ │ ├── SendEmailToCustomerWhenOrderStartedDomainEventHandler.cs │ │ │ │ │ └── ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler.cs │ │ │ ├── Queries │ │ │ │ ├── IOrderQueries.cs │ │ │ │ └── OrderQueries.cs │ │ │ └── Validations │ │ │ │ ├── CreateOrderCommandValidator.cs │ │ │ │ └── IdentifierCommandValidator.cs │ │ ├── Controllers │ │ │ ├── HomeController.cs │ │ │ └── OrdersController.cs │ │ ├── Dockerfile │ │ ├── Dockerfile.nanowin │ │ ├── Infrastructure │ │ │ ├── ActionResults │ │ │ │ └── InternalServerErrorObjectResult.cs │ │ │ ├── Auth │ │ │ │ └── AuthorizationHeaderParameterOperationFilter.cs │ │ │ ├── AutofacModules │ │ │ │ ├── ApplicationModule.cs │ │ │ │ └── MediatorModule.cs │ │ │ ├── Filters │ │ │ │ └── HttpGlobalExceptionFilter.cs │ │ │ ├── IntegrationEventMigrations │ │ │ │ ├── 20170330131634_IntegrationEventInitial.Designer.cs │ │ │ │ ├── 20170330131634_IntegrationEventInitial.cs │ │ │ │ └── IntegrationEventLogContextModelSnapshot.cs │ │ │ ├── Middlewares │ │ │ │ ├── FailingMiddleware.cs │ │ │ │ ├── FailingMiddlewareAppBuilderExtensions.cs │ │ │ │ └── FailingOptions.cs │ │ │ ├── Migrations │ │ │ │ ├── 20170208181933_Initial.Designer.cs │ │ │ │ ├── 20170208181933_Initial.cs │ │ │ │ ├── 20170303085729_RequestsTable.Designer.cs │ │ │ │ ├── 20170303085729_RequestsTable.cs │ │ │ │ ├── 20170313100034_Domain_events.Designer.cs │ │ │ │ ├── 20170313100034_Domain_events.cs │ │ │ │ ├── 20170403082405_NoBuyerPropertyInOrder.Designer.cs │ │ │ │ ├── 20170403082405_NoBuyerPropertyInOrder.cs │ │ │ │ ├── 20170405110939_NoPaymentMethodPropertyInOrder.Designer.cs │ │ │ │ ├── 20170405110939_NoPaymentMethodPropertyInOrder.cs │ │ │ │ └── OrderingContextModelSnapshot.cs │ │ │ ├── OrderingContextSeed.cs │ │ │ └── Services │ │ │ │ ├── IIdentityService.cs │ │ │ │ └── IdentityService.cs │ │ ├── IntegrationEvents │ │ │ ├── Events │ │ │ │ └── OrderStartedIntegrationEvent.cs │ │ │ ├── IOrderingIntegrationEventService.cs │ │ │ └── OrderingIntegrationEventService.cs │ │ ├── Ordering.API.csproj │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── README.md │ │ ├── Startup.cs │ │ ├── settings.json │ │ └── web.config │ │ ├── Ordering.Domain │ │ ├── AggregatesModel │ │ │ ├── BuyerAggregate │ │ │ │ ├── Buyer.cs │ │ │ │ ├── CardType.cs │ │ │ │ ├── IBuyerRepository.cs │ │ │ │ └── PaymentMethod.cs │ │ │ └── OrderAggregate │ │ │ │ ├── Address.cs │ │ │ │ ├── IOrderRepository.cs │ │ │ │ ├── Order.cs │ │ │ │ ├── OrderItem.cs │ │ │ │ └── OrderStatus.cs │ │ ├── Events │ │ │ ├── BuyerPaymentMethodVerifiedDomainEvent.cs │ │ │ └── OrderStartedDomainEvent.cs │ │ ├── Exceptions │ │ │ └── OrderingDomainException.cs │ │ ├── Ordering.Domain.csproj │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── SeedWork │ │ │ ├── Entity.cs │ │ │ ├── Enumeration.cs │ │ │ ├── IAggregateRoot.cs │ │ │ ├── IRepository.cs │ │ │ ├── IUnitOfWork.cs │ │ │ └── ValueObject.cs │ │ └── Ordering.Infrastructure │ │ ├── Idempotency │ │ ├── ClientRequest.cs │ │ ├── IRequestManager.cs │ │ └── RequestManager.cs │ │ ├── MediatorExtension.cs │ │ ├── Ordering.Infrastructure.csproj │ │ ├── OrderingContext.cs │ │ ├── Properties │ │ └── AssemblyInfo.cs │ │ └── Repositories │ │ ├── BuyerRepository.cs │ │ └── OrderRepository.cs └── Web │ ├── Catalog.WebForms │ └── Catalog.WebForms │ │ ├── Catalog.WebForms.csproj │ │ ├── Default.aspx.cs │ │ ├── Global.asax.cs │ │ ├── Modules │ │ └── AutoFacHttpModule.cs │ │ ├── Web.config │ │ └── packages.config │ ├── WebMVC │ ├── .bowerrc │ ├── .dockerignore │ ├── AppSettings.cs │ ├── Controllers │ │ ├── AccountController.cs │ │ ├── CartController.cs │ │ ├── CatalogController.cs │ │ └── OrderController.cs │ ├── Dockerfile │ ├── Dockerfile.nanowin │ ├── Extensions │ │ ├── HttpClientExtensions.cs │ │ └── SessionExtensions.cs │ ├── Infrastructure │ │ ├── IResilientHttpClientFactory.cs │ │ └── ResilientHttpClientFactory.cs │ ├── Program.cs │ ├── Properties │ │ ├── PublishProfiles │ │ │ └── ToFile-publish.ps1 │ │ └── launchSettings.json │ ├── README.md │ ├── Services │ │ ├── BasketService.cs │ │ ├── CatalogService.cs │ │ ├── IBasketService.cs │ │ ├── ICatalogService.cs │ │ ├── IIdentityParser.cs │ │ ├── IOrderingService.cs │ │ ├── IdentityParser.cs │ │ └── OrderingService.cs │ ├── Startup.cs │ ├── ViewComponents │ │ ├── Cart.cs │ │ └── CartList.cs │ ├── ViewModels │ │ ├── Annotations │ │ │ └── CardExpiration.cs │ │ ├── ApplicationUser.cs │ │ ├── Basket.cs │ │ ├── BasketItem.cs │ │ ├── CartViewModels │ │ │ └── IndexViewModel.cs │ │ ├── Catalog.cs │ │ ├── CatalogItem.cs │ │ ├── CatalogViewModels │ │ │ └── IndexViewModel.cs │ │ ├── Header.cs │ │ ├── Order.cs │ │ ├── OrderItem.cs │ │ └── Pagination │ │ │ └── PaginationInfo.cs │ ├── Views │ │ ├── Account │ │ │ ├── Login.cshtml │ │ │ └── Register.cshtml │ │ ├── Cart │ │ │ └── Index.cshtml │ │ ├── Catalog │ │ │ ├── Index.cshtml │ │ │ ├── _pagination.cshtml │ │ │ └── _product.cshtml │ │ ├── Order │ │ │ ├── Create.cshtml │ │ │ ├── Detail.cshtml │ │ │ ├── Index.cshtml │ │ │ └── _OrderItems.cshtml │ │ ├── Shared │ │ │ ├── Components │ │ │ │ ├── Cart │ │ │ │ │ └── Default.cshtml │ │ │ │ └── CartList │ │ │ │ │ └── Default.cshtml │ │ │ ├── Error.cshtml │ │ │ ├── _Header.cshtml │ │ │ ├── _Layout.cshtml │ │ │ ├── _LoginPartial.cshtml │ │ │ └── _ValidationScriptsPartial.cshtml │ │ ├── _ViewImports.cshtml │ │ └── _ViewStart.cshtml │ ├── WebMVC.csproj │ ├── appsettings.json │ ├── bower.json │ ├── bundleconfig.json │ ├── web.config │ └── wwwroot │ │ ├── _references.js │ │ ├── css │ │ ├── app.component.css │ │ ├── app.css │ │ ├── basket │ │ │ ├── basket-status │ │ │ │ └── basket-status.component.css │ │ │ └── basket.component.css │ │ ├── catalog │ │ │ └── catalog.component.css │ │ ├── orders │ │ │ ├── orders-detail │ │ │ │ └── orders-detail.component.css │ │ │ ├── orders-new │ │ │ │ └── orders-new.component.css │ │ │ └── orders.component.css │ │ ├── shared │ │ │ └── components │ │ │ │ ├── header │ │ │ │ └── header.css │ │ │ │ ├── identity │ │ │ │ └── identity.css │ │ │ │ └── pager │ │ │ │ └── pager.css │ │ └── site.min.css │ │ ├── favicon.ico │ │ ├── fonts │ │ ├── Montserrat-Bold.eot │ │ ├── Montserrat-Bold.svg │ │ ├── Montserrat-Bold.ttf │ │ ├── Montserrat-Bold.woff │ │ ├── Montserrat-Bold.woff2 │ │ ├── Montserrat-Regular.eot │ │ ├── Montserrat-Regular.svg │ │ ├── Montserrat-Regular.ttf │ │ ├── Montserrat-Regular.woff │ │ └── Montserrat-Regular.woff2 │ │ ├── images │ │ ├── arrow-down.png │ │ ├── arrow-right.svg │ │ ├── brand.png │ │ ├── brand_dark.png │ │ ├── cart.png │ │ ├── logout.png │ │ ├── main_banner.png │ │ ├── main_banner_text.png │ │ ├── main_banner_text.svg │ │ ├── my_orders.png │ │ └── refresh.svg │ │ └── js │ │ ├── site.js │ │ └── site.min.js │ ├── WebMonolithic │ ├── docker-compose.ci.build.yml │ ├── docker-compose.dcproj │ ├── docker-compose.override.yml │ ├── docker-compose.vs.debug.yml │ ├── docker-compose.vs.release.yml │ ├── docker-compose.yml │ ├── eShopWeb.sln │ └── eShopWeb │ │ ├── .bowerrc │ │ ├── .dockerignore │ │ ├── CatalogSettings.cs │ │ ├── Controllers │ │ └── CatalogController.cs │ │ ├── Dockerfile │ │ ├── Infrastructure │ │ ├── CatalogContext.cs │ │ ├── CatalogContextSeed.cs │ │ └── Migrations │ │ │ ├── 20170302162241_Initial.Designer.cs │ │ │ ├── 20170302162241_Initial.cs │ │ │ └── CatalogContextModelSnapshot.cs │ │ ├── Models │ │ ├── CatalogBrand.cs │ │ ├── CatalogItem.cs │ │ └── CatalogType.cs │ │ ├── Pics │ │ ├── 1.png │ │ ├── 10.png │ │ ├── 11.png │ │ ├── 12.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.png │ │ ├── 7.png │ │ ├── 8.png │ │ └── 9.png │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Services │ │ ├── CatalogService.cs │ │ └── ICatalogService.cs │ │ ├── Startup.cs │ │ ├── ViewModels │ │ ├── Catalog.cs │ │ ├── CatalogIndex.cs │ │ └── PaginationInfo.cs │ │ ├── Views │ │ ├── Catalog │ │ │ ├── Index.cshtml │ │ │ ├── _pagination.cshtml │ │ │ └── _product.cshtml │ │ ├── Shared │ │ │ ├── Error.cshtml │ │ │ ├── _Layout.cshtml │ │ │ └── _ValidationScriptsPartial.cshtml │ │ ├── _ViewImports.cshtml │ │ └── _ViewStart.cshtml │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ ├── bower.json │ │ ├── bundleconfig.json │ │ ├── eShopWeb.csproj │ │ └── wwwroot │ │ ├── css │ │ ├── app.css │ │ └── catalog │ │ │ ├── catalog.component.css │ │ │ └── pager.css │ │ ├── favicon.ico │ │ ├── fonts │ │ ├── Montserrat-Bold.eot │ │ ├── Montserrat-Bold.svg │ │ ├── Montserrat-Bold.ttf │ │ ├── Montserrat-Bold.woff │ │ ├── Montserrat-Bold.woff2 │ │ ├── Montserrat-Regular.eot │ │ ├── Montserrat-Regular.svg │ │ ├── Montserrat-Regular.ttf │ │ ├── Montserrat-Regular.woff │ │ └── Montserrat-Regular.woff2 │ │ ├── images │ │ ├── arrow-down.png │ │ ├── arrow-right.svg │ │ ├── brand.png │ │ ├── brand_dark.png │ │ ├── cart.png │ │ ├── logout.png │ │ ├── main_banner.png │ │ ├── main_banner_text.png │ │ ├── main_banner_text.svg │ │ ├── my_orders.png │ │ └── refresh.svg │ │ └── js │ │ ├── site.js │ │ └── site.min.js │ ├── WebSPA │ ├── .dockerignore │ ├── .gitignore │ ├── .npmignore │ ├── .sass-lint.yml │ ├── AppSettings.cs │ ├── Client │ │ ├── custom-typings.d.ts │ │ ├── fonts │ │ │ ├── Montserrat-Bold.eot │ │ │ ├── Montserrat-Bold.svg │ │ │ ├── Montserrat-Bold.ttf │ │ │ ├── Montserrat-Bold.woff │ │ │ ├── Montserrat-Bold.woff2 │ │ │ ├── Montserrat-Regular.eot │ │ │ ├── Montserrat-Regular.svg │ │ │ ├── Montserrat-Regular.ttf │ │ │ ├── Montserrat-Regular.woff │ │ │ └── Montserrat-Regular.woff2 │ │ ├── globals.scss │ │ ├── guid.ts │ │ ├── images │ │ │ ├── arrow-down.png │ │ │ ├── arrow-right.svg │ │ │ ├── brand.png │ │ │ ├── brand_dark.png │ │ │ ├── cart.png │ │ │ ├── logout.png │ │ │ ├── main_banner.png │ │ │ ├── main_banner_text.png │ │ │ └── my_orders.png │ │ ├── main.ts │ │ ├── modules │ │ │ ├── _variables.scss │ │ │ ├── app.component.html │ │ │ ├── app.component.scss │ │ │ ├── app.component.ts │ │ │ ├── app.module.ts │ │ │ ├── app.routes.ts │ │ │ ├── app.service.ts │ │ │ ├── basket │ │ │ │ ├── basket-status │ │ │ │ │ ├── basket-status.component.html │ │ │ │ │ ├── basket-status.component.scss │ │ │ │ │ └── basket-status.component.ts │ │ │ │ ├── basket.component.html │ │ │ │ ├── basket.component.scss │ │ │ │ ├── basket.component.ts │ │ │ │ ├── basket.module.ts │ │ │ │ └── basket.service.ts │ │ │ ├── catalog │ │ │ │ ├── catalog.component.html │ │ │ │ ├── catalog.component.scss │ │ │ │ ├── catalog.component.ts │ │ │ │ ├── catalog.module.ts │ │ │ │ └── catalog.service.ts │ │ │ ├── orders │ │ │ │ ├── orders-detail │ │ │ │ │ ├── orders-detail.component.html │ │ │ │ │ ├── orders-detail.component.scss │ │ │ │ │ └── orders-detail.component.ts │ │ │ │ ├── orders-new │ │ │ │ │ ├── orders-new.component.html │ │ │ │ │ ├── orders-new.component.scss │ │ │ │ │ └── orders-new.component.ts │ │ │ │ ├── orders.component.html │ │ │ │ ├── orders.component.scss │ │ │ │ ├── orders.component.ts │ │ │ │ ├── orders.module.ts │ │ │ │ └── orders.service.ts │ │ │ └── shared │ │ │ │ ├── components │ │ │ │ ├── header │ │ │ │ │ ├── header.html │ │ │ │ │ ├── header.scss │ │ │ │ │ └── header.ts │ │ │ │ ├── identity │ │ │ │ │ ├── identity.html │ │ │ │ │ ├── identity.scss │ │ │ │ │ └── identity.ts │ │ │ │ ├── page-not-found │ │ │ │ │ ├── page-not-found.component.html │ │ │ │ │ ├── page-not-found.component.scss │ │ │ │ │ ├── page-not-found.component.spec.ts │ │ │ │ │ └── page-not-found.component.ts │ │ │ │ └── pager │ │ │ │ │ ├── pager.html │ │ │ │ │ ├── pager.scss │ │ │ │ │ └── pager.ts │ │ │ │ ├── models │ │ │ │ ├── basket.model.ts │ │ │ │ ├── basketItem.model.ts │ │ │ │ ├── catalog.model.ts │ │ │ │ ├── catalogBrand.model.ts │ │ │ │ ├── catalogItem.model.ts │ │ │ │ ├── catalogType.model.ts │ │ │ │ ├── configuration.model.ts │ │ │ │ ├── identity.model.ts │ │ │ │ ├── order.model.ts │ │ │ │ ├── orderItem.model.ts │ │ │ │ └── pager.model.ts │ │ │ │ ├── pipes │ │ │ │ ├── uppercase.pipe.spec.ts │ │ │ │ └── uppercase.pipe.ts │ │ │ │ ├── services │ │ │ │ ├── basket.wrapper.service.ts │ │ │ │ ├── configuration.service.ts │ │ │ │ ├── data.service.ts │ │ │ │ ├── notification.service.ts │ │ │ │ ├── security.service.ts │ │ │ │ └── storage.service.ts │ │ │ │ └── shared.module.ts │ │ ├── polyfills.ts │ │ └── vendor.ts │ ├── Dockerfile │ ├── Dockerfile.nanowin │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── README.md │ ├── Server │ │ └── Controllers │ │ │ └── HomeController.cs │ ├── Startup.cs │ ├── Views │ │ ├── Home │ │ │ └── Index.cshtml │ │ ├── Shared │ │ │ └── _Layout.cshtml │ │ ├── _ViewImports.cshtml │ │ └── _ViewStart.cshtml │ ├── WebSPA.csproj │ ├── appsettings.json │ ├── config │ │ ├── helpers.js │ │ ├── webpack.config.dev.js │ │ ├── webpack.config.js │ │ ├── webpack.config.prod.js │ │ └── webpack.config.vendor.js │ ├── package.json │ ├── tsconfig.json │ ├── tslint.json │ ├── typedoc.json │ ├── web.config │ └── wwwroot │ │ ├── favicon.ico │ │ └── web.config │ └── WebStatus │ ├── .bowerrc │ ├── .dockerignore │ ├── Controllers │ └── HomeController.cs │ ├── Dockerfile │ ├── Extensions │ └── HealthCheckBuilderExtensions.cs │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── Startup.cs │ ├── Viewmodels │ ├── HealthStatusViewModel.cs │ └── NamedCheckResult.cs │ ├── Views │ ├── Home │ │ └── Index.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ ├── _Layout.cshtml │ │ └── _ValidationScriptsPartial.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml │ ├── WebStatus.csproj │ ├── appsettings.Development.json │ ├── appsettings.json │ ├── bower.json │ ├── bundleconfig.json │ └── wwwroot │ ├── css │ ├── site.css │ └── site.min.css │ ├── favicon.ico │ ├── images │ ├── banner1.svg │ ├── banner2.svg │ ├── banner3.svg │ └── banner4.svg │ └── js │ ├── site.js │ └── site.min.js └── test └── Services ├── FunctionalTests ├── Extensions │ └── HttpClientExtensions.cs ├── FunctionalTests.csproj ├── Middleware │ └── AutoAuthorizeMiddleware.cs ├── Services │ ├── Basket │ │ ├── BasketScenariosBase.cs │ │ └── BasketTestsStartup.cs │ ├── Catalog │ │ ├── CatalogScenariosBase.cs │ │ └── settings.json │ ├── IntegrationEventsScenarios.cs │ └── Ordering │ │ ├── OrderingScenarios.cs │ │ ├── OrderingScenariosBase.cs │ │ ├── OrderingTestsStartup.cs │ │ └── settings.json └── appsettings.json ├── IntegrationTests ├── IntegrationTests.csproj ├── Middleware │ └── AutoAuthorizeMiddleware.cs ├── Properties │ └── AssemblyInfo.cs └── Services │ ├── Basket │ └── RedisBasketRepositoryTests.cs │ ├── Catalog │ ├── CatalogScenarioBase.cs │ ├── CatalogScenarios.cs │ └── settings.json │ ├── Extensions │ └── HttpClientExtensions.cs │ └── Ordering │ ├── OrderingScenarioBase.cs │ ├── OrderingScenarios.cs │ ├── OrderingTestsStartup.cs │ └── settings.json └── UnitTest ├── Account └── AccountControllerTest.cs ├── Basket └── Application │ ├── BasketWebApiTest.cs │ └── CartControllerTest.cs ├── Catalog └── Application │ └── CatalogControllerTest.cs ├── Ordering ├── Application │ ├── IdentifierCommandHandlerTest.cs │ ├── NewOrderCommandHandlerTest.cs │ ├── OrderControllerTest.cs │ └── OrdersWebApiTest.cs └── Domain │ ├── BuyerAggregateTest.cs │ └── OrderAggregateTest.cs ├── Properties └── AssemblyInfo.cs └── UnitTest.csproj /NuGet.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /_docker/rabbitmq/enabled_plugins: -------------------------------------------------------------------------------- 1 | [rabbitmq_amqp1_0,rabbitmq_management]. 2 | -------------------------------------------------------------------------------- /_docker/rabbitmq/rabbitmq.config: -------------------------------------------------------------------------------- 1 | [{rabbit, [{loopback_users, []}]}]. -------------------------------------------------------------------------------- /cli-linux/docker-compose.local.build.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | ci-build: 5 | image: microsoft/aspnetcore-build-nightly:1.0-1.1 6 | volumes: 7 | - .:/src 8 | working_dir: /src 9 | command: /bin/bash -c "chmod -x ./cli-linux/build-bits-linux.sh && ./cli-linux/build-bits-linux.sh" 10 | -------------------------------------------------------------------------------- /cli-linux/prepare-spa-app.sh: -------------------------------------------------------------------------------- 1 | 2 | # Build SPA app 3 | pushd $(pwd)/src/Web/WebSPA 4 | npm rebuild node-sass 5 | #npm run build:prod 6 | 7 | 8 | -------------------------------------------------------------------------------- /cli-windows/start-external.ps1: -------------------------------------------------------------------------------- 1 | Param([string] $rootPath) 2 | $scriptPath = Split-Path $script:MyInvocation.MyCommand.Path 3 | 4 | Write-Host "Current script directory is $scriptPath" -ForegroundColor Yellow 5 | 6 | if ([string]::IsNullOrEmpty($rootPath)) { 7 | $rootPath = "$scriptPath\.." 8 | } 9 | Write-Host "Root path used is $rootPath" -ForegroundColor Yellow 10 | 11 | docker-compose -f "$rootPath\docker-compose-external.yml" -f "$rootPath\docker-compose-external.override.yml" up 12 | -------------------------------------------------------------------------------- /cli-windows/start-windows-containers.ps1: -------------------------------------------------------------------------------- 1 | Param([string] $rootPath) 2 | $scriptPath = Split-Path $script:MyInvocation.MyCommand.Path 3 | if ([string]::IsNullOrEmpty($rootPath)) { 4 | $rootPath = "$scriptPath\.." 5 | } 6 | Write-Host "Root path used is $rootPath" -ForegroundColor Yellow 7 | 8 | & .\build-bits.ps1 -rootPath $rootPath 9 | docker-compose -f "$rootPath\docker-compose-windows.yml" -f "$rootPath\docker-compose-windows.override.yml" up 10 | -------------------------------------------------------------------------------- /docker-compose-external.override.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | sql.data: 5 | environment: 6 | - SA_PASSWORD=Pass@word 7 | - ACCEPT_EULA=Y 8 | ports: 9 | - "5433:1433" -------------------------------------------------------------------------------- /docker-compose-external.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | sql.data: 5 | image: microsoft/mssql-server-linux 6 | 7 | basket.data: 8 | image: redis 9 | ports: 10 | - "6379:6379" 11 | 12 | rabbitmq: 13 | image: rabbitmq 14 | ports: 15 | - "5672:5672" 16 | -------------------------------------------------------------------------------- /docker-compose.ci.build.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | ci-build: 5 | image: microsoft/aspnetcore-build:1.0-1.1 6 | volumes: 7 | - .:/src 8 | working_dir: /src 9 | command: /bin/bash -c "pushd ./src/Web/WebSPA && npm rebuild node-sass && pushd ./../../.. && dotnet restore ./eShopOnContainers-ServicesAndWebApps.sln && dotnet publish ./eShopOnContainers-ServicesAndWebApps.sln -c Release -o ./obj/Docker/publish" 10 | 11 | -------------------------------------------------------------------------------- /img/Bower_and_Gulp_setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/Bower_and_Gulp_setup.png -------------------------------------------------------------------------------- /img/Generating_Docker_Images.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/Generating_Docker_Images.png -------------------------------------------------------------------------------- /img/Multiple-Distributed-Dependencies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/Multiple-Distributed-Dependencies.png -------------------------------------------------------------------------------- /img/Node_setup_for_npm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/Node_setup_for_npm.png -------------------------------------------------------------------------------- /img/docker-compose-up-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/docker-compose-up-1.png -------------------------------------------------------------------------------- /img/docker-compose-up-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/docker-compose-up-2.png -------------------------------------------------------------------------------- /img/docker-ps-with-all-microservices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/docker-ps-with-all-microservices.png -------------------------------------------------------------------------------- /img/docker_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/docker_settings.png -------------------------------------------------------------------------------- /img/docker_settings_shared_drives.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/docker_settings_shared_drives.png -------------------------------------------------------------------------------- /img/eShopOnContainers_Architecture_Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/eShopOnContainers_Architecture_Diagram.png -------------------------------------------------------------------------------- /img/eShopOnContainers_Architecture_Diagram_old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/eShopOnContainers_Architecture_Diagram_old.png -------------------------------------------------------------------------------- /img/eShopOnContainers_Types_Of_Microservices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/eShopOnContainers_Types_Of_Microservices.png -------------------------------------------------------------------------------- /img/ebook_arch_dev_microservices_containers_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/ebook_arch_dev_microservices_containers_cover.png -------------------------------------------------------------------------------- /img/ebook_containers_lifecycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/ebook_containers_lifecycle.png -------------------------------------------------------------------------------- /img/eshop-webmvc-app-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/eshop-webmvc-app-screenshot.png -------------------------------------------------------------------------------- /img/eshop-webspa-app-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/eshop-webspa-app-screenshot.png -------------------------------------------------------------------------------- /img/eshop_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/eshop_cover.png -------------------------------------------------------------------------------- /img/eshop_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/eshop_logo.png -------------------------------------------------------------------------------- /img/exploring-to-production-ready.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/exploring-to-production-ready.png -------------------------------------------------------------------------------- /img/firewall-rule-for-eshop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/firewall-rule-for-eshop.png -------------------------------------------------------------------------------- /img/list-of-images.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/list-of-images.png -------------------------------------------------------------------------------- /img/login-demo-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/login-demo-user.png -------------------------------------------------------------------------------- /img/spa/installing_npm_node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/spa/installing_npm_node.png -------------------------------------------------------------------------------- /img/spa/npm-rebuild-node-sass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/spa/npm-rebuild-node-sass.png -------------------------------------------------------------------------------- /img/spa/npm-run-build.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/spa/npm-run-build.png -------------------------------------------------------------------------------- /img/spa/npm-versions-powershell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/spa/npm-versions-powershell.png -------------------------------------------------------------------------------- /img/spa/vs-tools-path-custom-node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/spa/vs-tools-path-custom-node.png -------------------------------------------------------------------------------- /img/spa/vs-tools-path-original.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/spa/vs-tools-path-original.png -------------------------------------------------------------------------------- /img/vs-solution-structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/vs-solution-structure.png -------------------------------------------------------------------------------- /img/vs2017/github-clone-branch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/vs2017/github-clone-branch.png -------------------------------------------------------------------------------- /img/vs2017/vs2017_additional_mobile_workloads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/vs2017/vs2017_additional_mobile_workloads.png -------------------------------------------------------------------------------- /img/vs2017/vs2017_server_workload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/vs2017/vs2017_server_workload.png -------------------------------------------------------------------------------- /img/vs2017/xamarin-workload-options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/vs2017/xamarin-workload-options.png -------------------------------------------------------------------------------- /img/xamarin-enterprise-patterns-ebook-cover-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/xamarin-enterprise-patterns-ebook-cover-small.png -------------------------------------------------------------------------------- /img/xamarin-mobile-App.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/xamarin-mobile-App.png -------------------------------------------------------------------------------- /img/xamarin-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/xamarin-settings.png -------------------------------------------------------------------------------- /img/xamarin/fix-hyperv-for-issue-xamarin-app-minimize-in-vs-android-emulator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/img/xamarin/fix-hyperv-for-issue-xamarin-app-minimize-in-vs-android-emulator.png -------------------------------------------------------------------------------- /src/BuildingBlocks/EventBus/EventBus/Abstractions/IEventBus.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events; 2 | 3 | namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions 4 | { 5 | public interface IEventBus 6 | { 7 | void Subscribe(IIntegrationEventHandler handler) where T: IntegrationEvent; 8 | void Unsubscribe(IIntegrationEventHandler handler) where T : IntegrationEvent; 9 | void Publish(IntegrationEvent @event); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/BuildingBlocks/EventBus/EventBus/Abstractions/IIntegrationEventHandler.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events; 2 | using System.Threading.Tasks; 3 | 4 | namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions 5 | { 6 | public interface IIntegrationEventHandler : IIntegrationEventHandler 7 | where TIntegrationEvent: IntegrationEvent 8 | { 9 | Task Handle(TIntegrationEvent @event); 10 | } 11 | 12 | public interface IIntegrationEventHandler 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/BuildingBlocks/EventBus/EventBus/EventBus.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp1.1 5 | 1.1.0 6 | Microsoft.eShopOnContainers.BuildingBlocks.EventBus 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/BuildingBlocks/EventBus/EventBus/Events/IntegrationEvent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events 4 | { 5 | public class IntegrationEvent 6 | { 7 | public IntegrationEvent() 8 | { 9 | Id = Guid.NewGuid(); 10 | CreationDate = DateTime.UtcNow; 11 | } 12 | 13 | public Guid Id { get; } 14 | public DateTime CreationDate { get; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/BuildingBlocks/EventBus/EventBusRabbitMQ/IRabbitMQPersisterConnection.cs: -------------------------------------------------------------------------------- 1 | using RabbitMQ.Client; 2 | using System; 3 | 4 | namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ 5 | { 6 | 7 | public interface IRabbitMQPersisterConnection 8 | : IDisposable 9 | { 10 | bool IsConnected { get; } 11 | 12 | bool TryConnect(); 13 | 14 | IModel CreateModel(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/BuildingBlocks/EventBus/IntegrationEventLogEF/EventStateEnum.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF 6 | { 7 | public enum EventStateEnum 8 | { 9 | NotPublished = 0, 10 | Published = 1, 11 | PublishedFailed = 2 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/CheckStatus.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) .NET Foundation. All rights reserved. 2 | // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. 3 | 4 | namespace Microsoft.Extensions.HealthChecks 5 | { 6 | public enum CheckStatus 7 | { 8 | Unknown, 9 | Unhealthy, 10 | Healthy, 11 | Warning 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/HealthCheckResults.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) .NET Foundation. All rights reserved. 2 | // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. 3 | 4 | using System.Collections.Generic; 5 | 6 | namespace Microsoft.Extensions.HealthChecks 7 | { 8 | public class HealthCheckResults 9 | { 10 | public IList CheckResults { get; } = new List(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/IHealthCheckResult.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) .NET Foundation. All rights reserved. 2 | // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. 3 | 4 | using System.Collections.Generic; 5 | 6 | namespace Microsoft.Extensions.HealthChecks 7 | { 8 | public interface IHealthCheckResult 9 | { 10 | CheckStatus CheckStatus { get; } 11 | string Description { get; } 12 | IReadOnlyDictionary Data { get; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/IHealthCheckService.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) .NET Foundation. All rights reserved. 2 | // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. 3 | 4 | using System.Threading; 5 | using System.Threading.Tasks; 6 | 7 | namespace Microsoft.Extensions.HealthChecks 8 | { 9 | public interface IHealthCheckService 10 | { 11 | Task CheckHealthAsync(CheckStatus partiallyHealthyStatus, CancellationToken cancellationToken); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/BuildingBlocks/Resilience/Resilience.Http/IHttpClient.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Net.Http; 5 | using System.Threading.Tasks; 6 | 7 | namespace Microsoft.eShopOnContainers.BuildingBlocks.Resilience.Http 8 | { 9 | public interface IHttpClient 10 | { 11 | HttpClient Inst { get; } 12 | Task GetStringAsync(string uri); 13 | Task PostAsync(string uri, T item); 14 | Task DeleteAsync(string uri); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/BuildingBlocks/Resilience/Resilience.Http/Resilience.Http.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netstandard1.4 5 | Microsoft.eShopOnContainers.BuildingBlocks.Resilience.Http 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/BuildingBlocks/Resilience/Resilience.Http/ResiliencePolicy.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Microsoft.eShopOnContainers.BuildingBlocks.Resilience.Http 6 | { 7 | public class ResiliencePolicy 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Mobile/Images/AndroidEmulator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/Images/AndroidEmulator.png -------------------------------------------------------------------------------- /src/Mobile/Images/Auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/Images/Auth.png -------------------------------------------------------------------------------- /src/Mobile/Images/Catalog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/Images/Catalog.png -------------------------------------------------------------------------------- /src/Mobile/Images/Filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/Images/Filter.png -------------------------------------------------------------------------------- /src/Mobile/Images/MacAgent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/Images/MacAgent.png -------------------------------------------------------------------------------- /src/Mobile/Images/OrderDetail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/Images/OrderDetail.png -------------------------------------------------------------------------------- /src/Mobile/Images/Preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/Images/Preview.png -------------------------------------------------------------------------------- /src/Mobile/Images/Profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/Images/Profile.png -------------------------------------------------------------------------------- /src/Mobile/Images/Settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/Images/Settings.png -------------------------------------------------------------------------------- /src/Mobile/Images/ShoppingCart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/Images/ShoppingCart.png -------------------------------------------------------------------------------- /src/Mobile/Images/Unsupported52.0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/Images/Unsupported52.0.png -------------------------------------------------------------------------------- /src/Mobile/Images/Updates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/Images/Updates.png -------------------------------------------------------------------------------- /src/Mobile/Images/could-not-connect-to-the-debugger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/Images/could-not-connect-to-the-debugger.png -------------------------------------------------------------------------------- /src/Mobile/Images/eShopOnContainers_Architecture_Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/Images/eShopOnContainers_Architecture_Diagram.png -------------------------------------------------------------------------------- /src/Mobile/Images/launch-hyperv-manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/Images/launch-hyperv-manager.png -------------------------------------------------------------------------------- /src/Mobile/Images/set-compatibility-vs-sml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/Images/set-compatibility-vs-sml.png -------------------------------------------------------------------------------- /src/Mobile/Images/vm-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/Images/vm-settings.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/CommonResources/Fonts/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/CommonResources/Fonts/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/CommonResources/Fonts/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/CommonResources/Fonts/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/CommonResources/Fonts/SourceSansPro-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/CommonResources/Fonts/SourceSansPro-Regular.ttf -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Animations/Base/EasingType.cs: -------------------------------------------------------------------------------- 1 | namespace eShopOnContainers.Core.Animations.Base 2 | { 3 | public enum EasingType 4 | { 5 | BounceIn, 6 | BounceOut, 7 | CubicIn, 8 | CubicInOut, 9 | CubicOut, 10 | Linear, 11 | SinIn, 12 | SinInOut, 13 | SinOut, 14 | SpringIn, 15 | SpringOut 16 | } 17 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Controls/AddBasketButton.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | 3 | namespace eShopOnContainers.Core.Controls 4 | { 5 | public partial class AddBasketButton : ContentView 6 | { 7 | public AddBasketButton() 8 | { 9 | InitializeComponent(); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Effects/EntryLineColorEffect.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | 3 | namespace eShopOnContainers.Core.Effects 4 | { 5 | public class EntryLineColorEffect : RoutingEffect 6 | { 7 | public EntryLineColorEffect() : base("eShopOnContainers.EntryLineColorEffect") 8 | { 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Exceptions/ServiceAuthenticationException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace eShopOnContainers.Core.Exceptions 4 | { 5 | public class ServiceAuthenticationException : Exception 6 | { 7 | public string Content { get; } 8 | 9 | public ServiceAuthenticationException() 10 | { 11 | } 12 | 13 | public ServiceAuthenticationException(string content) 14 | { 15 | Content = content; 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Basket/CustomerBasket.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace eShopOnContainers.Core.Models.Basket 4 | { 5 | public class CustomerBasket 6 | { 7 | public string BuyerId { get; set; } 8 | public List Items { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Catalog/CatalogBrand.cs: -------------------------------------------------------------------------------- 1 | namespace eShopOnContainers.Core.Models.Catalog 2 | { 3 | public class CatalogBrand 4 | { 5 | public int Id { get; set; } 6 | public string Brand { get; set; } 7 | 8 | public override string ToString() 9 | { 10 | return Brand; 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Catalog/CatalogRoot.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace eShopOnContainers.Core.Models.Catalog 4 | { 5 | public class CatalogRoot 6 | { 7 | public int PageIndex { get; set; } 8 | public int PageSize { get; set; } 9 | public int Count { get; set; } 10 | public List Data { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Catalog/CatalogType.cs: -------------------------------------------------------------------------------- 1 | namespace eShopOnContainers.Core.Models.Catalog 2 | { 3 | public class CatalogType 4 | { 5 | public int Id { get; set; } 6 | public string Type { get; set; } 7 | 8 | public override string ToString() 9 | { 10 | return Type; 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Navigation/TabParameter.cs: -------------------------------------------------------------------------------- 1 | namespace eShopOnContainers.Core.Models.Navigation 2 | { 3 | public class TabParameter 4 | { 5 | public int TabIndex { get; set; } 6 | } 7 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Orders/CardType.CS: -------------------------------------------------------------------------------- 1 | namespace eShopOnContainers.Core.Models.Orders 2 | { 3 | public class CardType 4 | { 5 | public int Id { get; set; } 6 | public string Name { get; set; } 7 | } 8 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Orders/OrderState.cs: -------------------------------------------------------------------------------- 1 | namespace eShopOnContainers.Core.Models.Orders 2 | { 3 | public enum OrderState 4 | { 5 | InProcess, 6 | Delivered 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/User/LogoutParameter.cs: -------------------------------------------------------------------------------- 1 | namespace eShopOnContainers.Core.Models.User 2 | { 3 | public class LogoutParameter 4 | { 5 | public bool Logout { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Basket/IBasketService.cs: -------------------------------------------------------------------------------- 1 | using eShopOnContainers.Core.Models.Basket; 2 | using System.Threading.Tasks; 3 | 4 | namespace eShopOnContainers.Core.Services.Basket 5 | { 6 | public interface IBasketService 7 | { 8 | Task GetBasketAsync(string guidUser, string token); 9 | Task UpdateBasketAsync(CustomerBasket customerBasket, string token); 10 | Task ClearBasketAsync(string guidUser, string token); 11 | } 12 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Common/Common.cs: -------------------------------------------------------------------------------- 1 | namespace eShopOnContainers.Core.Services.Common 2 | { 3 | public static class Common 4 | { 5 | public static string MockCatalogItemId01 = "1"; 6 | public static string MockCatalogItemId02 = "2"; 7 | public static string MockCatalogItemId03 = "3"; 8 | public static string MockCatalogItemId04 = "4"; 9 | public static string MockCatalogItemId05 = "5"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Dialog/DialogService.cs: -------------------------------------------------------------------------------- 1 | using Acr.UserDialogs; 2 | using System.Threading.Tasks; 3 | 4 | namespace eShopOnContainers.Services 5 | { 6 | public class DialogService : IDialogService 7 | { 8 | public Task ShowAlertAsync(string message, string title, string buttonLabel) 9 | { 10 | return UserDialogs.Instance.AlertAsync(message, title, buttonLabel); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Dialog/IDialogService.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | 3 | namespace eShopOnContainers.Services 4 | { 5 | public interface IDialogService 6 | { 7 | Task ShowAlertAsync(string message, string title, string buttonLabel); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Identity/IIdentityService.cs: -------------------------------------------------------------------------------- 1 | namespace eShopOnContainers.Core.Services.Identity 2 | { 3 | public interface IIdentityService 4 | { 5 | string CreateAuthorizationRequest(); 6 | string CreateLogoutRequest(string token); 7 | } 8 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/OpenUrl/IOpenUrlService.cs: -------------------------------------------------------------------------------- 1 | namespace eShopOnContainers.Core.Services.OpenUrl 2 | { 3 | public interface IOpenUrlService 4 | { 5 | void OpenUrl(string url); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/OpenUrl/OpenUrlService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Xamarin.Forms; 3 | 4 | namespace eShopOnContainers.Core.Services.OpenUrl 5 | { 6 | public class OpenUrlService : IOpenUrlService 7 | { 8 | public void OpenUrl(string url) 9 | { 10 | Device.OpenUri(new Uri(url)); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/IRequestProvider.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | 3 | namespace eShopOnContainers.Core.Services.RequestProvider 4 | { 5 | public interface IRequestProvider 6 | { 7 | Task GetAsync(string uri, string token = ""); 8 | 9 | Task PostAsync(string uri, TResult data, string token = "", string header = ""); 10 | 11 | Task DeleteAsync(string uri, string token = ""); 12 | } 13 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/User/IUserService.cs: -------------------------------------------------------------------------------- 1 | using eShopOnContainers.Core.Models.User; 2 | using System.Threading.Tasks; 3 | 4 | namespace eShopOnContainers.Core.Services.User 5 | { 6 | public interface IUserService 7 | { 8 | Task GetUserInfoAsync(string authToken); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Triggers/BeginAnimation.cs: -------------------------------------------------------------------------------- 1 | using eShopOnContainers.Core.Animations.Base; 2 | using Xamarin.Forms; 3 | 4 | namespace eShopOnContainers.Core.Triggers 5 | { 6 | public class BeginAnimation : TriggerAction 7 | { 8 | public AnimationBase Animation { get; set; } 9 | 10 | protected override async void Invoke(VisualElement sender) 11 | { 12 | if (Animation != null) 13 | await Animation.Begin(); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Validations/IValidationRule.cs: -------------------------------------------------------------------------------- 1 | namespace eShopOnContainers.Core.Validations 2 | { 3 | public interface IValidationRule 4 | { 5 | string ValidationMessage { get; set; } 6 | 7 | bool Check(T value); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Validations/IValidity.cs: -------------------------------------------------------------------------------- 1 | namespace eShopOnContainers.Core.Validations 2 | { 3 | public interface IValidity 4 | { 5 | bool IsValid { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Validations/IsNotNullOrEmptyRule.cs: -------------------------------------------------------------------------------- 1 | namespace eShopOnContainers.Core.Validations 2 | { 3 | public class IsNotNullOrEmptyRule : IValidationRule 4 | { 5 | public string ValidationMessage { get; set; } 6 | 7 | public bool Check(T value) 8 | { 9 | if (value == null) 10 | { 11 | return false; 12 | } 13 | 14 | var str = value as string; 15 | 16 | return !string.IsNullOrWhiteSpace(str); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/MessageKeys.cs: -------------------------------------------------------------------------------- 1 | namespace eShopOnContainers.Core.ViewModels.Base 2 | { 3 | public class MessageKeys 4 | { 5 | // Add product to basket 6 | public const string AddProduct = "AddProduct"; 7 | 8 | // Filter 9 | public const string Filter = "Filter"; 10 | 11 | // Change selected Tab programmatically 12 | public const string ChangeTab = "ChangeTab"; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/BasketView.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | 3 | namespace eShopOnContainers.Core.Views 4 | { 5 | public partial class BasketView : ContentPage 6 | { 7 | public BasketView() 8 | { 9 | InitializeComponent(); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CheckoutView.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | 3 | namespace eShopOnContainers.Core.Views 4 | { 5 | public partial class CheckoutView : ContentPage 6 | { 7 | public CheckoutView() 8 | { 9 | InitializeComponent(); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CustomNavigationView.xaml: -------------------------------------------------------------------------------- 1 |  2 | 9 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CustomNavigationView.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | 3 | namespace eShopOnContainers.Core.Views 4 | { 5 | public partial class CustomNavigationView : NavigationPage 6 | { 7 | public CustomNavigationView() : base() 8 | { 9 | InitializeComponent(); 10 | } 11 | 12 | public CustomNavigationView(Page root) : base(root) 13 | { 14 | InitializeComponent(); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/FiltersView.xaml.cs: -------------------------------------------------------------------------------- 1 | using SlideOverKit; 2 | 3 | namespace eShopOnContainers.Core.Views 4 | { 5 | public partial class FiltersView : SlideMenuView 6 | { 7 | public FiltersView() 8 | { 9 | InitializeComponent(); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/OrderDetailView.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | 3 | namespace eShopOnContainers.Core.Views 4 | { 5 | public partial class OrderDetailView : ContentPage 6 | { 7 | public OrderDetailView() 8 | { 9 | InitializeComponent(); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/ProfileView.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | 3 | namespace eShopOnContainers.Core.Views 4 | { 5 | public partial class ProfileView : ContentPage 6 | { 7 | public ProfileView() 8 | { 9 | InitializeComponent(); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/SettingsView.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | 3 | namespace eShopOnContainers.Core.Views 4 | { 5 | public partial class SettingsView : ContentPage 6 | { 7 | public SettingsView() 8 | { 9 | InitializeComponent(); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/Templates/BasketItemTemplate.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | 3 | namespace eShopOnContainers.Core.Views.Templates 4 | { 5 | public partial class BasketItemTemplate : ContentView 6 | { 7 | public BasketItemTemplate() 8 | { 9 | InitializeComponent(); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/Templates/OrderItemTemplate.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | 3 | namespace eShopOnContainers.Core.Views.Templates 4 | { 5 | public partial class OrderItemTemplate : ContentView 6 | { 7 | public OrderItemTemplate() 8 | { 9 | InitializeComponent(); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/Templates/OrderTemplate.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | 3 | namespace eShopOnContainers.Core.Views.Templates 4 | { 5 | public partial class OrderTemplate : ContentView 6 | { 7 | public OrderTemplate() 8 | { 9 | InitializeComponent(); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/Templates/ProductTemplate.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | 3 | namespace eShopOnContainers.Core.Views.Templates 4 | { 5 | public partial class ProductTemplate : ContentView 6 | { 7 | public ProductTemplate() 8 | { 9 | InitializeComponent(); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Core/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Properties/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/app_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/app_settings.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/background.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/header_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/header_logo.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/menu_cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/menu_cart.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/menu_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/menu_filter.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/menu_profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/menu_profile.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/product_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/product_add.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/switch_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/switch_off.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/switch_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/switch_on.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/app_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/app_settings.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/background.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/header_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/header_logo.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/icon.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/menu_cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/menu_cart.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/menu_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/menu_filter.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/menu_profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/menu_profile.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/product_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/product_add.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/switch_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/switch_off.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/switch_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/switch_on.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/app_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/app_settings.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/background.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/header_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/header_logo.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/icon.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/menu_cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/menu_cart.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/menu_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/menu_filter.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/menu_profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/menu_profile.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/product_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/product_add.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/switch_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/switch_off.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/switch_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/switch_on.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/banner.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/default_product.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/default_product.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/fake_product_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/fake_product_01.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/fake_product_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/fake_product_02.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/fake_product_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/fake_product_03.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/fake_product_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/fake_product_04.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/fake_product_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/fake_product_05.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/icon.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/noimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/noimage.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable/splash_drawable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 10 | 11 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | #FFFFFF 3 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Droid/Properties/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Droid/Resources/drawable/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Droid/Resources/drawable/Icon.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Droid/Resources/layout/Main.axml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Droid/Resources/values/Strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Hello World, Click Me! 4 | eShopOnContainers.TestRunner.Droid 5 | 6 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Windows/App.xaml: -------------------------------------------------------------------------------- 1 |  8 | 9 | 10 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Windows/Assets/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Windows/Assets/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Windows/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Windows/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Windows/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Windows/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Windows/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Windows/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Windows/Assets/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Windows/Assets/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Windows/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Windows/Assets/StoreLogo.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Windows/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Windows/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.Windows/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "Microsoft.NETCore.UniversalWindowsPlatform": "5.1.0", 4 | "Xamarin.Forms": "2.3.3.175", 5 | "xunit": "2.2.0-beta4-build3444", 6 | "xunit.runner.devices": "2.1.0", 7 | "xunit.runner.utility": "2.2.0-beta4-build3444" 8 | }, 9 | "frameworks": { 10 | "uap10.0": {} 11 | }, 12 | "runtimes": { 13 | "win10-arm": {}, 14 | "win10-arm-aot": {}, 15 | "win10-x86": {}, 16 | "win10-x86-aot": {}, 17 | "win10-x64": {}, 18 | "win10-x64-aot": {} 19 | } 20 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.iOS/Entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.TestRunner.iOS/Main.cs: -------------------------------------------------------------------------------- 1 | using UIKit; 2 | 3 | namespace eShopOnContainers.TestRunner.iOS 4 | { 5 | public class Application 6 | { 7 | // This is the main entry point of the application. 8 | static void Main(string[] args) 9 | { 10 | // if you want to use a different Application Delegate class from "AppDelegate" 11 | // you can specify it here. 12 | UIApplication.Main(args, null, "AppDelegate"); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.UITests/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.UITests/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.UnitTests/BasketServiceTests.cs: -------------------------------------------------------------------------------- 1 | using eShopOnContainers.Core.Services.Catalog; 2 | using System.Threading.Tasks; 3 | using Xunit; 4 | 5 | namespace eShopOnContainers.UnitTests 6 | { 7 | public class BasketServiceTests 8 | { 9 | [Fact] 10 | public async Task GetFakeBasketTest() 11 | { 12 | var catalogMockService = new CatalogMockService(); 13 | var result = await catalogMockService.GetCatalogAsync(); 14 | Assert.NotEqual(0, result.Count); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.UnitTests/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/StoreLogo.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/app_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/app_settings.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/banner.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/circle_button_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/circle_button_background.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/default_product.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/default_product.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/fake_product_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/fake_product_01.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/fake_product_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/fake_product_02.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/fake_product_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/fake_product_03.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/fake_product_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/fake_product_04.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/fake_product_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/fake_product_05.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/menu_cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/menu_cart.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/menu_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/menu_filter.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/menu_profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/menu_profile.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/noimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/noimage.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/product_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/product_add.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/switchOff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/switchOff.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/switchOn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Assets/switchOn.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/AppIcon.appiconset/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/AppIcon.appiconset/Icon-76.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/AppIcon.appiconset/Icon-Small-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/AppIcon.appiconset/Icon-Small-40.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/AppIcon.appiconset/Icon-Small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/AppIcon.appiconset/Icon-Small.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/LaunchImage.launchimage/Default-1242@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/LaunchImage.launchimage/Default-1242@3x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/LaunchImage.launchimage/Default-750@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/LaunchImage.launchimage/Default-750@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/LaunchImage.launchimage/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/LaunchImage.launchimage/Default.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Main.cs: -------------------------------------------------------------------------------- 1 | using UIKit; 2 | 3 | namespace eShopOnContainers.iOS 4 | { 5 | public class Application 6 | { 7 | // This is the main entry point of the application. 8 | static void Main(string[] args) 9 | { 10 | // if you want to use a different Application Delegate class from "AppDelegate" 11 | // you can specify it here. 12 | UIApplication.Main(args, null, "AppDelegate"); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Default-568h@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Default-Portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Default-Portrait.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Default-Portrait@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Default-Portrait@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Default.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Default@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-60@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-60@3x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-76.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-76@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-Small-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-Small-40.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-Small-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-Small-40@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-Small-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-Small-40@3x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-Small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-Small.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-Small@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-Small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Icon-Small@3x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/Logo.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/app_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/app_settings.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/app_settings@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/app_settings@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/app_settings@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/app_settings@3x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/banner.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/default_product.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/default_product.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/fake_product_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/fake_product_01.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/fake_product_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/fake_product_02.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/fake_product_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/fake_product_03.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/fake_product_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/fake_product_04.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/fake_product_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/fake_product_05.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_cart.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_cart@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_cart@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_cart@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_cart@3x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_filter.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_filter@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_filter@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_filter@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_filter@3x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_profile.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_profile@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_profile@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_profile@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_profile@3x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/noimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/noimage.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/product_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/product_add.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/product_add@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/product_add@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/product_add@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/product_add@3x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/switchOff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/switchOff.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/switchOff@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/switchOff@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/switchOff@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/switchOff@3x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/switchOn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/switchOn.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/switchOn@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/switchOn@2x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/switchOn@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/switchOn@3x.png -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/iTunesArtwork: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/iTunesArtwork -------------------------------------------------------------------------------- /src/Mobile/eShopOnContainers/eShopOnContainers.iOS/iTunesArtwork@2x: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Mobile/eShopOnContainers/eShopOnContainers.iOS/iTunesArtwork@2x -------------------------------------------------------------------------------- /src/Services/Basket/Basket.API/.dockerignore: -------------------------------------------------------------------------------- 1 | * 2 | !obj/Docker/publish/* 3 | !obj/Docker/empty/ 4 | -------------------------------------------------------------------------------- /src/Services/Basket/Basket.API/Auth/Client/popup.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /src/Services/Basket/Basket.API/BasketSettings.cs: -------------------------------------------------------------------------------- 1 | namespace Microsoft.eShopOnContainers.Services.Basket.API 2 | { 3 | public class BasketSettings 4 | { 5 | public string ConnectionString { get; set; } 6 | 7 | public string EventBusConnection { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Services/Basket/Basket.API/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/aspnetcore:1.1 2 | ARG source 3 | WORKDIR /app 4 | EXPOSE 80 5 | COPY ${source:-obj/Docker/publish} . 6 | ENTRYPOINT ["dotnet", "Basket.API.dll"] 7 | -------------------------------------------------------------------------------- /src/Services/Basket/Basket.API/Dockerfile.nanowin: -------------------------------------------------------------------------------- 1 | FROM microsoft/dotnet:1.1-runtime-nanoserver 2 | SHELL ["powershell"] 3 | ARG source 4 | WORKDIR /app 5 | RUN set-itemproperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters' -Name ServerPriorityTimeLimit -Value 0 -Type DWord 6 | EXPOSE 80 7 | COPY ${source:-obj/Docker/publish} . 8 | ENTRYPOINT ["dotnet", "Basket.API.dll"] 9 | -------------------------------------------------------------------------------- /src/Services/Basket/Basket.API/Infrastructure/ActionResults/InternalServerErrorObjectResult.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Http; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace Basket.API.Infrastructure.ActionResults 5 | { 6 | public class InternalServerErrorObjectResult : ObjectResult 7 | { 8 | public InternalServerErrorObjectResult(object error) 9 | : base(error) 10 | { 11 | StatusCode = StatusCodes.Status500InternalServerError; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Services/Basket/Basket.API/Model/Basket.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace Microsoft.eShopOnContainers.Services.Basket.API.Model 7 | { 8 | public class CustomerBasket 9 | { 10 | public string BuyerId { get; set; } 11 | public List Items { get; set; } 12 | 13 | public CustomerBasket(string customerId) 14 | { 15 | BuyerId = customerId; 16 | Items = new List(); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Services/Basket/Basket.API/Model/IBasketRepository.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | 4 | namespace Microsoft.eShopOnContainers.Services.Basket.API.Model 5 | { 6 | public interface IBasketRepository 7 | { 8 | Task GetBasketAsync(string customerId); 9 | Task> GetUsersAsync(); 10 | Task UpdateBasketAsync(CustomerBasket basket); 11 | Task DeleteBasketAsync(string id); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Services/Basket/Basket.API/README.md: -------------------------------------------------------------------------------- 1 | # Containerized eShop - Basket Service 2 | Sample reference containerized application, cross-platform and microservices architecture. 3 | Powered by Microsoft 4 | 5 | Check procedures on how to get it started at the Wiki: 6 | https://github.com/dotnet/eShopOnContainers/wiki 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/Services/Basket/Basket.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | }, 10 | "IdentityUrl": "http://localhost:5105", 11 | "ConnectionString": "127.0.0.1" 12 | } 13 | -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/.dockerignore: -------------------------------------------------------------------------------- 1 | * 2 | !obj/Docker/publish/* 3 | !obj/Docker/empty/ 4 | -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/CatalogSettings.cs: -------------------------------------------------------------------------------- 1 | namespace Microsoft.eShopOnContainers.Services.Catalog.API 2 | { 3 | public class CatalogSettings 4 | { 5 | public string ExternalCatalogBaseUrl {get;set;} 6 | 7 | public string EventBusConnection { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | // For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860 4 | 5 | namespace Microsoft.eShopOnContainers.Services.Catalog.API.Controllers 6 | { 7 | public class HomeController : Controller 8 | { 9 | // GET: // 10 | public IActionResult Index() 11 | { 12 | return new RedirectResult("~/swagger/ui"); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/aspnetcore:1.1 2 | ARG source 3 | WORKDIR /app 4 | EXPOSE 80 5 | COPY ${source:-obj/Docker/publish} . 6 | ENTRYPOINT ["dotnet", "Catalog.API.dll"] 7 | -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Dockerfile.nanowin: -------------------------------------------------------------------------------- 1 | FROM microsoft/dotnet:1.1-runtime-nanoserver 2 | SHELL ["powershell"] 3 | ARG source 4 | WORKDIR /app 5 | RUN set-itemproperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters' -Name ServerPriorityTimeLimit -Value 0 -Type DWord 6 | EXPOSE 80 7 | COPY ${source:-obj/Docker/publish} . 8 | ENTRYPOINT ["dotnet", "Catalog.API.dll"] 9 | -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Infrastructure/ActionResults/InternalServerErrorObjectResult.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Http; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace Catalog.API.Infrastructure.ActionResults 5 | { 6 | public class InternalServerErrorObjectResult : ObjectResult 7 | { 8 | public InternalServerErrorObjectResult(object error) 9 | : base(error) 10 | { 11 | StatusCode = StatusCodes.Status500InternalServerError; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Infrastructure/CatalogMigrations/20170316120022_RefactoringEventBusNamespaces.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Microsoft.EntityFrameworkCore.Migrations; 4 | 5 | namespace Catalog.API.Infrastructure.Migrations 6 | { 7 | public partial class RefactoringEventBusNamespaces : Migration 8 | { 9 | protected override void Up(MigrationBuilder migrationBuilder) 10 | { 11 | 12 | } 13 | 14 | protected override void Down(MigrationBuilder migrationBuilder) 15 | { 16 | 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/AnyFutureIntegrationEventHandler.cs.txt: -------------------------------------------------------------------------------- 1 |  2 | 3 | // To implement ProductPriceChangedEvent.cs here 4 | -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/IntegrationEvents/ICatalogIntegrationEventService.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events; 2 | using System.Threading.Tasks; 3 | 4 | namespace Catalog.API.IntegrationEvents 5 | { 6 | public interface ICatalogIntegrationEventService 7 | { 8 | Task SaveEventAndCatalogContextChangesAsync(IntegrationEvent evt); 9 | Task PublishThroughEventBusAsync(IntegrationEvent evt); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Model/CatalogBrand.cs: -------------------------------------------------------------------------------- 1 | namespace Microsoft.eShopOnContainers.Services.Catalog.API.Model 2 | { 3 | public class CatalogBrand 4 | { 5 | public int Id { get; set; } 6 | 7 | public string Brand { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Model/CatalogType.cs: -------------------------------------------------------------------------------- 1 | namespace Microsoft.eShopOnContainers.Services.Catalog.API.Model 2 | { 3 | public class CatalogType 4 | { 5 | public int Id { get; set; } 6 | 7 | public string Type { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Pics/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Catalog/Catalog.API/Pics/1.png -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Pics/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Catalog/Catalog.API/Pics/10.png -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Pics/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Catalog/Catalog.API/Pics/11.png -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Pics/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Catalog/Catalog.API/Pics/12.png -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Pics/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Catalog/Catalog.API/Pics/2.png -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Pics/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Catalog/Catalog.API/Pics/3.png -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Pics/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Catalog/Catalog.API/Pics/4.png -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Pics/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Catalog/Catalog.API/Pics/5.png -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Pics/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Catalog/Catalog.API/Pics/6.png -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Pics/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Catalog/Catalog.API/Pics/7.png -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Pics/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Catalog/Catalog.API/Pics/8.png -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/Pics/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Catalog/Catalog.API/Pics/9.png -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/README.md: -------------------------------------------------------------------------------- 1 | # Containerized eShop - Catalog Service 2 | Sample reference containerized application, cross-platform and microservices architecture. 3 | Powered by Microsoft 4 | 5 | Check procedures on how to get it started at the Wiki: 6 | https://github.com/dotnet/eShopOnContainers/wiki 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionString": "Server=tcp:127.0.0.1,5433;Initial Catalog=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word", 3 | "ExternalCatalogBaseUrl": "http://localhost:5101", 4 | "Logging": { 5 | "IncludeScopes": false, 6 | "LogLevel": { 7 | "Default": "Debug", 8 | "System": "Information", 9 | "Microsoft": "Information" 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Services/Catalog/Catalog.API/web.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "wwwroot/lib" 3 | } 4 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/.dockerignore: -------------------------------------------------------------------------------- 1 | * 2 | !obj/Docker/publish/* 3 | !obj/Docker/empty/ 4 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/AppSettings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace eShopOnContainers.Identity 7 | { 8 | public class AppSettings 9 | { 10 | public string MvcClient { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/aspnetcore:1.1 2 | ARG source 3 | WORKDIR /app 4 | EXPOSE 80 5 | COPY ${source:-obj/Docker/publish} . 6 | ENTRYPOINT ["dotnet", "Identity.API.dll"] 7 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Dockerfile.nanowin: -------------------------------------------------------------------------------- 1 | FROM microsoft/dotnet:1.1-runtime-nanoserver 2 | SHELL ["powershell"] 3 | ARG source 4 | WORKDIR /app 5 | RUN set-itemproperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters' -Name ServerPriorityTimeLimit -Value 0 -Type DWord 6 | EXPOSE 80 7 | COPY ${source:-obj/Docker/publish} . 8 | ENTRYPOINT ["dotnet", "Identity.API.dll"] 9 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Models/AccountViewModels/ExternalLoginConfirmationViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Identity.API.Models.AccountViewModels 8 | { 9 | public class ExternalLoginConfirmationViewModel 10 | { 11 | [Required] 12 | [EmailAddress] 13 | public string Email { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Models/AccountViewModels/ForgotPasswordViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Identity.API.Models.AccountViewModels 8 | { 9 | public class ForgotPasswordViewModel 10 | { 11 | [Required] 12 | [EmailAddress] 13 | public string Email { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Models/AccountViewModels/LoggedOutViewModel.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Brock Allen & Dominick Baier. All rights reserved. 2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information. 3 | 4 | 5 | namespace Identity.API.Models.AccountViewModels 6 | { 7 | public class LoggedOutViewModel 8 | { 9 | public string PostLogoutRedirectUri { get; set; } 10 | public string ClientName { get; set; } 11 | public string SignOutIframeUrl { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Models/AccountViewModels/LogoutViewModel.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Brock Allen & Dominick Baier. All rights reserved. 2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information. 3 | 4 | 5 | namespace Identity.API.Models.AccountViewModels 6 | { 7 | public class LogoutViewModel 8 | { 9 | public string LogoutId { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Brock Allen & Dominick Baier. All rights reserved. 2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information. 3 | 4 | 5 | using IdentityServer4.Models; 6 | 7 | namespace IdentityServer4.Quickstart.UI.Models 8 | { 9 | public class ErrorViewModel 10 | { 11 | public ErrorMessage Error { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Models/ManageViewModels/AddPhoneNumberViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Identity.API.Models.ManageViewModels 8 | { 9 | public class AddPhoneNumberViewModel 10 | { 11 | [Required] 12 | [Phone] 13 | [Display(Name = "Phone number")] 14 | public string PhoneNumber { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Models/ManageViewModels/ConfigureTwoFactorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc.Rendering; 6 | 7 | namespace Identity.API.Models.ManageViewModels 8 | { 9 | public class ConfigureTwoFactorViewModel 10 | { 11 | public string SelectedProvider { get; set; } 12 | 13 | public ICollection Providers { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Models/ManageViewModels/FactorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace Identity.API.Models.ManageViewModels 7 | { 8 | public class FactorViewModel 9 | { 10 | public string Purpose { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Models/ManageViewModels/ManageLoginsViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Http.Authentication; 6 | using Microsoft.AspNetCore.Identity; 7 | 8 | namespace Identity.API.Models.ManageViewModels 9 | { 10 | public class ManageLoginsViewModel 11 | { 12 | public IList CurrentLogins { get; set; } 13 | 14 | public IList OtherLogins { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Models/ManageViewModels/RemoveLoginViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Identity.API.Models.ManageViewModels 8 | { 9 | public class RemoveLoginViewModel 10 | { 11 | public string LoginProvider { get; set; } 12 | public string ProviderKey { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Models/ManageViewModels/VerifyPhoneNumberViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Identity.API.Models.ManageViewModels 8 | { 9 | public class VerifyPhoneNumberViewModel 10 | { 11 | [Required] 12 | public string Code { get; set; } 13 | 14 | [Required] 15 | [Phone] 16 | [Display(Name = "Phone number")] 17 | public string PhoneNumber { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Services/IEmailSender.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace Identity.API.Services 7 | { 8 | public interface IEmailSender 9 | { 10 | Task SendEmailAsync(string email, string subject, string message); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Services/ILoginService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace Identity.API.Services 7 | { 8 | public interface ILoginService 9 | { 10 | Task ValidateCredentials(T user, string password); 11 | Task FindByUsername(string user); 12 | Task SignIn(T user); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Services/IRedirectService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace Identity.API.Services 7 | { 8 | public interface IRedirectService 9 | { 10 | string ExtractRedirectUriFromReturnUrl(string url); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Services/ISmsSender.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace Identity.API.Services 7 | { 8 | public interface ISmsSender 9 | { 10 | Task SendSmsAsync(string number, string message); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Views/Account/Redirecting.cshtml: -------------------------------------------------------------------------------- 1 | 
2 |
3 |

Redirecting...

4 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Views/Home/About.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "About"; 3 | } 4 |

@ViewData["Title"].

5 |

@ViewData["Message"]

6 | 7 |

Use this area to provide additional information.

8 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Views/Home/Contact.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Contact"; 3 | } 4 |

@ViewData["Title"].

5 |

@ViewData["Message"]

6 | 7 |
8 | One Microsoft Way
9 | Redmond, WA 98052-6399
10 | P: 11 | 425.555.0100 12 |
13 | 14 |
15 | Support: Support@example.com
16 | Marketing: Marketing@example.com 17 |
18 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Views/Shared/_ValidationSummary.cshtml: -------------------------------------------------------------------------------- 1 | @if (ViewContext.ModelState.IsValid == false) 2 | { 3 |
4 | Error 5 |
6 |
7 | } -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 2 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "DefaultConnection": "Server=tcp:127.0.0.1,5433;Database=Microsoft.eShopOnContainers.Services.IdentityDb;User Id=sa;Password=Pass@word;" 4 | }, 5 | "MvcClient": "http://localhost:5100", 6 | "SpaClient": "http://localhost:5104", 7 | "XamarinCallback": "http://localhost:5105/xamarincallback", 8 | "Logging": { 9 | "IncludeScopes": false, 10 | "LogLevel": { 11 | "Default": "Debug", 12 | "System": "Information", 13 | "Microsoft": "Information" 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "asp.net", 3 | "private": true, 4 | "dependencies": { 5 | "bootstrap": "3.3.6", 6 | "jquery": "2.2.0", 7 | "jquery-validation": "1.14.0", 8 | "jquery-validation-unobtrusive": "3.2.6" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/_references.js: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | /// 5 | /// 6 | /// 7 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/favicon.ico -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/fonts/Montserrat-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/fonts/Montserrat-Bold.eot -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/fonts/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/fonts/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/fonts/Montserrat-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/fonts/Montserrat-Bold.woff -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/fonts/Montserrat-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/fonts/Montserrat-Bold.woff2 -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/fonts/Montserrat-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/fonts/Montserrat-Regular.eot -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/fonts/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/fonts/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/fonts/Montserrat-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/fonts/Montserrat-Regular.woff -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/fonts/Montserrat-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/fonts/Montserrat-Regular.woff2 -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/icon.jpg -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/icon.png -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/images/arrow-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/images/arrow-down.png -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/images/brand.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/images/brand.PNG -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/images/brand_dark.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/images/brand_dark.PNG -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/images/cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/images/cart.png -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/images/logout.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/images/logout.PNG -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/images/main_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/images/main_banner.png -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/images/main_banner_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/images/main_banner_text.png -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/images/my_orders.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/images/my_orders.PNG -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Write your Javascript code. 2 | -------------------------------------------------------------------------------- /src/Services/Identity/Identity.API/wwwroot/js/site.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Services/Identity/Identity.API/wwwroot/js/site.min.js -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.API/.dockerignore: -------------------------------------------------------------------------------- 1 | * 2 | !obj/Docker/publish/* 3 | !obj/Docker/empty/ 4 | -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.API/Application/Queries/IOrderQueries.cs: -------------------------------------------------------------------------------- 1 | namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Queries 2 | { 3 | using System.Threading.Tasks; 4 | 5 | public interface IOrderQueries 6 | { 7 | Task GetOrderAsync(int id); 8 | 9 | Task GetOrdersAsync(); 10 | 11 | Task GetCardTypesAsync(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.API/Application/Validations/IdentifierCommandValidator.cs: -------------------------------------------------------------------------------- 1 | using FluentValidation; 2 | using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands; 3 | 4 | namespace Ordering.API.Application.Validations 5 | { 6 | public class IdentifierCommandValidator : AbstractValidator> 7 | { 8 | public IdentifierCommandValidator() 9 | { 10 | RuleFor(command => command.Id).NotEmpty(); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.API/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/aspnetcore:1.1 2 | ARG source 3 | WORKDIR /app 4 | EXPOSE 80 5 | COPY ${source:-obj/Docker/publish} . 6 | ENTRYPOINT ["dotnet", "Ordering.API.dll"] 7 | -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.API/Dockerfile.nanowin: -------------------------------------------------------------------------------- 1 | FROM microsoft/dotnet:1.1-runtime-nanoserver 2 | SHELL ["powershell"] 3 | ARG source 4 | WORKDIR /app 5 | RUN set-itemproperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters' -Name ServerPriorityTimeLimit -Value 0 -Type DWord 6 | EXPOSE 80 7 | COPY ${source:-obj/Docker/publish} . 8 | ENTRYPOINT ["dotnet", "Ordering.API.dll"] 9 | -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.API/Infrastructure/ActionResults/InternalServerErrorObjectResult.cs: -------------------------------------------------------------------------------- 1 | namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.ActionResults 2 | { 3 | using AspNetCore.Http; 4 | using Microsoft.AspNetCore.Mvc; 5 | 6 | public class InternalServerErrorObjectResult : ObjectResult 7 | { 8 | public InternalServerErrorObjectResult(object error) 9 | : base(error) 10 | { 11 | StatusCode = StatusCodes.Status500InternalServerError; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.API/Infrastructure/Middlewares/FailingOptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace Ordering.API.Infrastructure.Middlewares 7 | { 8 | public class FailingOptions 9 | { 10 | public string ConfigPath = "/Failing"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.API/Infrastructure/Migrations/20170403082405_NoBuyerPropertyInOrder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Microsoft.EntityFrameworkCore.Migrations; 4 | 5 | namespace Ordering.API.Migrations 6 | { 7 | public partial class NoBuyerPropertyInOrder : Migration 8 | { 9 | protected override void Up(MigrationBuilder migrationBuilder) 10 | { 11 | 12 | } 13 | 14 | protected override void Down(MigrationBuilder migrationBuilder) 15 | { 16 | 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.API/Infrastructure/Migrations/20170405110939_NoPaymentMethodPropertyInOrder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Microsoft.EntityFrameworkCore.Migrations; 4 | 5 | namespace Ordering.API.Migrations 6 | { 7 | public partial class NoPaymentMethodPropertyInOrder : Migration 8 | { 9 | protected override void Up(MigrationBuilder migrationBuilder) 10 | { 11 | 12 | } 13 | 14 | protected override void Down(MigrationBuilder migrationBuilder) 15 | { 16 | 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.API/Infrastructure/Services/IIdentityService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Services 7 | { 8 | public interface IIdentityService 9 | { 10 | string GetUserIdentity(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.API/IntegrationEvents/IOrderingIntegrationEventService.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Ordering.API.IntegrationEvents 8 | { 9 | public interface IOrderingIntegrationEventService 10 | { 11 | Task SaveEventAndOrderingContextChangesAsync(IntegrationEvent evt); 12 | Task PublishThroughEventBusAsync(IntegrationEvent evt); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.API/README.md: -------------------------------------------------------------------------------- 1 | # Containerized eShop - Orders Service 2 | Sample reference containerized application, cross-platform and microservices architecture. 3 | Powered by Microsoft 4 | 5 | Check procedures on how to get it started at the Wiki: 6 | https://github.com/dotnet/eShopOnContainers/wiki 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.API/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionString": "Server=tcp:127.0.0.1,5433;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word;", 3 | "IdentityUrl": "http://localhost:5105", 4 | "Logging": { 5 | "IncludeScopes": false, 6 | "LogLevel": { 7 | "Default": "Debug", 8 | "System": "Information", 9 | "Microsoft": "Information" 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.Domain/SeedWork/IAggregateRoot.cs: -------------------------------------------------------------------------------- 1 | namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.Seedwork 2 | { 3 | 4 | public interface IAggregateRoot { } 5 | 6 | } 7 | -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.Domain/SeedWork/IRepository.cs: -------------------------------------------------------------------------------- 1 | namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.Seedwork 2 | { 3 | public interface IRepository where T : IAggregateRoot 4 | { 5 | IUnitOfWork UnitOfWork { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.Domain/SeedWork/IUnitOfWork.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading; 3 | using System.Threading.Tasks; 4 | 5 | namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.Seedwork 6 | { 7 | public interface IUnitOfWork : IDisposable 8 | { 9 | Task SaveChangesAsync(CancellationToken cancellationToken = default(CancellationToken)); 10 | Task SaveEntitiesAsync(CancellationToken cancellationToken = default(CancellationToken)); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.Infrastructure/Idempotency/ClientRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency 4 | { 5 | public class ClientRequest 6 | { 7 | public Guid Id { get; set; } 8 | public string Name { get; set; } 9 | public DateTime Time { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Services/Ordering/Ordering.Infrastructure/Idempotency/IRequestManager.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading.Tasks; 3 | 4 | namespace Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency 5 | { 6 | public interface IRequestManager 7 | { 8 | Task ExistAsync(Guid id); 9 | 10 | Task CreateRequestForCommandAsync(Guid id); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Web/Catalog.WebForms/Catalog.WebForms/Global.asax.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Web; 3 | using System.Web.Optimization; 4 | using System.Web.Routing; 5 | 6 | namespace Microsoft.eShopOnContainers.Catalog.WebForms 7 | { 8 | public class Global : HttpApplication 9 | { 10 | 11 | void Application_Start(object sender, EventArgs e) 12 | { 13 | // Code that runs on application startup 14 | RouteConfig.RegisterRoutes(RouteTable.Routes); 15 | BundleConfig.RegisterBundles(BundleTable.Bundles); 16 | 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /src/Web/WebMVC/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "wwwroot/lib" 3 | } 4 | -------------------------------------------------------------------------------- /src/Web/WebMVC/.dockerignore: -------------------------------------------------------------------------------- 1 | * 2 | !obj/Docker/publish/* 3 | !obj/Docker/empty/ 4 | -------------------------------------------------------------------------------- /src/Web/WebMVC/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/aspnetcore:1.1 2 | ARG source 3 | WORKDIR /app 4 | EXPOSE 80 5 | COPY ${source:-obj/Docker/publish} . 6 | ENTRYPOINT ["dotnet", "WebMVC.dll"] 7 | -------------------------------------------------------------------------------- /src/Web/WebMVC/Dockerfile.nanowin: -------------------------------------------------------------------------------- 1 | FROM microsoft/dotnet:1.1-runtime-nanoserver 2 | SHELL ["powershell"] 3 | ARG source 4 | WORKDIR /app 5 | RUN set-itemproperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters' -Name ServerPriorityTimeLimit -Value 0 -Type DWord 6 | EXPOSE 80 7 | COPY ${source:-obj/Docker/publish} . 8 | ENTRYPOINT ["dotnet", "WebMVC.dll"] 9 | -------------------------------------------------------------------------------- /src/Web/WebMVC/Infrastructure/IResilientHttpClientFactory.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.eShopOnContainers.BuildingBlocks.Resilience.Http; 2 | using System; 3 | 4 | namespace Microsoft.eShopOnContainers.WebMVC.Infrastructure 5 | { 6 | public interface IResilientHttpClientFactory 7 | { 8 | ResilientHttpClient CreateResilientHttpClient(); 9 | } 10 | } -------------------------------------------------------------------------------- /src/Web/WebMVC/Services/ICatalogService.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc.Rendering; 2 | using Microsoft.eShopOnContainers.WebMVC.ViewModels; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Threading.Tasks; 7 | 8 | namespace Microsoft.eShopOnContainers.WebMVC.Services 9 | { 10 | public interface ICatalogService 11 | { 12 | Task GetCatalogItems(int page, int take, int? brand, int? type); 13 | Task> GetBrands(); 14 | Task> GetTypes(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/Web/WebMVC/Services/IIdentityParser.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Security.Principal; 5 | using System.Threading.Tasks; 6 | 7 | namespace Microsoft.eShopOnContainers.WebMVC.Services 8 | { 9 | public interface IIdentityParser 10 | { 11 | T Parse(IPrincipal principal); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Web/WebMVC/ViewModels/CartViewModels/IndexViewModel.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc.Rendering; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Microsoft.eShopOnContainers.WebMVC.ViewModels.CartViewModels 8 | { 9 | public class CartComponentViewModel 10 | { 11 | public int ItemsCount { get; set; } 12 | public string Disabled => (ItemsCount == 0) ? "is-disabled" : ""; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Web/WebMVC/ViewModels/Catalog.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace Microsoft.eShopOnContainers.WebMVC.ViewModels 7 | { 8 | public class Catalog 9 | { 10 | public int PageIndex { get; set; } 11 | public int PageSize { get; set; } 12 | public int Count { get; set; } 13 | public List Data { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Web/WebMVC/ViewModels/Header.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Microsoft.eShopOnContainers.WebMVC.ViewModels 4 | { 5 | public class Header 6 | { 7 | public string Controller { get; set; } 8 | public string Text { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /src/Web/WebMVC/ViewModels/Pagination/PaginationInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace Microsoft.eShopOnContainers.WebMVC.ViewModels.Pagination 7 | { 8 | public class PaginationInfo 9 | { 10 | public int TotalItems { get; set; } 11 | public int ItemsPerPage { get; set; } 12 | public int ActualPage { get; set; } 13 | public int TotalPages { get; set; } 14 | public string Previous { get; set; } 15 | public string Next { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/Web/WebMVC/Views/Shared/Components/Cart/Default.cshtml: -------------------------------------------------------------------------------- 1 | @model Microsoft.eShopOnContainers.WebMVC.ViewModels.CartViewModels.CartComponentViewModel 2 | 3 | @{ 4 | ViewData["Title"] = "My Cart"; 5 | } 6 | 7 | 11 | 12 |
13 | 14 |
15 |
16 | @Model.ItemsCount 17 |
18 |
19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/Web/WebMVC/Views/Shared/_Header.cshtml: -------------------------------------------------------------------------------- 1 | @model Microsoft.eShopOnContainers.WebMVC.ViewModels.Header 2 | 3 |
4 |
5 | @Model.Text 6 |
7 |
8 | -------------------------------------------------------------------------------- /src/Web/WebMVC/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using Microsoft.eShopOnContainers.WebMVC 2 | @using Microsoft.eShopOnContainers.WebMVC.ViewModels 3 | @using Microsoft.AspNetCore.Identity 4 | 5 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 6 | -------------------------------------------------------------------------------- /src/Web/WebMVC/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /src/Web/WebMVC/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "CatalogUrl": "http://localhost:5101", 3 | "OrderingUrl": "http://localhost:5102", 4 | "BasketUrl": "http://localhost:5103", 5 | "IdentityUrl": "http://localhost:5105", 6 | "CallBackUrl": "http://localhost:5100/", 7 | "UseResilientHttp": "True", 8 | "Logging": { 9 | "IncludeScopes": false, 10 | "LogLevel": { 11 | "Default": "Trace", 12 | "System": "Information", 13 | "Microsoft": "Information" 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /src/Web/WebMVC/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "asp.net", 3 | "private": true, 4 | "dependencies": { 5 | "bootstrap": "4.0.0-alpha.5", 6 | "jquery": "2.2.0", 7 | "jquery-validation": "1.14.0", 8 | "jquery-validation-unobtrusive": "3.2.6" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/_references.js: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | /// 5 | /// 6 | /// 7 | -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/css/app.component.css: -------------------------------------------------------------------------------- 1 | .esh-app-footer { 2 | background-color: #000000; 3 | border-top: 1px solid #EEEEEE; 4 | margin-top: 2.5rem; 5 | padding-bottom: 2.5rem; 6 | padding-top: 2.5rem; 7 | width: 100%; 8 | } 9 | 10 | .esh-app-footer-brand { 11 | height: 50px; 12 | width: 230px; 13 | } 14 | 15 | .esh-app-footer-text { 16 | color: #83D01B; 17 | line-height: 50px; 18 | text-align: right; 19 | width: 100%; 20 | } 21 | -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/css/shared/components/header/header.css: -------------------------------------------------------------------------------- 1 | .esh-header { 2 | background-color: #00A69C; 3 | height: 4rem; 4 | } 5 | 6 | .esh-header-back { 7 | color: rgba(255, 255, 255, 0.5) !important; 8 | line-height: 4rem; 9 | text-transform: uppercase; 10 | text-decoration: none; 11 | transition: color 0.35s; 12 | } 13 | 14 | .esh-header-back:hover { 15 | color: #FFFFFF !important; 16 | transition: color 0.35s; 17 | } 18 | -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/favicon.ico -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/fonts/Montserrat-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/fonts/Montserrat-Bold.eot -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/fonts/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/fonts/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/fonts/Montserrat-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/fonts/Montserrat-Bold.woff -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/fonts/Montserrat-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/fonts/Montserrat-Bold.woff2 -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/fonts/Montserrat-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/fonts/Montserrat-Regular.eot -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/fonts/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/fonts/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/fonts/Montserrat-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/fonts/Montserrat-Regular.woff -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/fonts/Montserrat-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/fonts/Montserrat-Regular.woff2 -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/images/arrow-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/images/arrow-down.png -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/images/brand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/images/brand.png -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/images/brand_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/images/brand_dark.png -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/images/cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/images/cart.png -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/images/logout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/images/logout.png -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/images/main_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/images/main_banner.png -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/images/main_banner_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/images/main_banner_text.png -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/images/my_orders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/images/my_orders.png -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Write your Javascript code. -------------------------------------------------------------------------------- /src/Web/WebMVC/wwwroot/js/site.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMVC/wwwroot/js/site.min.js -------------------------------------------------------------------------------- /src/Web/WebMonolithic/docker-compose.ci.build.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | ci-build: 5 | image: microsoft/aspnetcore-build:1.0-1.1 6 | volumes: 7 | - .:/src 8 | working_dir: /src 9 | command: /bin/bash -c "dotnet restore ./eShopWeb.sln && dotnet publish ./eShopWeb.sln -c Release -o ./obj/Docker/publish" 10 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/docker-compose.override.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | eshopweb: 5 | environment: 6 | - ASPNETCORE_ENVIRONMENT=Development 7 | - ConnectionString=Server=sql.data;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word 8 | - CatalogBaseUrl=http://localhost:5106 9 | ports: 10 | - "5106:5106" 11 | 12 | sql.data: 13 | environment: 14 | - SA_PASSWORD=Pass@word 15 | - ACCEPT_EULA=Y 16 | ports: 17 | - "5433:1433" 18 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/docker-compose.vs.debug.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | eshopweb: 5 | image: eshop/web:dev 6 | build: 7 | args: 8 | source: ${DOCKER_BUILD_SOURCE} 9 | environment: 10 | - DOTNET_USE_POLLING_FILE_WATCHER=1 11 | volumes: 12 | - ./eShopWeb:/app 13 | - ~/.nuget/packages:/root/.nuget/packages:ro 14 | - ~/clrdbg:/clrdbg:ro 15 | entrypoint: tail -f /dev/null 16 | labels: 17 | - "com.microsoft.visualstudio.targetoperatingsystem=linux" 18 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/docker-compose.vs.release.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | eshopweb: 5 | build: 6 | args: 7 | source: ${DOCKER_BUILD_SOURCE} 8 | volumes: 9 | - ~/clrdbg:/clrdbg:ro 10 | entrypoint: tail -f /dev/null 11 | labels: 12 | - "com.microsoft.visualstudio.targetoperatingsystem=linux" 13 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | eshopweb: 5 | image: eshop/web 6 | build: 7 | context: ./eShopWeb 8 | dockerfile: Dockerfile 9 | depends_on: 10 | - sql.data 11 | sql.data: 12 | image: microsoft/mssql-server-linux 13 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "wwwroot/lib" 3 | } 4 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/.dockerignore: -------------------------------------------------------------------------------- 1 | * 2 | !obj/Docker/publish/* 3 | !obj/Docker/empty/ 4 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/CatalogSettings.cs: -------------------------------------------------------------------------------- 1 | namespace Microsoft.eShopWeb 2 | { 3 | public class CatalogSettings 4 | { 5 | public string CatalogBaseUrl { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/aspnetcore:1.1 2 | ARG source 3 | WORKDIR /app 4 | EXPOSE 80 5 | COPY ${source:-obj/Docker/publish} . 6 | ENTRYPOINT ["dotnet", "eShopWeb.dll"] 7 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Models/CatalogBrand.cs: -------------------------------------------------------------------------------- 1 | namespace Microsoft.eShopWeb.Models 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Threading.Tasks; 7 | 8 | 9 | public class CatalogBrand 10 | { 11 | public int Id { get; set; } 12 | 13 | public string Brand { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Models/CatalogType.cs: -------------------------------------------------------------------------------- 1 | namespace Microsoft.eShopWeb.Models 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Threading.Tasks; 7 | 8 | public class CatalogType 9 | { 10 | public int Id { get; set; } 11 | 12 | public string Type { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Pics/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/Pics/1.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Pics/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/Pics/10.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Pics/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/Pics/11.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Pics/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/Pics/12.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Pics/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/Pics/2.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Pics/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/Pics/3.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Pics/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/Pics/4.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Pics/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/Pics/5.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Pics/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/Pics/6.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Pics/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/Pics/7.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Pics/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/Pics/8.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Pics/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/Pics/9.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Services/ICatalogService.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc.Rendering; 2 | using Microsoft.eShopWeb.ViewModels; 3 | using System.Collections.Generic; 4 | using System.Threading.Tasks; 5 | 6 | namespace Microsoft.eShopWeb.Services 7 | { 8 | public interface ICatalogService 9 | { 10 | Task GetCatalogItems(int pageIndex, int itemsPage, int? brandID, int? typeId); 11 | Task> GetBrands(); 12 | Task> GetTypes(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/ViewModels/Catalog.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.eShopWeb.Models; 2 | using System.Collections.Generic; 3 | 4 | namespace Microsoft.eShopWeb.ViewModels 5 | { 6 | public class Catalog 7 | { 8 | public int PageIndex { get; set; } 9 | public int PageSize { get; set; } 10 | public int Count { get; set; } 11 | public List Data { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/ViewModels/PaginationInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace Microsoft.eShopWeb.ViewModels 7 | { 8 | public class PaginationInfo 9 | { 10 | public int TotalItems { get; set; } 11 | public int ItemsPerPage { get; set; } 12 | public int ActualPage { get; set; } 13 | public int TotalPages { get; set; } 14 | public string Previous { get; set; } 15 | public string Next { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using Microsoft.eShopWeb 2 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 3 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionString": "Server=tcp:127.0.0.1,5433;Initial Catalog=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word", 3 | "CatalogBaseUrl": "http://localhost:5106", 4 | "Logging": { 5 | "IncludeScopes": false, 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "asp.net", 3 | "private": true, 4 | "dependencies": { 5 | "bootstrap": "3.3.7", 6 | "jquery": "2.2.0", 7 | "jquery-validation": "1.14.0", 8 | "jquery-validation-unobtrusive": "3.2.6" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/favicon.ico -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/fonts/Montserrat-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/fonts/Montserrat-Bold.eot -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/fonts/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/fonts/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/fonts/Montserrat-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/fonts/Montserrat-Bold.woff -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/fonts/Montserrat-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/fonts/Montserrat-Bold.woff2 -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/fonts/Montserrat-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/fonts/Montserrat-Regular.eot -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/fonts/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/fonts/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/fonts/Montserrat-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/fonts/Montserrat-Regular.woff -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/fonts/Montserrat-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/fonts/Montserrat-Regular.woff2 -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/images/arrow-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/images/arrow-down.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/images/brand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/images/brand.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/images/brand_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/images/brand_dark.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/images/cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/images/cart.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/images/logout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/images/logout.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/images/main_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/images/main_banner.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/images/main_banner_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/images/main_banner_text.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/images/my_orders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/images/my_orders.png -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Write your Javascript code. 2 | -------------------------------------------------------------------------------- /src/Web/WebMonolithic/eShopWeb/wwwroot/js/site.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebMonolithic/eShopWeb/wwwroot/js/site.min.js -------------------------------------------------------------------------------- /src/Web/WebSPA/.dockerignore: -------------------------------------------------------------------------------- 1 | * 2 | !obj/Docker/publish/* 3 | !obj/Docker/empty/ 4 | -------------------------------------------------------------------------------- /src/Web/WebSPA/AppSettings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace eShopOnContainers.WebSPA 7 | { 8 | public class AppSettings 9 | { 10 | public string CatalogUrl { get; set; } 11 | public string OrderingUrl { get; set; } 12 | public string IdentityUrl { get; set; } 13 | public string BasketUrl { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/custom-typings.d.ts: -------------------------------------------------------------------------------- 1 | // Extra variables that live on Global that will be replaced by webpack DefinePlugin 2 | // declare var process: any; 3 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/fonts/Montserrat-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/Client/fonts/Montserrat-Bold.eot -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/fonts/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/Client/fonts/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/fonts/Montserrat-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/Client/fonts/Montserrat-Bold.woff -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/fonts/Montserrat-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/Client/fonts/Montserrat-Bold.woff2 -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/fonts/Montserrat-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/Client/fonts/Montserrat-Regular.eot -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/fonts/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/Client/fonts/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/fonts/Montserrat-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/Client/fonts/Montserrat-Regular.woff -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/fonts/Montserrat-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/Client/fonts/Montserrat-Regular.woff2 -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/guid.ts: -------------------------------------------------------------------------------- 1 | export class Guid { 2 | static newGuid() { 3 | return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { 4 | var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); 5 | return v.toString(16); 6 | }); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/images/arrow-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/Client/images/arrow-down.png -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/images/brand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/Client/images/brand.png -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/images/brand_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/Client/images/brand_dark.png -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/images/cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/Client/images/cart.png -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/images/logout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/Client/images/logout.png -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/images/main_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/Client/images/main_banner.png -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/images/main_banner_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/Client/images/main_banner_text.png -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/images/my_orders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/Client/images/my_orders.png -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/app.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | 3 | @Injectable() 4 | export class AppService { 5 | constructor() { } 6 | } 7 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/basket/basket-status/basket-status.component.html: -------------------------------------------------------------------------------- 1 | 4 | 5 |
6 | 7 |
8 |
9 | {{badge}} 10 |
11 |
12 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/components/header/header.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | 5 | 6 |
7 |
8 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/components/header/header.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'esh-header', 5 | templateUrl: './header.html', 6 | styleUrls: ['./header.scss'] 7 | }) 8 | export class Header { 9 | @Input() 10 | url: string; 11 | } 12 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/components/page-not-found/page-not-found.component.html: -------------------------------------------------------------------------------- 1 |

404!

2 | 3 |

Page you are looking for does not exists.

-------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/components/page-not-found/page-not-found.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/Client/modules/shared/components/page-not-found/page-not-found.component.scss -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/components/page-not-found/page-not-found.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | 3 | import { TestBed, async } from '@angular/core/testing'; 4 | import { PageNotFoundComponent } from './page-not-found.component'; 5 | 6 | describe('Component: PageNotFound', () => { 7 | it('should create an instance', () => { 8 | let component = new PageNotFoundComponent(); 9 | expect(component).toBeTruthy(); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/components/page-not-found/page-not-found.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'appc-page-not-found', 5 | templateUrl: './page-not-found.component.html', 6 | styleUrls: ['./page-not-found.component.scss'] 7 | }) 8 | export class PageNotFoundComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/models/basket.model.ts: -------------------------------------------------------------------------------- 1 | import { IBasketItem } from './basketItem.model'; 2 | 3 | export interface IBasket { 4 | items: IBasketItem[]; 5 | buyerId: string; 6 | } 7 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/models/basketItem.model.ts: -------------------------------------------------------------------------------- 1 | export interface IBasketItem { 2 | id: string; 3 | productId: string; 4 | productName: string; 5 | unitPrice: number; 6 | oldUnitPrice: number; 7 | quantity: number; 8 | pictureUrl: string; 9 | } 10 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/models/catalog.model.ts: -------------------------------------------------------------------------------- 1 | import {ICatalogItem} from './catalogItem.model'; 2 | 3 | export interface ICatalog { 4 | pageIndex: number; 5 | data: ICatalogItem[]; 6 | pageSize: number; 7 | count: number; 8 | } 9 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/models/catalogBrand.model.ts: -------------------------------------------------------------------------------- 1 | export interface ICatalogBrand { 2 | id: number; 3 | brand: string; 4 | } -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/models/catalogItem.model.ts: -------------------------------------------------------------------------------- 1 | export interface ICatalogItem { 2 | id: string; 3 | name: string; 4 | description: string; 5 | price: number; 6 | pictureUri: string; 7 | catalogBrandId: number; 8 | catalogBrand: string; 9 | catalogTypeId: number; 10 | catalogType: string; 11 | units: number; 12 | } 13 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/models/catalogType.model.ts: -------------------------------------------------------------------------------- 1 | export interface ICatalogType { 2 | id: number; 3 | type: string; 4 | } -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/models/configuration.model.ts: -------------------------------------------------------------------------------- 1 | export interface IConfiguration { 2 | catalogUrl: string, 3 | orderingUrl: string, 4 | identityUrl: string, 5 | basketUrl: string 6 | } -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/models/identity.model.ts: -------------------------------------------------------------------------------- 1 | export interface IIdentity { 2 | 3 | } -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/models/order.model.ts: -------------------------------------------------------------------------------- 1 | import {IOrderItem} from './orderItem.model'; 2 | 3 | export interface IOrder { 4 | city: number; 5 | street: string; 6 | state: string; 7 | country: number; 8 | zipcode: string; 9 | cardnumber: string; 10 | cardexpiration: Date; 11 | expiration: string; 12 | cardsecuritynumber: string; 13 | cardholdername: string; 14 | cardtypeid: number; 15 | buyer: string; 16 | ordernumber: string; 17 | total: number; 18 | orderItems: IOrderItem[]; 19 | } 20 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/models/orderItem.model.ts: -------------------------------------------------------------------------------- 1 | export interface IOrderItem { 2 | pictureurl: string; 3 | productname: string; 4 | unitprice: number; 5 | units: number; 6 | productId: number; 7 | } 8 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/models/pager.model.ts: -------------------------------------------------------------------------------- 1 | export interface IPager { 2 | itemsPage: number; 3 | totalItems: number; 4 | actualPage: number; 5 | totalPages: number; 6 | items: number; 7 | } 8 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/pipes/uppercase.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | @Pipe({ 4 | name: 'appfUppercase' 5 | }) 6 | export class UppercasePipe implements PipeTransform { 7 | transform(value: string) { 8 | return value.toUpperCase(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Client/modules/shared/services/notification.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | 3 | @Injectable() 4 | export class NotificationService { 5 | 6 | printSuccessMessage(message: string) { 7 | console.log(message); 8 | } 9 | 10 | printErrorMessage(message: string) { 11 | console.error(message); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/aspnetcore:1.1 2 | ARG source 3 | WORKDIR /app 4 | EXPOSE 80 5 | COPY ${source:-obj/Docker/publish} . 6 | ENTRYPOINT ["dotnet", "WebSPA.dll"] 7 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Dockerfile.nanowin: -------------------------------------------------------------------------------- 1 | FROM microsoft/dotnet:1.1-runtime-nanoserver 2 | SHELL ["powershell"] 3 | ARG source 4 | WORKDIR /app 5 | RUN set-itemproperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters' -Name ServerPriorityTimeLimit -Value 0 -Type DWord 6 | EXPOSE 80 7 | COPY ${source:-obj/Docker/publish} . 8 | ENTRYPOINT ["dotnet", "WebSPA.dll"] 9 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:5104/", 7 | "sslPort": 0 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "environmentVariables": { 14 | "ASPNETCORE_ENVIRONMENT": "Production" 15 | } 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /src/Web/WebSPA/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
5 |
6 | 7 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Views/Shared/_Layout.cshtml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | eShopConContainers.WebSPA 8 | 9 | 10 | 11 | 12 | 13 | @RenderBody() 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | 2 | @addTagHelper "*, Microsoft.AspNetCore.Mvc.TagHelpers" 3 | @addTagHelper "*, Microsoft.AspNetCore.SpaServices" 4 | -------------------------------------------------------------------------------- /src/Web/WebSPA/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /src/Web/WebSPA/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "CatalogUrl": "http://localhost:5101", 3 | "OrderingUrl": "http://localhost:5102", 4 | "BasketUrl": "http://localhost:5103", 5 | "IdentityUrl": "http://localhost:5105", 6 | "CallBackUrl": "http://localhost:5104/", 7 | "Logging": { 8 | "IncludeScopes": false, 9 | "LogLevel": { 10 | "Default": "Debug", 11 | "System": "Information", 12 | "Microsoft": "Information" 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/Web/WebSPA/config/helpers.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author: @AngularClass 3 | */ 4 | 5 | var path = require('path'); 6 | 7 | // Helper functions 8 | var ROOT = path.resolve(__dirname, '..'); 9 | 10 | console.log('root directory:', root() + '\n'); 11 | 12 | function hasProcessFlag(flag) { 13 | return process.argv.join('').indexOf(flag) > -1; 14 | } 15 | 16 | function root(args) { 17 | args = Array.prototype.slice.call(arguments, 0); 18 | return path.join.apply(path, [ROOT].concat(args)); 19 | } 20 | 21 | 22 | exports.hasProcessFlag = hasProcessFlag; 23 | exports.root = root; 24 | -------------------------------------------------------------------------------- /src/Web/WebSPA/config/webpack.config.dev.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | //devtool: 'cheap-module-source-map' 3 | }; 4 | -------------------------------------------------------------------------------- /src/Web/WebSPA/typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "mode": "modules", 3 | "out": "doc", 4 | "theme": "default", 5 | "ignoreCompilerErrors": "true", 6 | "experimentalDecorators": "true", 7 | "emitDecoratorMetadata": "true", 8 | "target": "ES5", 9 | "moduleResolution": "node", 10 | "preserveConstEnums": "true", 11 | "stripInternal": "true", 12 | "suppressExcessPropertyErrors": "true", 13 | "suppressImplicitAnyIndexErrors": "true", 14 | "module": "commonjs" 15 | } 16 | -------------------------------------------------------------------------------- /src/Web/WebSPA/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebSPA/wwwroot/favicon.ico -------------------------------------------------------------------------------- /src/Web/WebSPA/wwwroot/web.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/Web/WebStatus/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "wwwroot/lib" 3 | } 4 | -------------------------------------------------------------------------------- /src/Web/WebStatus/.dockerignore: -------------------------------------------------------------------------------- 1 | * 2 | !obj/Docker/publish/* 3 | !obj/Docker/empty/ 4 | -------------------------------------------------------------------------------- /src/Web/WebStatus/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/aspnetcore:1.1 2 | ARG source 3 | WORKDIR /app 4 | EXPOSE 80 5 | COPY ${source:-obj/Docker/publish} . 6 | ENTRYPOINT ["dotnet", "WebStatus.dll"] 7 | -------------------------------------------------------------------------------- /src/Web/WebStatus/Viewmodels/NamedCheckResult.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.HealthChecks; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace WebStatus.Viewmodels 8 | { 9 | public class NamedCheckResult 10 | { 11 | public string Name { get; } 12 | public IHealthCheckResult Result { get; } 13 | 14 | public NamedCheckResult(string name, IHealthCheckResult result) 15 | { 16 | Name = name; 17 | Result = result; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Web/WebStatus/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using WebStatus 2 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 3 | -------------------------------------------------------------------------------- /src/Web/WebStatus/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /src/Web/WebStatus/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Web/WebStatus/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Warning" 6 | } 7 | }, 8 | "OrderingUrl": "http://localhost:5102/hc", 9 | "BasketUrl": "http://localhost:5103/hc", 10 | "CatalogUrl": "http://localhost:5101/hc", 11 | "IdentityUrl": "http://localhost:5105/hc" 12 | } 13 | -------------------------------------------------------------------------------- /src/Web/WebStatus/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "asp.net", 3 | "private": true, 4 | "dependencies": { 5 | "bootstrap": "3.3.7", 6 | "jquery": "2.2.0", 7 | "jquery-validation": "1.14.0", 8 | "jquery-validation-unobtrusive": "3.2.6" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Web/WebStatus/wwwroot/css/site.min.css: -------------------------------------------------------------------------------- 1 | body{padding-top:50px;padding-bottom:20px}.body-content{padding-left:15px;padding-right:15px}input,select,textarea{max-width:280px}.carousel-caption p{font-size:20px;line-height:1.4}.carousel-inner .item img[src$=".svg"]{width:100%}@media screen and (max-width:767px){.carousel-caption{display:none}} -------------------------------------------------------------------------------- /src/Web/WebStatus/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebStatus/wwwroot/favicon.ico -------------------------------------------------------------------------------- /src/Web/WebStatus/wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Write your Javascript code. 2 | -------------------------------------------------------------------------------- /src/Web/WebStatus/wwwroot/js/site.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet-architecture/eShopOnAzure/952bd41e3997820390e2f44c3bea24942c43e58d/src/Web/WebStatus/wwwroot/js/site.min.js -------------------------------------------------------------------------------- /test/Services/FunctionalTests/Services/Catalog/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionString": "Server=tcp:127.0.0.1,5433;Initial Catalog=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word", 3 | "ExternalCatalogBaseUrl": "http://localhost:5101", 4 | "IdentityUrl": "http://localhost:5105", 5 | "isTest": "true", 6 | "EventBusConnection": "localhost" 7 | } 8 | -------------------------------------------------------------------------------- /test/Services/FunctionalTests/Services/Ordering/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionString": "Server=tcp:127.0.0.1,5433;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word;", 3 | "ExternalCatalogBaseUrl": "http://localhost:5101", 4 | "IdentityUrl": "http://localhost:5105", 5 | "isTest": "true", 6 | "EventBusConnection": "localhost" 7 | } 8 | -------------------------------------------------------------------------------- /test/Services/FunctionalTests/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionString": "127.0.0.1", 3 | "IdentityUrl": "http://localhost:5105", 4 | "isTest": "true", 5 | "EventBusConnection": "localhost" 6 | } 7 | -------------------------------------------------------------------------------- /test/Services/IntegrationTests/Services/Catalog/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionString": "Server=tcp:127.0.0.1,5433;Initial Catalog=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word", 3 | "ExternalCatalogBaseUrl": "http://localhost:5101", 4 | "IdentityUrl": "http://localhost:5105", 5 | "isTest": "true", 6 | "EventBusConnection": "localhost" 7 | } 8 | -------------------------------------------------------------------------------- /test/Services/IntegrationTests/Services/Ordering/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionString": "Server=tcp:127.0.0.1,5433;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word;", 3 | "ExternalCatalogBaseUrl": "http://localhost:5101", 4 | "IdentityUrl": "http://localhost:5105", 5 | "isTest": "true", 6 | "EventBusConnection": "localhost" 7 | } 8 | --------------------------------------------------------------------------------