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