├── 01. Essential Microservices Concepts
├── Client
│ ├── src
│ │ ├── assets
│ │ │ └── .gitkeep
│ │ ├── app
│ │ │ ├── app.component.css
│ │ │ ├── cars
│ │ │ │ ├── create
│ │ │ │ │ └── create.component.css
│ │ │ │ ├── edit
│ │ │ │ │ └── edit.component.css
│ │ │ │ ├── list
│ │ │ │ │ └── list.component.css
│ │ │ │ ├── sort
│ │ │ │ │ ├── sort.model.ts
│ │ │ │ │ └── sort.component.css
│ │ │ │ ├── category.model.ts
│ │ │ │ ├── search
│ │ │ │ │ ├── search.model.ts
│ │ │ │ │ └── search.component.css
│ │ │ │ ├── view
│ │ │ │ │ └── view.component.css
│ │ │ │ ├── cars.model.ts
│ │ │ │ └── dealer-cars
│ │ │ │ │ └── dealer-cars.component.css
│ │ │ ├── authentication
│ │ │ │ ├── login
│ │ │ │ │ ├── login.component.css
│ │ │ │ │ └── login.model.ts
│ │ │ │ └── register
│ │ │ │ │ ├── register.component.css
│ │ │ │ │ └── register.model.ts
│ │ │ ├── dealers
│ │ │ │ └── profile
│ │ │ │ │ ├── profile.component.css
│ │ │ │ │ ├── password.model.ts
│ │ │ │ │ └── profile.model.ts
│ │ │ ├── app.component.html
│ │ │ ├── shared
│ │ │ │ ├── pagination
│ │ │ │ │ ├── pagination.component.css
│ │ │ │ │ └── pagination.component.html
│ │ │ │ ├── navbar
│ │ │ │ │ └── navbar.component.css
│ │ │ │ └── pop-up
│ │ │ │ │ └── pop-up.component.html
│ │ │ └── app.component.ts
│ │ ├── environments
│ │ │ └── environment.prod.ts
│ │ ├── favicon.ico
│ │ └── main.ts
│ ├── e2e
│ │ ├── tsconfig.json
│ │ └── src
│ │ │ └── app.po.ts
│ ├── tsconfig.app.json
│ ├── .editorconfig
│ └── tsconfig.spec.json
└── Server
│ └── CarRentalSystem
│ ├── ApplicationSettings.cs
│ ├── Data
│ └── Models
│ │ ├── TransmissionType.cs
│ │ ├── User.cs
│ │ ├── Options.cs
│ │ ├── Manufacturer.cs
│ │ └── Category.cs
│ ├── Services
│ ├── Identity
│ │ ├── ICurrentUserService.cs
│ │ └── IJwtTokenGeneratorService.cs
│ ├── IDataService.cs
│ ├── Manufacturers
│ │ └── IManufacturerService.cs
│ └── Categories
│ │ └── ICategoryService.cs
│ ├── appsettings.Development.json
│ ├── Models
│ ├── IMapFrom.cs
│ ├── CarAds
│ │ └── CreateCarAdOutputModel.cs
│ ├── Dealers
│ │ └── DealerOutputModel.cs
│ └── Identity
│ │ ├── ChangePasswordInputModel.cs
│ │ ├── LoginOutputModel.cs
│ │ └── LoginSuccessModel.cs
│ └── Controllers
│ └── ApiController.cs
├── 02. Working With Distributed Data
├── Client
│ ├── src
│ │ ├── assets
│ │ │ └── .gitkeep
│ │ ├── app
│ │ │ ├── app.component.css
│ │ │ ├── cars
│ │ │ │ ├── create
│ │ │ │ │ └── create.component.css
│ │ │ │ ├── edit
│ │ │ │ │ └── edit.component.css
│ │ │ │ ├── list
│ │ │ │ │ └── list.component.css
│ │ │ │ ├── sort
│ │ │ │ │ ├── sort.model.ts
│ │ │ │ │ └── sort.component.css
│ │ │ │ ├── category.model.ts
│ │ │ │ ├── search
│ │ │ │ │ ├── search.model.ts
│ │ │ │ │ └── search.component.css
│ │ │ │ ├── view
│ │ │ │ │ └── view.component.css
│ │ │ │ ├── cars.model.ts
│ │ │ │ └── dealer-cars
│ │ │ │ │ └── dealer-cars.component.css
│ │ │ ├── dealers
│ │ │ │ └── profile
│ │ │ │ │ ├── profile.component.css
│ │ │ │ │ ├── password.model.ts
│ │ │ │ │ └── profile.model.ts
│ │ │ ├── authentication
│ │ │ │ ├── login
│ │ │ │ │ ├── login.component.css
│ │ │ │ │ └── login.model.ts
│ │ │ │ └── register
│ │ │ │ │ ├── register.component.css
│ │ │ │ │ └── register.model.ts
│ │ │ ├── app.component.html
│ │ │ ├── shared
│ │ │ │ ├── pagination
│ │ │ │ │ ├── pagination.component.css
│ │ │ │ │ └── pagination.component.html
│ │ │ │ ├── navbar
│ │ │ │ │ └── navbar.component.css
│ │ │ │ └── pop-up
│ │ │ │ │ └── pop-up.component.html
│ │ │ └── app.component.ts
│ │ ├── environments
│ │ │ └── environment.prod.ts
│ │ ├── favicon.ico
│ │ └── main.ts
│ ├── e2e
│ │ ├── tsconfig.json
│ │ └── src
│ │ │ └── app.po.ts
│ ├── tsconfig.app.json
│ ├── .editorconfig
│ └── tsconfig.spec.json
└── Server
│ ├── CarRentalSystem
│ ├── ApplicationSettings.cs
│ ├── Services
│ │ └── Identity
│ │ │ └── ICurrentUserService.cs
│ ├── Controllers
│ │ └── ApiController.cs
│ └── Data
│ │ └── DataConstants.cs
│ ├── CarRentalSystem.Identity
│ ├── Data
│ │ ├── Models
│ │ │ └── User.cs
│ │ └── DataConstants.cs
│ ├── appsettings.Development.json
│ ├── Services
│ │ └── Identity
│ │ │ └── ITokenGeneratorService.cs
│ └── Models
│ │ └── Identity
│ │ ├── ChangePasswordInputModel.cs
│ │ └── UserOutputModel.cs
│ ├── CarRentalSystem.Dealers
│ ├── Data
│ │ └── Models
│ │ │ ├── TransmissionType.cs
│ │ │ ├── Options.cs
│ │ │ ├── Manufacturer.cs
│ │ │ └── Category.cs
│ ├── appsettings.Development.json
│ ├── Models
│ │ ├── IMapFrom.cs
│ │ ├── CarAds
│ │ │ └── CreateCarAdOutputModel.cs
│ │ └── Dealers
│ │ │ └── DealerOutputModel.cs
│ └── Services
│ │ ├── IDataService.cs
│ │ └── Manufacturers
│ │ └── IManufacturerService.cs
│ ├── CarRentalSystem.Schedule
│ ├── CarRentalSystem.Schedule.csproj
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ └── Data
│ │ └── Models
│ │ └── Feedback.cs
│ └── CarRentalSystem.Statistics
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── Data
│ └── Models
│ │ ├── CarAdView.cs
│ │ └── Statistics.cs
│ └── CarRentalSystem.Statistics.csproj
├── 06. Resiliency And High Availability
├── Client
│ ├── src
│ │ ├── assets
│ │ │ └── .gitkeep
│ │ ├── app
│ │ │ ├── app.component.css
│ │ │ ├── cars
│ │ │ │ ├── create
│ │ │ │ │ └── create.component.css
│ │ │ │ ├── edit
│ │ │ │ │ └── edit.component.css
│ │ │ │ ├── list
│ │ │ │ │ └── list.component.css
│ │ │ │ ├── sort
│ │ │ │ │ ├── sort.model.ts
│ │ │ │ │ └── sort.component.css
│ │ │ │ ├── category.model.ts
│ │ │ │ ├── search
│ │ │ │ │ ├── search.model.ts
│ │ │ │ │ └── search.component.css
│ │ │ │ ├── view
│ │ │ │ │ └── view.component.css
│ │ │ │ └── cars.model.ts
│ │ │ ├── authentication
│ │ │ │ ├── login
│ │ │ │ │ ├── login.component.css
│ │ │ │ │ └── login.model.ts
│ │ │ │ └── register
│ │ │ │ │ ├── register.component.css
│ │ │ │ │ └── register.model.ts
│ │ │ ├── dealers
│ │ │ │ └── profile
│ │ │ │ │ ├── profile.component.css
│ │ │ │ │ ├── password.model.ts
│ │ │ │ │ └── profile.model.ts
│ │ │ ├── app.component.html
│ │ │ ├── shared
│ │ │ │ ├── pagination
│ │ │ │ │ ├── pagination.component.css
│ │ │ │ │ └── pagination.component.html
│ │ │ │ ├── statistics
│ │ │ │ │ └── statistics.model.ts
│ │ │ │ ├── navbar
│ │ │ │ │ └── navbar.component.css
│ │ │ │ └── pop-up
│ │ │ │ │ └── pop-up.component.html
│ │ │ └── app.component.ts
│ │ ├── environments
│ │ │ └── environment.prod.ts
│ │ ├── favicon.ico
│ │ └── main.ts
│ ├── e2e
│ │ ├── tsconfig.json
│ │ └── src
│ │ │ └── app.po.ts
│ ├── tsconfig.app.json
│ ├── .editorconfig
│ └── tsconfig.spec.json
└── Server
│ ├── CarRentalSystem.Admin
│ ├── Views
│ │ ├── _ViewStart.cshtml
│ │ ├── Home
│ │ │ └── Privacy.cshtml
│ │ ├── Statistics
│ │ │ └── Index.cshtml
│ │ ├── Shared
│ │ │ └── _ValidationScriptsPartial.cshtml
│ │ └── _ViewImports.cshtml
│ ├── wwwroot
│ │ ├── favicon.ico
│ │ └── js
│ │ │ └── site.js
│ ├── appsettings.Development.json
│ ├── Models
│ │ ├── ErrorViewModel.cs
│ │ ├── Statistics
│ │ │ └── StatisticsOutputModel.cs
│ │ ├── Identity
│ │ │ ├── UserOutputModel.cs
│ │ │ └── UserInputModel.cs
│ │ └── Dealers
│ │ │ ├── DealerInputModel.cs
│ │ │ └── DealerDetailsOutputModel.cs
│ └── Services
│ │ ├── Statistics
│ │ └── IStatisticsService.cs
│ │ └── Identity
│ │ └── IIdentityService.cs
│ ├── CarRentalSystem
│ ├── Common.env
│ ├── Services
│ │ ├── IDataSeeder.cs
│ │ ├── Identity
│ │ │ ├── ICurrentTokenService.cs
│ │ │ ├── ICurrentUserService.cs
│ │ │ └── CurrentTokenService.cs
│ │ └── IDataService.cs
│ ├── Constants.cs
│ ├── ApplicationSettings.cs
│ ├── Models
│ │ └── IMapFrom.cs
│ ├── Messages
│ │ └── Dealers
│ │ │ ├── CarAdUpdatedMessage.cs
│ │ │ └── CarAdCreatedMessage.cs
│ ├── Controllers
│ │ └── ApiController.cs
│ ├── Infrastructure
│ │ ├── AuthorizeAdministratorAttribute.cs
│ │ ├── ClaimsPrincipalExtensions.cs
│ │ ├── InfrastructureConstants.cs
│ │ └── ConfigurationExtensions.cs
│ └── Data
│ │ └── DataConstants.cs
│ ├── CarRentalSystem.Identity
│ ├── Data
│ │ ├── Models
│ │ │ └── User.cs
│ │ └── DataConstants.cs
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── Models
│ │ └── Identity
│ │ │ ├── ChangePasswordInputModel.cs
│ │ │ └── UserOutputModel.cs
│ └── Services
│ │ └── Identity
│ │ └── ITokenGeneratorService.cs
│ ├── CarRentalSystem.Dealers
│ ├── Data
│ │ └── Models
│ │ │ ├── TransmissionType.cs
│ │ │ ├── Options.cs
│ │ │ ├── Manufacturer.cs
│ │ │ └── Category.cs
│ ├── appsettings.Development.json
│ ├── Models
│ │ ├── CarAds
│ │ │ └── CreateCarAdOutputModel.cs
│ │ └── Dealers
│ │ │ └── DealerOutputModel.cs
│ └── Services
│ │ └── Manufacturers
│ │ └── IManufacturerService.cs
│ ├── CarRentalSystem.Schedule
│ ├── appsettings.Development.json
│ ├── Services
│ │ └── IRentedCarService.cs
│ └── Data
│ │ └── Models
│ │ └── Feedback.cs
│ ├── CarRentalSystem.Watchdog
│ └── appsettings.Development.json
│ ├── CarRentalSystem.Notifications
│ ├── appsettings.Development.json
│ ├── Constants.cs
│ └── appsettings.json
│ ├── CarRentalSystem.Statistics
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── Models
│ │ ├── CarAdViews
│ │ │ └── CarAdViewOutputModel.cs
│ │ └── Statistics
│ │ │ └── StatisticsOutputModel.cs
│ ├── Data
│ │ └── Models
│ │ │ ├── CarAdView.cs
│ │ │ └── Statistics.cs
│ └── Services
│ │ └── Statistics
│ │ └── IStatisticsService.cs
│ ├── CarRentalSystem.Dealers.Gateway
│ ├── appsettings.Development.json
│ ├── Models
│ │ ├── CarAdViews
│ │ │ └── CarAdViewOutputModel.cs
│ │ └── CarAds
│ │ │ ├── MineCarAdsOutputModel.cs
│ │ │ └── MineCarAdOutputModel.cs
│ └── Services
│ │ ├── ServiceEndpoints.cs
│ │ └── CarAds
│ │ └── ICarAdService.cs
│ └── .dockerignore
├── 03. Front-End And Back-End Communication
├── Client
│ ├── src
│ │ ├── assets
│ │ │ └── .gitkeep
│ │ ├── app
│ │ │ ├── app.component.css
│ │ │ ├── cars
│ │ │ │ ├── create
│ │ │ │ │ └── create.component.css
│ │ │ │ ├── edit
│ │ │ │ │ └── edit.component.css
│ │ │ │ ├── list
│ │ │ │ │ └── list.component.css
│ │ │ │ ├── sort
│ │ │ │ │ ├── sort.model.ts
│ │ │ │ │ └── sort.component.css
│ │ │ │ ├── category.model.ts
│ │ │ │ ├── search
│ │ │ │ │ ├── search.model.ts
│ │ │ │ │ └── search.component.css
│ │ │ │ ├── view
│ │ │ │ │ └── view.component.css
│ │ │ │ ├── cars.model.ts
│ │ │ │ └── dealer-cars
│ │ │ │ │ └── dealer-cars.component.css
│ │ │ ├── dealers
│ │ │ │ └── profile
│ │ │ │ │ ├── profile.component.css
│ │ │ │ │ ├── password.model.ts
│ │ │ │ │ └── profile.model.ts
│ │ │ ├── authentication
│ │ │ │ ├── login
│ │ │ │ │ ├── login.component.css
│ │ │ │ │ └── login.model.ts
│ │ │ │ └── register
│ │ │ │ │ ├── register.component.css
│ │ │ │ │ └── register.model.ts
│ │ │ ├── app.component.html
│ │ │ ├── shared
│ │ │ │ ├── pagination
│ │ │ │ │ ├── pagination.component.css
│ │ │ │ │ └── pagination.component.html
│ │ │ │ ├── statistics
│ │ │ │ │ └── statistics.model.ts
│ │ │ │ ├── navbar
│ │ │ │ │ └── navbar.component.css
│ │ │ │ └── pop-up
│ │ │ │ │ └── pop-up.component.html
│ │ │ └── app.component.ts
│ │ ├── environments
│ │ │ └── environment.prod.ts
│ │ ├── favicon.ico
│ │ └── main.ts
│ ├── e2e
│ │ ├── tsconfig.json
│ │ └── src
│ │ │ └── app.po.ts
│ ├── tsconfig.app.json
│ ├── .editorconfig
│ └── tsconfig.spec.json
└── Server
│ ├── CarRentalSystem.Admin
│ ├── Views
│ │ ├── _ViewStart.cshtml
│ │ ├── Home
│ │ │ └── Privacy.cshtml
│ │ ├── Statistics
│ │ │ └── Index.cshtml
│ │ ├── Shared
│ │ │ └── _ValidationScriptsPartial.cshtml
│ │ └── _ViewImports.cshtml
│ ├── wwwroot
│ │ ├── favicon.ico
│ │ └── js
│ │ │ └── site.js
│ ├── appsettings.Development.json
│ ├── Models
│ │ ├── ErrorViewModel.cs
│ │ ├── Statistics
│ │ │ └── StatisticsOutputModel.cs
│ │ ├── Identity
│ │ │ ├── UserOutputModel.cs
│ │ │ └── UserInputModel.cs
│ │ └── Dealers
│ │ │ ├── DealerInputModel.cs
│ │ │ └── DealerDetailsOutputModel.cs
│ └── Services
│ │ ├── Statistics
│ │ └── IStatisticsService.cs
│ │ └── Identity
│ │ └── IIdentityService.cs
│ ├── CarRentalSystem
│ ├── Services
│ │ ├── IDataSeeder.cs
│ │ ├── Identity
│ │ │ ├── ICurrentTokenService.cs
│ │ │ ├── ICurrentUserService.cs
│ │ │ └── CurrentTokenService.cs
│ │ └── IDataService.cs
│ ├── Constants.cs
│ ├── ApplicationSettings.cs
│ ├── Models
│ │ └── IMapFrom.cs
│ ├── Controllers
│ │ └── ApiController.cs
│ ├── Infrastructure
│ │ ├── AuthorizeAdministratorAttribute.cs
│ │ ├── ClaimsPrincipalExtensions.cs
│ │ └── InfrastructureConstants.cs
│ └── Data
│ │ └── DataConstants.cs
│ ├── CarRentalSystem.Identity
│ ├── Data
│ │ ├── Models
│ │ │ └── User.cs
│ │ └── DataConstants.cs
│ ├── appsettings.Development.json
│ ├── Models
│ │ └── Identity
│ │ │ ├── ChangePasswordInputModel.cs
│ │ │ └── UserOutputModel.cs
│ └── Services
│ │ └── Identity
│ │ └── ITokenGeneratorService.cs
│ ├── CarRentalSystem.Dealers
│ ├── Data
│ │ └── Models
│ │ │ ├── TransmissionType.cs
│ │ │ ├── Options.cs
│ │ │ ├── Manufacturer.cs
│ │ │ └── Category.cs
│ ├── appsettings.Development.json
│ ├── Models
│ │ ├── CarAds
│ │ │ └── CreateCarAdOutputModel.cs
│ │ └── Dealers
│ │ │ └── DealerOutputModel.cs
│ └── Services
│ │ └── Manufacturers
│ │ └── IManufacturerService.cs
│ ├── CarRentalSystem.Schedule
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── CarRentalSystem.Schedule.csproj
│ └── Data
│ │ └── Models
│ │ └── Feedback.cs
│ ├── CarRentalSystem.Statistics
│ ├── appsettings.Development.json
│ ├── Models
│ │ ├── CarAdViews
│ │ │ └── CarAdViewOutputModel.cs
│ │ └── Statistics
│ │ │ └── StatisticsOutputModel.cs
│ ├── Data
│ │ └── Models
│ │ │ ├── CarAdView.cs
│ │ │ └── Statistics.cs
│ └── Services
│ │ └── Statistics
│ │ └── IStatisticsService.cs
│ └── CarRentalSystem.Dealers.Gateway
│ ├── appsettings.Development.json
│ ├── Services
│ ├── ServiceEndpoints.cs
│ └── CarAds
│ │ └── ICarAdService.cs
│ └── Models
│ ├── CarAdViews
│ └── CarAdViewOutputModel.cs
│ └── CarAds
│ ├── MineCarAdsOutputModel.cs
│ └── MineCarAdOutputModel.cs
├── 04. Internal Microservice Communication
├── Client
│ ├── src
│ │ ├── assets
│ │ │ └── .gitkeep
│ │ ├── app
│ │ │ ├── app.component.css
│ │ │ ├── cars
│ │ │ │ ├── create
│ │ │ │ │ └── create.component.css
│ │ │ │ ├── edit
│ │ │ │ │ └── edit.component.css
│ │ │ │ ├── list
│ │ │ │ │ └── list.component.css
│ │ │ │ ├── sort
│ │ │ │ │ ├── sort.model.ts
│ │ │ │ │ └── sort.component.css
│ │ │ │ ├── category.model.ts
│ │ │ │ ├── search
│ │ │ │ │ ├── search.model.ts
│ │ │ │ │ └── search.component.css
│ │ │ │ ├── view
│ │ │ │ │ └── view.component.css
│ │ │ │ ├── cars.model.ts
│ │ │ │ └── dealer-cars
│ │ │ │ │ └── dealer-cars.component.css
│ │ │ ├── dealers
│ │ │ │ └── profile
│ │ │ │ │ ├── profile.component.css
│ │ │ │ │ ├── password.model.ts
│ │ │ │ │ └── profile.model.ts
│ │ │ ├── authentication
│ │ │ │ ├── login
│ │ │ │ │ ├── login.component.css
│ │ │ │ │ └── login.model.ts
│ │ │ │ └── register
│ │ │ │ │ ├── register.component.css
│ │ │ │ │ └── register.model.ts
│ │ │ ├── app.component.html
│ │ │ ├── shared
│ │ │ │ ├── pagination
│ │ │ │ │ ├── pagination.component.css
│ │ │ │ │ └── pagination.component.html
│ │ │ │ ├── statistics
│ │ │ │ │ └── statistics.model.ts
│ │ │ │ ├── navbar
│ │ │ │ │ └── navbar.component.css
│ │ │ │ └── pop-up
│ │ │ │ │ └── pop-up.component.html
│ │ │ └── app.component.ts
│ │ ├── environments
│ │ │ └── environment.prod.ts
│ │ ├── favicon.ico
│ │ └── main.ts
│ ├── e2e
│ │ ├── tsconfig.json
│ │ └── src
│ │ │ └── app.po.ts
│ ├── tsconfig.app.json
│ ├── .editorconfig
│ └── tsconfig.spec.json
└── Server
│ ├── CarRentalSystem.Admin
│ ├── Views
│ │ ├── _ViewStart.cshtml
│ │ ├── Home
│ │ │ └── Privacy.cshtml
│ │ ├── Statistics
│ │ │ └── Index.cshtml
│ │ ├── Shared
│ │ │ └── _ValidationScriptsPartial.cshtml
│ │ └── _ViewImports.cshtml
│ ├── wwwroot
│ │ ├── favicon.ico
│ │ └── js
│ │ │ └── site.js
│ ├── appsettings.Development.json
│ ├── Models
│ │ ├── ErrorViewModel.cs
│ │ ├── Statistics
│ │ │ └── StatisticsOutputModel.cs
│ │ ├── Identity
│ │ │ ├── UserOutputModel.cs
│ │ │ └── UserInputModel.cs
│ │ └── Dealers
│ │ │ ├── DealerInputModel.cs
│ │ │ └── DealerDetailsOutputModel.cs
│ └── Services
│ │ ├── Statistics
│ │ └── IStatisticsService.cs
│ │ └── Identity
│ │ └── IIdentityService.cs
│ ├── CarRentalSystem
│ ├── Services
│ │ ├── IDataSeeder.cs
│ │ ├── Identity
│ │ │ ├── ICurrentTokenService.cs
│ │ │ ├── ICurrentUserService.cs
│ │ │ └── CurrentTokenService.cs
│ │ └── IDataService.cs
│ ├── ApplicationSettings.cs
│ ├── Constants.cs
│ ├── Models
│ │ └── IMapFrom.cs
│ ├── Messages
│ │ └── Dealers
│ │ │ ├── CarAdUpdatedMessage.cs
│ │ │ └── CarAdCreatedMessage.cs
│ ├── Controllers
│ │ └── ApiController.cs
│ ├── Infrastructure
│ │ ├── AuthorizeAdministratorAttribute.cs
│ │ ├── ClaimsPrincipalExtensions.cs
│ │ └── InfrastructureConstants.cs
│ └── Data
│ │ └── DataConstants.cs
│ ├── CarRentalSystem.Identity
│ ├── Data
│ │ ├── Models
│ │ │ └── User.cs
│ │ └── DataConstants.cs
│ ├── appsettings.Development.json
│ ├── Models
│ │ └── Identity
│ │ │ ├── ChangePasswordInputModel.cs
│ │ │ └── UserOutputModel.cs
│ └── Services
│ │ └── Identity
│ │ └── ITokenGeneratorService.cs
│ ├── CarRentalSystem.Dealers
│ ├── Data
│ │ └── Models
│ │ │ ├── TransmissionType.cs
│ │ │ ├── Options.cs
│ │ │ ├── Manufacturer.cs
│ │ │ └── Category.cs
│ ├── appsettings.Development.json
│ ├── Models
│ │ ├── CarAds
│ │ │ └── CreateCarAdOutputModel.cs
│ │ └── Dealers
│ │ │ └── DealerOutputModel.cs
│ └── Services
│ │ └── Manufacturers
│ │ └── IManufacturerService.cs
│ ├── CarRentalSystem.Schedule
│ ├── appsettings.Development.json
│ ├── Services
│ │ └── IRentedCarService.cs
│ └── Data
│ │ └── Models
│ │ └── Feedback.cs
│ ├── CarRentalSystem.Statistics
│ ├── appsettings.Development.json
│ ├── Models
│ │ ├── CarAdViews
│ │ │ └── CarAdViewOutputModel.cs
│ │ └── Statistics
│ │ │ └── StatisticsOutputModel.cs
│ ├── Data
│ │ └── Models
│ │ │ ├── CarAdView.cs
│ │ │ └── Statistics.cs
│ └── Services
│ │ └── Statistics
│ │ └── IStatisticsService.cs
│ ├── CarRentalSystem.Dealers.Gateway
│ ├── appsettings.Development.json
│ ├── Services
│ │ ├── ServiceEndpoints.cs
│ │ └── CarAds
│ │ │ └── ICarAdService.cs
│ └── Models
│ │ ├── CarAdViews
│ │ └── CarAdViewOutputModel.cs
│ │ └── CarAds
│ │ ├── MineCarAdsOutputModel.cs
│ │ └── MineCarAdOutputModel.cs
│ └── CarRentalSystem.Notifications
│ ├── appsettings.Development.json
│ ├── Constants.cs
│ └── appsettings.json
└── 05. Containerized And Orchestrated Microservices
├── Client
├── src
│ ├── assets
│ │ └── .gitkeep
│ ├── app
│ │ ├── app.component.css
│ │ ├── cars
│ │ │ ├── create
│ │ │ │ └── create.component.css
│ │ │ ├── edit
│ │ │ │ └── edit.component.css
│ │ │ ├── list
│ │ │ │ └── list.component.css
│ │ │ ├── sort
│ │ │ │ ├── sort.model.ts
│ │ │ │ └── sort.component.css
│ │ │ ├── category.model.ts
│ │ │ ├── search
│ │ │ │ ├── search.model.ts
│ │ │ │ └── search.component.css
│ │ │ └── view
│ │ │ │ └── view.component.css
│ │ ├── dealers
│ │ │ └── profile
│ │ │ │ ├── profile.component.css
│ │ │ │ ├── password.model.ts
│ │ │ │ └── profile.model.ts
│ │ ├── authentication
│ │ │ ├── login
│ │ │ │ ├── login.component.css
│ │ │ │ └── login.model.ts
│ │ │ └── register
│ │ │ │ ├── register.component.css
│ │ │ │ └── register.model.ts
│ │ ├── app.component.html
│ │ ├── shared
│ │ │ ├── pagination
│ │ │ │ ├── pagination.component.css
│ │ │ │ └── pagination.component.html
│ │ │ ├── statistics
│ │ │ │ └── statistics.model.ts
│ │ │ ├── navbar
│ │ │ │ └── navbar.component.css
│ │ │ └── pop-up
│ │ │ │ └── pop-up.component.html
│ │ └── app.component.ts
│ ├── environments
│ │ └── environment.prod.ts
│ └── favicon.ico
├── e2e
│ ├── tsconfig.json
│ └── src
│ │ └── app.po.ts
├── tsconfig.app.json
├── .editorconfig
└── tsconfig.spec.json
└── Server
├── CarRentalSystem.Admin
├── Views
│ ├── _ViewStart.cshtml
│ ├── Home
│ │ └── Privacy.cshtml
│ ├── Statistics
│ │ └── Index.cshtml
│ ├── Shared
│ │ └── _ValidationScriptsPartial.cshtml
│ └── _ViewImports.cshtml
├── wwwroot
│ ├── favicon.ico
│ └── js
│ │ └── site.js
├── appsettings.Development.json
├── Models
│ ├── ErrorViewModel.cs
│ ├── Statistics
│ │ └── StatisticsOutputModel.cs
│ ├── Identity
│ │ ├── UserOutputModel.cs
│ │ └── UserInputModel.cs
│ └── Dealers
│ │ ├── DealerInputModel.cs
│ │ └── DealerDetailsOutputModel.cs
└── Services
│ ├── Statistics
│ └── IStatisticsService.cs
│ └── Identity
│ └── IIdentityService.cs
├── CarRentalSystem
├── Common.env
├── Services
│ ├── IDataSeeder.cs
│ ├── Identity
│ │ ├── ICurrentTokenService.cs
│ │ ├── ICurrentUserService.cs
│ │ └── CurrentTokenService.cs
│ └── IDataService.cs
├── ApplicationSettings.cs
├── Constants.cs
├── Models
│ └── IMapFrom.cs
├── Messages
│ └── Dealers
│ │ ├── CarAdUpdatedMessage.cs
│ │ └── CarAdCreatedMessage.cs
├── Controllers
│ └── ApiController.cs
├── Infrastructure
│ ├── AuthorizeAdministratorAttribute.cs
│ ├── ClaimsPrincipalExtensions.cs
│ └── InfrastructureConstants.cs
└── Data
│ └── DataConstants.cs
├── CarRentalSystem.Identity
├── Data
│ ├── Models
│ │ └── User.cs
│ └── DataConstants.cs
├── appsettings.Development.json
├── appsettings.json
├── Models
│ └── Identity
│ │ ├── ChangePasswordInputModel.cs
│ │ └── UserOutputModel.cs
└── Services
│ └── Identity
│ └── ITokenGeneratorService.cs
├── CarRentalSystem.Dealers
├── Data
│ └── Models
│ │ ├── TransmissionType.cs
│ │ ├── Options.cs
│ │ └── Manufacturer.cs
├── appsettings.Development.json
├── appsettings.json
├── Models
│ ├── CarAds
│ │ └── CreateCarAdOutputModel.cs
│ └── Dealers
│ │ └── DealerOutputModel.cs
└── Services
│ └── Manufacturers
│ └── IManufacturerService.cs
├── CarRentalSystem.Schedule
├── appsettings.Development.json
├── Services
│ └── IRentedCarService.cs
└── Data
│ └── Models
│ └── Feedback.cs
├── CarRentalSystem.Statistics
├── appsettings.Development.json
├── appsettings.json
├── Models
│ ├── CarAdViews
│ │ └── CarAdViewOutputModel.cs
│ └── Statistics
│ │ └── StatisticsOutputModel.cs
├── Data
│ └── Models
│ │ ├── CarAdView.cs
│ │ └── Statistics.cs
└── Services
│ └── Statistics
│ └── IStatisticsService.cs
├── CarRentalSystem.Dealers.Gateway
├── appsettings.Development.json
├── Services
│ ├── ServiceEndpoints.cs
│ └── CarAds
│ │ └── ICarAdService.cs
└── Models
│ ├── CarAdViews
│ └── CarAdViewOutputModel.cs
│ └── CarAds
│ ├── MineCarAdsOutputModel.cs
│ └── MineCarAdOutputModel.cs
└── CarRentalSystem.Notifications
├── appsettings.Development.json
├── Constants.cs
└── appsettings.json
/01. Essential Microservices Concepts/Client/src/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/app.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/app.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/app.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/app.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/app.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/cars/create/create.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/app.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/cars/create/create.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/dealers/profile/profile.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/cars/create/create.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/cars/create/create.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/cars/create/create.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/authentication/login/login.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/dealers/profile/profile.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/authentication/login/login.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/dealers/profile/profile.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/dealers/profile/profile.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/authentication/login/login.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/dealers/profile/profile.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/authentication/login/login.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/authentication/login/login.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/cars/create/create.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/dealers/profile/profile.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/authentication/login/login.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/cars/edit/edit.component.css:
--------------------------------------------------------------------------------
1 | img {
2 | width: 100%;
3 | }
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/cars/edit/edit.component.css:
--------------------------------------------------------------------------------
1 | img {
2 | width: 100%;
3 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/cars/edit/edit.component.css:
--------------------------------------------------------------------------------
1 | img {
2 | width: 100%;
3 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/cars/edit/edit.component.css:
--------------------------------------------------------------------------------
1 | img {
2 | width: 100%;
3 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/cars/edit/edit.component.css:
--------------------------------------------------------------------------------
1 | img {
2 | width: 100%;
3 | }
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/cars/edit/edit.component.css:
--------------------------------------------------------------------------------
1 | img {
2 | width: 100%;
3 | }
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Admin/Views/_ViewStart.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "_Layout";
3 | }
4 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Admin/Views/_ViewStart.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "_Layout";
3 | }
4 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/shared/pagination/pagination.component.css:
--------------------------------------------------------------------------------
1 | .page-link {
2 | cursor: pointer;
3 | }
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/shared/pagination/pagination.component.css:
--------------------------------------------------------------------------------
1 | .page-link {
2 | cursor: pointer;
3 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Admin/Views/_ViewStart.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "_Layout";
3 | }
4 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/shared/pagination/pagination.component.css:
--------------------------------------------------------------------------------
1 | .page-link {
2 | cursor: pointer;
3 | }
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/environments/environment.prod.ts:
--------------------------------------------------------------------------------
1 | export const environment = {
2 | production: true
3 | };
4 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/environments/environment.prod.ts:
--------------------------------------------------------------------------------
1 | export const environment = {
2 | production: true
3 | };
4 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/shared/pagination/pagination.component.css:
--------------------------------------------------------------------------------
1 | .page-link {
2 | cursor: pointer;
3 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/shared/pagination/pagination.component.css:
--------------------------------------------------------------------------------
1 | .page-link {
2 | cursor: pointer;
3 | }
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Admin/Views/_ViewStart.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "_Layout";
3 | }
4 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/environments/environment.prod.ts:
--------------------------------------------------------------------------------
1 | export const environment = {
2 | production: true
3 | };
4 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/cars/list/list.component.css:
--------------------------------------------------------------------------------
1 | .card {
2 | width: 100%;
3 | margin: 10% 5%;
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/cars/list/list.component.css:
--------------------------------------------------------------------------------
1 | .card {
2 | width: 100%;
3 | margin: 10% 5%;
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/cars/sort/sort.model.ts:
--------------------------------------------------------------------------------
1 | export interface Sort {
2 | sortBy: string;
3 | order: string;
4 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/environments/environment.prod.ts:
--------------------------------------------------------------------------------
1 | export const environment = {
2 | production: true
3 | };
4 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/environments/environment.prod.ts:
--------------------------------------------------------------------------------
1 | export const environment = {
2 | production: true
3 | };
4 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/cars/list/list.component.css:
--------------------------------------------------------------------------------
1 | .card {
2 | width: 100%;
3 | margin: 10% 5%;
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/cars/sort/sort.model.ts:
--------------------------------------------------------------------------------
1 | export interface Sort {
2 | sortBy: string;
3 | order: string;
4 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/cars/list/list.component.css:
--------------------------------------------------------------------------------
1 | .card {
2 | width: 100%;
3 | margin: 10% 5%;
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/cars/list/list.component.css:
--------------------------------------------------------------------------------
1 | .card {
2 | width: 100%;
3 | margin: 10% 5%;
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/shared/pagination/pagination.component.css:
--------------------------------------------------------------------------------
1 | .page-link {
2 | cursor: pointer;
3 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/cars/sort/sort.model.ts:
--------------------------------------------------------------------------------
1 | export interface Sort {
2 | sortBy: string;
3 | order: string;
4 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/cars/sort/sort.model.ts:
--------------------------------------------------------------------------------
1 | export interface Sort {
2 | sortBy: string;
3 | order: string;
4 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/cars/sort/sort.model.ts:
--------------------------------------------------------------------------------
1 | export interface Sort {
2 | sortBy: string;
3 | order: string;
4 | }
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/environments/environment.prod.ts:
--------------------------------------------------------------------------------
1 | export const environment = {
2 | production: true
3 | };
4 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/cars/list/list.component.css:
--------------------------------------------------------------------------------
1 | .card {
2 | width: 100%;
3 | margin: 10% 5%;
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/cars/sort/sort.model.ts:
--------------------------------------------------------------------------------
1 | export interface Sort {
2 | sortBy: string;
3 | order: string;
4 | }
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/authentication/login/login.model.ts:
--------------------------------------------------------------------------------
1 | export interface LoginFormModel {
2 | email: string;
3 | password: string;
4 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem/Common.env:
--------------------------------------------------------------------------------
1 | # Common application settings
2 | ApplicationSettings__Secret=S0M3 M4G1C UN1C0RNS G3N3R4T3D TH1S S3CR3T
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/authentication/login/login.model.ts:
--------------------------------------------------------------------------------
1 | export interface LoginFormModel {
2 | email: string;
3 | password: string;
4 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/authentication/login/login.model.ts:
--------------------------------------------------------------------------------
1 | export interface LoginFormModel {
2 | email: string;
3 | password: string;
4 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/authentication/login/login.model.ts:
--------------------------------------------------------------------------------
1 | export interface LoginFormModel {
2 | email: string;
3 | password: string;
4 | }
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/dealers/profile/password.model.ts:
--------------------------------------------------------------------------------
1 | export interface PasswordChange {
2 | currentPassword: string;
3 | newPassword: string;
4 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/authentication/login/login.model.ts:
--------------------------------------------------------------------------------
1 | export interface LoginFormModel {
2 | email: string;
3 | password: string;
4 | }
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/dealers/profile/password.model.ts:
--------------------------------------------------------------------------------
1 | export interface PasswordChange {
2 | currentPassword: string;
3 | newPassword: string;
4 | }
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/authentication/login/login.model.ts:
--------------------------------------------------------------------------------
1 | export interface LoginFormModel {
2 | email: string;
3 | password: string;
4 | }
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem/Common.env:
--------------------------------------------------------------------------------
1 | # Common application settings
2 | ApplicationSettings__Secret=S0M3 M4G1C UN1C0RNS G3N3R4T3D TH1S S3CR3T
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/dealers/profile/password.model.ts:
--------------------------------------------------------------------------------
1 | export interface PasswordChange {
2 | currentPassword: string;
3 | newPassword: string;
4 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/shared/statistics/statistics.model.ts:
--------------------------------------------------------------------------------
1 | export interface Statistics {
2 | totalCarAds: number;
3 | totalRentedCars: number;
4 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/dealers/profile/password.model.ts:
--------------------------------------------------------------------------------
1 | export interface PasswordChange {
2 | currentPassword: string;
3 | newPassword: string;
4 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/shared/statistics/statistics.model.ts:
--------------------------------------------------------------------------------
1 | export interface Statistics {
2 | totalCarAds: number;
3 | totalRentedCars: number;
4 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/dealers/profile/password.model.ts:
--------------------------------------------------------------------------------
1 | export interface PasswordChange {
2 | currentPassword: string;
3 | newPassword: string;
4 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/shared/statistics/statistics.model.ts:
--------------------------------------------------------------------------------
1 | export interface Statistics {
2 | totalCarAds: number;
3 | totalRentedCars: number;
4 | }
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/shared/navbar/navbar.component.css:
--------------------------------------------------------------------------------
1 | .nav-item a:hover {
2 | cursor: pointer;
3 | }
4 |
5 | .nav-link {
6 | color: #f8f9fa!important;
7 | }
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/authentication/register/register.component.css:
--------------------------------------------------------------------------------
1 | p a :hover {
2 | color: blue;
3 | border-bottom: 1px solid blue;
4 | cursor: pointer;
5 | }
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/shared/navbar/navbar.component.css:
--------------------------------------------------------------------------------
1 | .nav-item a:hover {
2 | cursor: pointer;
3 | }
4 |
5 | .nav-link {
6 | color: #f8f9fa!important;
7 | }
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/dealers/profile/password.model.ts:
--------------------------------------------------------------------------------
1 | export interface PasswordChange {
2 | currentPassword: string;
3 | newPassword: string;
4 | }
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/shared/statistics/statistics.model.ts:
--------------------------------------------------------------------------------
1 | export interface Statistics {
2 | totalCarAds: number;
3 | totalRentedCars: number;
4 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/shared/navbar/navbar.component.css:
--------------------------------------------------------------------------------
1 | .nav-item a:hover {
2 | cursor: pointer;
3 | }
4 |
5 | .nav-link {
6 | color: #f8f9fa!important;
7 | }
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/authentication/register/register.component.css:
--------------------------------------------------------------------------------
1 | p a :hover {
2 | color: blue;
3 | border-bottom: 1px solid blue;
4 | cursor: pointer;
5 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/shared/navbar/navbar.component.css:
--------------------------------------------------------------------------------
1 | .nav-item a:hover {
2 | cursor: pointer;
3 | }
4 |
5 | .nav-link {
6 | color: #f8f9fa!important;
7 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/shared/navbar/navbar.component.css:
--------------------------------------------------------------------------------
1 | .nav-item a:hover {
2 | cursor: pointer;
3 | }
4 |
5 | .nav-link {
6 | color: #f8f9fa!important;
7 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/authentication/register/register.component.css:
--------------------------------------------------------------------------------
1 | p a :hover {
2 | color: blue;
3 | border-bottom: 1px solid blue;
4 | cursor: pointer;
5 | }
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/cars/category.model.ts:
--------------------------------------------------------------------------------
1 | export interface Category {
2 | id?: number;
3 | name: string;
4 | description: string;
5 | totalCarAds: number;
6 | }
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/cars/category.model.ts:
--------------------------------------------------------------------------------
1 | export interface Category {
2 | id?: number;
3 | name: string;
4 | description: string;
5 | totalCarAds: number;
6 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/authentication/register/register.component.css:
--------------------------------------------------------------------------------
1 | p a :hover {
2 | color: blue;
3 | border-bottom: 1px solid blue;
4 | cursor: pointer;
5 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/authentication/register/register.component.css:
--------------------------------------------------------------------------------
1 | p a :hover {
2 | color: blue;
3 | border-bottom: 1px solid blue;
4 | cursor: pointer;
5 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/cars/category.model.ts:
--------------------------------------------------------------------------------
1 | export interface Category {
2 | id?: number;
3 | name: string;
4 | description: string;
5 | totalCarAds: number;
6 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/cars/category.model.ts:
--------------------------------------------------------------------------------
1 | export interface Category {
2 | id?: number;
3 | name: string;
4 | description: string;
5 | totalCarAds: number;
6 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/cars/category.model.ts:
--------------------------------------------------------------------------------
1 | export interface Category {
2 | id?: number;
3 | name: string;
4 | description: string;
5 | totalCarAds: number;
6 | }
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/authentication/register/register.component.css:
--------------------------------------------------------------------------------
1 | p a :hover {
2 | color: blue;
3 | border-bottom: 1px solid blue;
4 | cursor: pointer;
5 | }
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/shared/navbar/navbar.component.css:
--------------------------------------------------------------------------------
1 | .nav-item a:hover {
2 | cursor: pointer;
3 | }
4 |
5 | .nav-link {
6 | color: #f8f9fa!important;
7 | }
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/dealers/profile/profile.model.ts:
--------------------------------------------------------------------------------
1 | export interface Profile {
2 | id?: number;
3 | name: string;
4 | phoneNumber: string;
5 | totalCarAds?: number;
6 | }
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/cars/sort/sort.component.css:
--------------------------------------------------------------------------------
1 | form {
2 | margin: 1%;
3 | border: none;
4 | padding: 5%;
5 | border-right: 1px solid gray;
6 | margin-bottom: 0%;
7 | }
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/dealers/profile/profile.model.ts:
--------------------------------------------------------------------------------
1 | export interface Profile {
2 | id?: number;
3 | name: string;
4 | phoneNumber: string;
5 | totalCarAds?: number;
6 | }
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivaylokenov/Architecture-of-ASP.NET-Core-Microservices-Applications/HEAD/02. Working With Distributed Data/Client/src/favicon.ico
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/dealers/profile/profile.model.ts:
--------------------------------------------------------------------------------
1 | export interface Profile {
2 | id?: number;
3 | name: string;
4 | phoneNumber: string;
5 | totalCarAds?: number;
6 | }
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/cars/sort/sort.component.css:
--------------------------------------------------------------------------------
1 | form {
2 | margin: 1%;
3 | border: none;
4 | padding: 5%;
5 | border-right: 1px solid gray;
6 | margin-bottom: 0%;
7 | }
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivaylokenov/Architecture-of-ASP.NET-Core-Microservices-Applications/HEAD/01. Essential Microservices Concepts/Client/src/favicon.ico
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/dealers/profile/profile.model.ts:
--------------------------------------------------------------------------------
1 | export interface Profile {
2 | id?: number;
3 | name: string;
4 | phoneNumber: string;
5 | totalCarAds?: number;
6 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/cars/sort/sort.component.css:
--------------------------------------------------------------------------------
1 | form {
2 | margin: 1%;
3 | border: none;
4 | padding: 5%;
5 | border-right: 1px solid gray;
6 | margin-bottom: 0%;
7 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/dealers/profile/profile.model.ts:
--------------------------------------------------------------------------------
1 | export interface Profile {
2 | id?: number;
3 | name: string;
4 | phoneNumber: string;
5 | totalCarAds?: number;
6 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem/Services/IDataSeeder.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services
2 | {
3 | public interface IDataSeeder
4 | {
5 | void SeedData();
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/cars/category.model.ts:
--------------------------------------------------------------------------------
1 | export interface Category {
2 | id?: number;
3 | name: string;
4 | description: string;
5 | totalCarAds: number;
6 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/cars/sort/sort.component.css:
--------------------------------------------------------------------------------
1 | form {
2 | margin: 1%;
3 | border: none;
4 | padding: 5%;
5 | border-right: 1px solid gray;
6 | margin-bottom: 0%;
7 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivaylokenov/Architecture-of-ASP.NET-Core-Microservices-Applications/HEAD/06. Resiliency And High Availability/Client/src/favicon.ico
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem/Services/IDataSeeder.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services
2 | {
3 | public interface IDataSeeder
4 | {
5 | void SeedData();
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/cars/sort/sort.component.css:
--------------------------------------------------------------------------------
1 | form {
2 | margin: 1%;
3 | border: none;
4 | padding: 5%;
5 | border-right: 1px solid gray;
6 | margin-bottom: 0%;
7 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem/Services/IDataSeeder.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services
2 | {
3 | public interface IDataSeeder
4 | {
5 | void SeedData();
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivaylokenov/Architecture-of-ASP.NET-Core-Microservices-Applications/HEAD/04. Internal Microservice Communication/Client/src/favicon.ico
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/ApplicationSettings.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem
2 | {
3 | public class ApplicationSettings
4 | {
5 | public string Secret { get; set; }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/authentication/register/register.model.ts:
--------------------------------------------------------------------------------
1 | export interface RegisterModelForm {
2 | email: string;
3 | password: string;
4 | name: string;
5 | phoneNumber: string;
6 | }
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem/ApplicationSettings.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem
2 | {
3 | public class ApplicationSettings
4 | {
5 | public string Secret { get; set; }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivaylokenov/Architecture-of-ASP.NET-Core-Microservices-Applications/HEAD/03. Front-End And Back-End Communication/Client/src/favicon.ico
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/cars/sort/sort.component.css:
--------------------------------------------------------------------------------
1 | form {
2 | margin: 1%;
3 | border: none;
4 | padding: 5%;
5 | border-right: 1px solid gray;
6 | margin-bottom: 0%;
7 | }
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/dealers/profile/profile.model.ts:
--------------------------------------------------------------------------------
1 | export interface Profile {
2 | id?: number;
3 | name: string;
4 | phoneNumber: string;
5 | totalCarAds?: number;
6 | }
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem/Services/IDataSeeder.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services
2 | {
3 | public interface IDataSeeder
4 | {
5 | void SeedData();
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/authentication/register/register.model.ts:
--------------------------------------------------------------------------------
1 | export interface RegisterModelForm {
2 | email: string;
3 | password: string;
4 | name: string;
5 | phoneNumber: string;
6 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/authentication/register/register.model.ts:
--------------------------------------------------------------------------------
1 | export interface RegisterModelForm {
2 | email: string;
3 | password: string;
4 | name: string;
5 | phoneNumber: string;
6 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/authentication/register/register.model.ts:
--------------------------------------------------------------------------------
1 | export interface RegisterModelForm {
2 | email: string;
3 | password: string;
4 | name: string;
5 | phoneNumber: string;
6 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem/Constants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem
2 | {
3 | public class Constants
4 | {
5 | public const string AdministratorRoleName = "Administrator";
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/authentication/register/register.model.ts:
--------------------------------------------------------------------------------
1 | export interface RegisterModelForm {
2 | email: string;
3 | password: string;
4 | name: string;
5 | phoneNumber: string;
6 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem/Constants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem
2 | {
3 | public class Constants
4 | {
5 | public const string AdministratorRoleName = "Administrator";
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem/ApplicationSettings.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem
2 | {
3 | public class ApplicationSettings
4 | {
5 | public string Secret { get; private set; }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem/Constants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem
2 | {
3 | public class Constants
4 | {
5 | public const string AdministratorRoleName = "Administrator";
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem/ApplicationSettings.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem
2 | {
3 | public class ApplicationSettings
4 | {
5 | public string Secret { get; private set; }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem/ApplicationSettings.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem
2 | {
3 | public class ApplicationSettings
4 | {
5 | public string Secret { get; private set; }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/authentication/register/register.model.ts:
--------------------------------------------------------------------------------
1 | export interface RegisterModelForm {
2 | email: string;
3 | password: string;
4 | name: string;
5 | phoneNumber: string;
6 | }
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivaylokenov/Architecture-of-ASP.NET-Core-Microservices-Applications/HEAD/05. Containerized And Orchestrated Microservices/Client/src/favicon.ico
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/Data/Models/TransmissionType.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Data.Models
2 | {
3 | public enum TransmissionType
4 | {
5 | Manual = 1,
6 | Automatic = 2
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/cars/search/search.model.ts:
--------------------------------------------------------------------------------
1 | export interface Search {
2 | manufacturer: string;
3 | dealer: string;
4 | category: number;
5 | minPricePerDay: number;
6 | maxPricePerDay: number;
7 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Admin/Views/Home/Privacy.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Privacy Policy";
3 | }
4 |
@ViewData["Title"]
5 |
6 | Use this page to detail your site's privacy policy.
7 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem/ApplicationSettings.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem
2 | {
3 | public class ApplicationSettings
4 | {
5 | public string Secret { get; private set; }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem/Constants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem
2 | {
3 | public class Constants
4 | {
5 | public const string AdministratorRoleName = "Administrator";
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Admin/Views/Home/Privacy.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Privacy Policy";
3 | }
4 | @ViewData["Title"]
5 |
6 | Use this page to detail your site's privacy policy.
7 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/cars/search/search.model.ts:
--------------------------------------------------------------------------------
1 | export interface Search {
2 | manufacturer: string;
3 | dealer: string;
4 | category: number;
5 | minPricePerDay: number;
6 | maxPricePerDay: number;
7 | }
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem/Services/Identity/ICurrentUserService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services.Identity
2 | {
3 | public interface ICurrentUserService
4 | {
5 | string UserId { get; }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/cars/search/search.model.ts:
--------------------------------------------------------------------------------
1 | export interface Search {
2 | manufacturer: string;
3 | dealer: string;
4 | category: number;
5 | minPricePerDay: number;
6 | maxPricePerDay: number;
7 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Admin/Views/Home/Privacy.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Privacy Policy";
3 | }
4 | @ViewData["Title"]
5 |
6 | Use this page to detail your site's privacy policy.
7 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/cars/search/search.model.ts:
--------------------------------------------------------------------------------
1 | export interface Search {
2 | manufacturer: string;
3 | dealer: string;
4 | category: number;
5 | minPricePerDay: number;
6 | maxPricePerDay: number;
7 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/cars/search/search.model.ts:
--------------------------------------------------------------------------------
1 | export interface Search {
2 | manufacturer: string;
3 | dealer: string;
4 | category: number;
5 | minPricePerDay: number;
6 | maxPricePerDay: number;
7 | }
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/Services/Identity/ICurrentUserService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services.Identity
2 | {
3 | public interface ICurrentUserService
4 | {
5 | string UserId { get; }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Identity/Data/Models/User.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Data.Models
2 | {
3 | using Microsoft.AspNetCore.Identity;
4 |
5 | public class User : IdentityUser
6 | {
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Admin/Views/Home/Privacy.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Privacy Policy";
3 | }
4 | @ViewData["Title"]
5 |
6 | Use this page to detail your site's privacy policy.
7 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Identity/Data/Models/User.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Data.Models
2 | {
3 | using Microsoft.AspNetCore.Identity;
4 |
5 | public class User : IdentityUser
6 | {
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Dealers/Data/Models/TransmissionType.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | public enum TransmissionType
4 | {
5 | Manual = 1,
6 | Automatic = 2
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Schedule/CarRentalSystem.Schedule.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Identity/Data/Models/User.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Data.Models
2 | {
3 | using Microsoft.AspNetCore.Identity;
4 |
5 | public class User : IdentityUser
6 | {
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Identity/Data/Models/User.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Data.Models
2 | {
3 | using Microsoft.AspNetCore.Identity;
4 |
5 | public class User : IdentityUser
6 | {
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/cars/search/search.model.ts:
--------------------------------------------------------------------------------
1 | export interface Search {
2 | manufacturer: string;
3 | dealer: string;
4 | category: number;
5 | minPricePerDay: number;
6 | maxPricePerDay: number;
7 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Dealers/Data/Models/TransmissionType.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | public enum TransmissionType
4 | {
5 | Manual = 1,
6 | Automatic = 2
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/shared/pop-up/pop-up.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Dealers/Data/Models/TransmissionType.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | public enum TransmissionType
4 | {
5 | Manual = 1,
6 | Automatic = 2
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Dealers/Data/Models/TransmissionType.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | public enum TransmissionType
4 | {
5 | Manual = 1,
6 | Automatic = 2
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Admin/wwwroot/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivaylokenov/Architecture-of-ASP.NET-Core-Microservices-Applications/HEAD/06. Resiliency And High Availability/Server/CarRentalSystem.Admin/wwwroot/favicon.ico
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/shared/pop-up/pop-up.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/shared/pop-up/pop-up.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Identity/Data/Models/User.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Data.Models
2 | {
3 | using Microsoft.AspNetCore.Identity;
4 |
5 | public class User : IdentityUser
6 | {
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/shared/pop-up/pop-up.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/shared/pop-up/pop-up.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Admin/wwwroot/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivaylokenov/Architecture-of-ASP.NET-Core-Microservices-Applications/HEAD/03. Front-End And Back-End Communication/Server/CarRentalSystem.Admin/wwwroot/favicon.ico
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Admin/wwwroot/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivaylokenov/Architecture-of-ASP.NET-Core-Microservices-Applications/HEAD/04. Internal Microservice Communication/Server/CarRentalSystem.Admin/wwwroot/favicon.ico
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Dealers/Data/Models/TransmissionType.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | public enum TransmissionType
4 | {
5 | Manual = 1,
6 | Automatic = 2
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Admin/Views/Statistics/Index.cshtml:
--------------------------------------------------------------------------------
1 | @model StatisticsOutputModel
2 |
3 |
4 |
@Model.TotalCarAds Car Ads | @Model.TotalRentedCars Rented Cars
5 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Admin/Views/Statistics/Index.cshtml:
--------------------------------------------------------------------------------
1 | @model StatisticsOutputModel
2 |
3 |
4 |
@Model.TotalCarAds Car Ads | @Model.TotalRentedCars Rented Cars
5 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Admin/Views/Statistics/Index.cshtml:
--------------------------------------------------------------------------------
1 | @model StatisticsOutputModel
2 |
3 |
4 |
@Model.TotalCarAds Car Ads | @Model.TotalRentedCars Rented Cars
5 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/shared/pop-up/pop-up.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Admin/Views/Shared/_ValidationScriptsPartial.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Admin/Views/Shared/_ValidationScriptsPartial.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/cars/view/view.component.css:
--------------------------------------------------------------------------------
1 | img {
2 | width: 100%;
3 | }
4 |
5 | h3 {
6 | display: inline-block;
7 | }
8 | label {
9 | margin-left: 5%;
10 | font-size: 1.5rem;
11 | }
12 |
13 | .container {
14 | margin-top: 2%;
15 | }
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Dealers/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Admin/Views/Shared/_ValidationScriptsPartial.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Admin/Views/Statistics/Index.cshtml:
--------------------------------------------------------------------------------
1 | @model StatisticsOutputModel
2 |
3 |
4 |
@Model.TotalCarAds Car Ads | @Model.TotalRentedCars Rented Cars
5 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Admin/wwwroot/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivaylokenov/Architecture-of-ASP.NET-Core-Microservices-Applications/HEAD/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Admin/wwwroot/favicon.ico
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/cars/view/view.component.css:
--------------------------------------------------------------------------------
1 | img {
2 | width: 100%;
3 | }
4 |
5 | h3 {
6 | display: inline-block;
7 | }
8 | label {
9 | margin-left: 5%;
10 | font-size: 1.5rem;
11 | }
12 |
13 | .container {
14 | margin-top: 2%;
15 | }
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/Data/Models/User.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Data.Models
2 | {
3 | using Microsoft.AspNetCore.Identity;
4 |
5 | public class User : IdentityUser
6 | {
7 | public Dealer Dealer { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Identity/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Schedule/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Statistics/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Admin/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/cars/view/view.component.css:
--------------------------------------------------------------------------------
1 | img {
2 | width: 100%;
3 | }
4 |
5 | h3 {
6 | display: inline-block;
7 | }
8 | label {
9 | margin-left: 5%;
10 | font-size: 1.5rem;
11 | }
12 |
13 | .container {
14 | margin-top: 2%;
15 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Admin/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Admin/Views/Shared/_ValidationScriptsPartial.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/cars/view/view.component.css:
--------------------------------------------------------------------------------
1 | img {
2 | width: 100%;
3 | }
4 |
5 | h3 {
6 | display: inline-block;
7 | }
8 | label {
9 | margin-left: 5%;
10 | font-size: 1.5rem;
11 | }
12 |
13 | .container {
14 | margin-top: 2%;
15 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Admin/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Dealers/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Identity/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Schedule/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Watchdog/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/cars/view/view.component.css:
--------------------------------------------------------------------------------
1 | img {
2 | width: 100%;
3 | }
4 |
5 | h3 {
6 | display: inline-block;
7 | }
8 | label {
9 | margin-left: 5%;
10 | font-size: 1.5rem;
11 | }
12 |
13 | .container {
14 | margin-top: 2%;
15 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Dealers/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Identity/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Schedule/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Statistics/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem/Services/Identity/ICurrentTokenService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services.Identity
2 | {
3 | public interface ICurrentTokenService
4 | {
5 | string Get();
6 |
7 | void Set(string token);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Dealers/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Identity/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Schedule/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Statistics/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem/Services/Identity/ICurrentTokenService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services.Identity
2 | {
3 | public interface ICurrentTokenService
4 | {
5 | string Get();
6 |
7 | void Set(string token);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Notifications/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Statistics/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem/Services/Identity/ICurrentTokenService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services.Identity
2 | {
3 | public interface ICurrentTokenService
4 | {
5 | string Get();
6 |
7 | void Set(string token);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Dealers.Gateway/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Dealers.Gateway/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Notifications/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/cars/view/view.component.css:
--------------------------------------------------------------------------------
1 | img {
2 | width: 100%;
3 | }
4 |
5 | h3 {
6 | display: inline-block;
7 | }
8 | label {
9 | margin-left: 5%;
10 | font-size: 1.5rem;
11 | }
12 |
13 | .container {
14 | margin-top: 2%;
15 | }
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Admin/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Dealers/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Dealers.Gateway/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/cars/search/search.component.css:
--------------------------------------------------------------------------------
1 | label {
2 | margin-right: 2%;
3 | }
4 |
5 | input[number] {
6 | width: 50%;
7 | }
8 |
9 | form {
10 | margin: 0% 1%;
11 | border: none;
12 | border-right: 1px solid gray;
13 | padding-top: 0%;
14 | }
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/Models/IMapFrom.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Models
2 | {
3 | using AutoMapper;
4 |
5 | public interface IMapFrom
6 | {
7 | void Mapping(Profile mapper) => mapper.CreateMap(typeof(T), this.GetType());
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/cars/search/search.component.css:
--------------------------------------------------------------------------------
1 | label {
2 | margin-right: 2%;
3 | }
4 |
5 | input[number] {
6 | width: 50%;
7 | }
8 |
9 | form {
10 | margin: 0% 1%;
11 | border: none;
12 | border-right: 1px solid gray;
13 | padding-top: 0%;
14 | }
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Schedule/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "AllowedHosts": "*"
10 | }
11 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Statistics/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "AllowedHosts": "*"
10 | }
11 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem/Models/IMapFrom.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Models
2 | {
3 | using AutoMapper;
4 |
5 | public interface IMapFrom
6 | {
7 | void Mapping(Profile mapper) => mapper.CreateMap(typeof(T), this.GetType());
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem/Models/IMapFrom.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Models
2 | {
3 | using AutoMapper;
4 |
5 | public interface IMapFrom
6 | {
7 | void Mapping(Profile mapper) => mapper.CreateMap(typeof(T), this.GetType());
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Identity/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Schedule/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Statistics/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem/Services/Identity/ICurrentTokenService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services.Identity
2 | {
3 | public interface ICurrentTokenService
4 | {
5 | string Get();
6 |
7 | void Set(string token);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/cars/search/search.component.css:
--------------------------------------------------------------------------------
1 | label {
2 | margin-right: 2%;
3 | }
4 |
5 | input[number] {
6 | width: 50%;
7 | }
8 |
9 | form {
10 | margin: 0% 1%;
11 | border: none;
12 | border-right: 1px solid gray;
13 | padding-top: 0%;
14 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Identity/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "AllowedHosts": "*"
10 | }
11 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem/Models/IMapFrom.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Models
2 | {
3 | using AutoMapper;
4 |
5 | public interface IMapFrom
6 | {
7 | void Mapping(Profile mapper) => mapper.CreateMap(typeof(T), this.GetType());
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem/Services/Identity/ICurrentUserService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services.Identity
2 | {
3 | public interface ICurrentUserService
4 | {
5 | string UserId { get; }
6 |
7 | bool IsAdministrator { get; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/cars/search/search.component.css:
--------------------------------------------------------------------------------
1 | label {
2 | margin-right: 2%;
3 | }
4 |
5 | input[number] {
6 | width: 50%;
7 | }
8 |
9 | form {
10 | margin: 0% 1%;
11 | border: none;
12 | border-right: 1px solid gray;
13 | padding-top: 0%;
14 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Schedule/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "AllowedHosts": "*"
10 | }
11 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem/Services/Identity/ICurrentUserService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services.Identity
2 | {
3 | public interface ICurrentUserService
4 | {
5 | string UserId { get; }
6 |
7 | bool IsAdministrator { get; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/cars/search/search.component.css:
--------------------------------------------------------------------------------
1 | label {
2 | margin-right: 2%;
3 | }
4 |
5 | input[number] {
6 | width: 50%;
7 | }
8 |
9 | form {
10 | margin: 0% 1%;
11 | border: none;
12 | border-right: 1px solid gray;
13 | padding-top: 0%;
14 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem/Services/Identity/ICurrentUserService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services.Identity
2 | {
3 | public interface ICurrentUserService
4 | {
5 | string UserId { get; }
6 |
7 | bool IsAdministrator { get; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Dealers.Gateway/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Notifications/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Admin/wwwroot/js/site.js:
--------------------------------------------------------------------------------
1 | // Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
2 | // for details on configuring this project to bundle and minify static web assets.
3 |
4 | // Write your JavaScript code.
5 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Statistics/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "AllowedHosts": "*"
10 | }
11 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/Services/Identity/IJwtTokenGeneratorService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services.Identity
2 | {
3 | using Data.Models;
4 |
5 | public interface IJwtTokenGeneratorService
6 | {
7 | string GenerateToken(User user);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Dealers/Models/IMapFrom.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Models
2 | {
3 | using AutoMapper;
4 |
5 | public interface IMapFrom
6 | {
7 | void Mapping(Profile mapper) => mapper.CreateMap(typeof(T), this.GetType());
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Admin/wwwroot/js/site.js:
--------------------------------------------------------------------------------
1 | // Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
2 | // for details on configuring this project to bundle and minify static web assets.
3 |
4 | // Write your JavaScript code.
5 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Admin/wwwroot/js/site.js:
--------------------------------------------------------------------------------
1 | // Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
2 | // for details on configuring this project to bundle and minify static web assets.
3 |
4 | // Write your JavaScript code.
5 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem/Models/IMapFrom.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Models
2 | {
3 | using AutoMapper;
4 |
5 | public interface IMapFrom
6 | {
7 | void Mapping(Profile mapper) => mapper.CreateMap(typeof(T), this.GetType());
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/Services/IDataService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services
2 | {
3 | using System.Threading.Tasks;
4 |
5 | public interface IDataService
6 | where TEntity : class
7 | {
8 | Task Save(TEntity entity);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Identity/Services/Identity/ITokenGeneratorService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Services.Identity
2 | {
3 | using Data.Models;
4 |
5 | public interface ITokenGeneratorService
6 | {
7 | string GenerateToken(User user);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/cars/search/search.component.css:
--------------------------------------------------------------------------------
1 | label {
2 | margin-right: 2%;
3 | }
4 |
5 | input[number] {
6 | width: 50%;
7 | }
8 |
9 | form {
10 | margin: 0% 1%;
11 | border: none;
12 | border-right: 1px solid gray;
13 | padding-top: 0%;
14 | }
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Dealers/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "AllowedHosts": "*"
10 | }
11 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Identity/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "AllowedHosts": "*"
10 | }
11 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Statistics/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "AllowedHosts": "*"
10 | }
11 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem/Services/Identity/ICurrentUserService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services.Identity
2 | {
3 | public interface ICurrentUserService
4 | {
5 | string UserId { get; }
6 |
7 | bool IsAdministrator { get; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/e2e/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../out-tsc/e2e",
5 | "module": "commonjs",
6 | "target": "es5",
7 | "types": [
8 | "jasmine",
9 | "jasminewd2",
10 | "node"
11 | ]
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-root',
5 | templateUrl: './app.component.html',
6 | styleUrls: ['./app.component.css']
7 | })
8 | export class AppComponent {
9 | title = 'car-rental-system';
10 | }
11 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem/Services/IDataService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services
2 | {
3 | using System.Threading.Tasks;
4 |
5 | public interface IDataService
6 | where TEntity : class
7 | {
8 | Task Save(TEntity entity);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem/Services/IDataService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services
2 | {
3 | using System.Threading.Tasks;
4 |
5 | public interface IDataService
6 | where TEntity : class
7 | {
8 | Task Save(TEntity entity);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Admin/wwwroot/js/site.js:
--------------------------------------------------------------------------------
1 | // Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
2 | // for details on configuring this project to bundle and minify static web assets.
3 |
4 | // Write your JavaScript code.
5 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/e2e/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../out-tsc/e2e",
5 | "module": "commonjs",
6 | "target": "es5",
7 | "types": [
8 | "jasmine",
9 | "jasminewd2",
10 | "node"
11 | ]
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-root',
5 | templateUrl: './app.component.html',
6 | styleUrls: ['./app.component.css']
7 | })
8 | export class AppComponent {
9 | title = 'car-rental-system';
10 | }
11 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "./out-tsc/app",
5 | "types": []
6 | },
7 | "files": [
8 | "src/main.ts",
9 | "src/polyfills.ts"
10 | ],
11 | "include": [
12 | "src/**/*.d.ts"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "./out-tsc/app",
5 | "types": []
6 | },
7 | "files": [
8 | "src/main.ts",
9 | "src/polyfills.ts"
10 | ],
11 | "include": [
12 | "src/**/*.d.ts"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-root',
5 | templateUrl: './app.component.html',
6 | styleUrls: ['./app.component.css']
7 | })
8 | export class AppComponent {
9 | title = 'car-rental-system';
10 | }
11 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/e2e/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../out-tsc/e2e",
5 | "module": "commonjs",
6 | "target": "es5",
7 | "types": [
8 | "jasmine",
9 | "jasminewd2",
10 | "node"
11 | ]
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-root',
5 | templateUrl: './app.component.html',
6 | styleUrls: ['./app.component.css']
7 | })
8 | export class AppComponent {
9 | title = 'car-rental-system';
10 | }
11 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "./out-tsc/app",
5 | "types": []
6 | },
7 | "files": [
8 | "src/main.ts",
9 | "src/polyfills.ts"
10 | ],
11 | "include": [
12 | "src/**/*.d.ts"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Dealers/Services/IDataService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Services
2 | {
3 | using System.Threading.Tasks;
4 |
5 | public interface IDataService
6 | where TEntity : class
7 | {
8 | Task Save(TEntity entity);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/e2e/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../out-tsc/e2e",
5 | "module": "commonjs",
6 | "target": "es5",
7 | "types": [
8 | "jasmine",
9 | "jasminewd2",
10 | "node"
11 | ]
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-root',
5 | templateUrl: './app.component.html',
6 | styleUrls: ['./app.component.css']
7 | })
8 | export class AppComponent {
9 | title = 'car-rental-system';
10 | }
11 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "./out-tsc/app",
5 | "types": []
6 | },
7 | "files": [
8 | "src/main.ts",
9 | "src/polyfills.ts"
10 | ],
11 | "include": [
12 | "src/**/*.d.ts"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/e2e/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../out-tsc/e2e",
5 | "module": "commonjs",
6 | "target": "es5",
7 | "types": [
8 | "jasmine",
9 | "jasminewd2",
10 | "node"
11 | ]
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "./out-tsc/app",
5 | "types": []
6 | },
7 | "files": [
8 | "src/main.ts",
9 | "src/polyfills.ts"
10 | ],
11 | "include": [
12 | "src/**/*.d.ts"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem/Services/IDataService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services
2 | {
3 | using System.Threading.Tasks;
4 |
5 | public interface IDataService
6 | where TEntity : class
7 | {
8 | Task Save(TEntity entity);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Admin/Models/ErrorViewModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models
2 | {
3 | public class ErrorViewModel
4 | {
5 | public string RequestId { get; set; }
6 |
7 | public bool ShowRequestId => !string.IsNullOrEmpty(this.RequestId);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Admin/Models/ErrorViewModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models
2 | {
3 | public class ErrorViewModel
4 | {
5 | public string RequestId { get; set; }
6 |
7 | public bool ShowRequestId => !string.IsNullOrEmpty(this.RequestId);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Admin/Models/ErrorViewModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models
2 | {
3 | public class ErrorViewModel
4 | {
5 | public string RequestId { get; set; }
6 |
7 | public bool ShowRequestId => !string.IsNullOrEmpty(this.RequestId);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/e2e/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../out-tsc/e2e",
5 | "module": "commonjs",
6 | "target": "es5",
7 | "types": [
8 | "jasmine",
9 | "jasminewd2",
10 | "node"
11 | ]
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-root',
5 | templateUrl: './app.component.html',
6 | styleUrls: ['./app.component.css']
7 | })
8 | export class AppComponent {
9 | title = 'car-rental-system';
10 | }
11 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Statistics/Models/CarAdViews/CarAdViewOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Models.CarAdViews
2 | {
3 | public class CarAdViewOutputModel
4 | {
5 | public int CarAdId { get; set; }
6 |
7 | public int TotalViews { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Admin/Models/Statistics/StatisticsOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Statistics
2 | {
3 | public class StatisticsOutputModel
4 | {
5 | public int TotalCarAds { get; set; }
6 |
7 | public int TotalRentedCars { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Statistics/Models/CarAdViews/CarAdViewOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Models.CarAdViews
2 | {
3 | public class CarAdViewOutputModel
4 | {
5 | public int CarAdId { get; set; }
6 |
7 | public int TotalViews { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Admin/Models/Statistics/StatisticsOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Statistics
2 | {
3 | public class StatisticsOutputModel
4 | {
5 | public int TotalCarAds { get; set; }
6 |
7 | public int TotalRentedCars { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Statistics/Models/CarAdViews/CarAdViewOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Models.CarAdViews
2 | {
3 | public class CarAdViewOutputModel
4 | {
5 | public int CarAdId { get; set; }
6 |
7 | public int TotalViews { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "./out-tsc/app",
5 | "types": []
6 | },
7 | "files": [
8 | "src/main.ts",
9 | "src/polyfills.ts"
10 | ],
11 | "include": [
12 | "src/**/*.d.ts"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Admin/Models/ErrorViewModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models
2 | {
3 | public class ErrorViewModel
4 | {
5 | public string RequestId { get; set; }
6 |
7 | public bool ShowRequestId => !string.IsNullOrEmpty(this.RequestId);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Admin/Models/Statistics/StatisticsOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Statistics
2 | {
3 | public class StatisticsOutputModel
4 | {
5 | public int TotalCarAds { get; set; }
6 |
7 | public int TotalRentedCars { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Schedule/Services/IRentedCarService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Schedule.Services
2 | {
3 | using System.Threading.Tasks;
4 |
5 | public interface IRentedCarService
6 | {
7 | Task UpdateInformation(int carAdId, string manufacturer, string model);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Statistics/Data/Models/CarAdView.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Data.Models
2 | {
3 | public class CarAdView
4 | {
5 | public int Id { get; set; }
6 |
7 | public int CarAdId { get; set; }
8 |
9 | public string UserId { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Dealers.Gateway/Services/ServiceEndpoints.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Services
2 | {
3 | public class ServiceEndpoints
4 | {
5 | public string Statistics { get; private set; }
6 |
7 | public string Dealers { get; private set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Dealers.Gateway/Services/ServiceEndpoints.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Services
2 | {
3 | public class ServiceEndpoints
4 | {
5 | public string Statistics { get; private set; }
6 |
7 | public string Dealers { get; private set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Schedule/Services/IRentedCarService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Schedule.Services
2 | {
3 | using System.Threading.Tasks;
4 |
5 | public interface IRentedCarService
6 | {
7 | Task UpdateInformation(int carAdId, string manufacturer, string model);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Dealers.Gateway/Models/CarAdViews/CarAdViewOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Models.CarAdViews
2 | {
3 | public class CarAdViewOutputModel
4 | {
5 | public int CarAdId { get; set; }
6 |
7 | public int TotalViews { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Dealers.Gateway/Services/ServiceEndpoints.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Services
2 | {
3 | public class ServiceEndpoints
4 | {
5 | public string Statistics { get; private set; }
6 |
7 | public string Dealers { get; private set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see https://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.md]
12 | max_line_length = off
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Identity/Models/Identity/ChangePasswordInputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Models.Identity
2 | {
3 | public class ChangePasswordInputModel
4 | {
5 | public string CurrentPassword { get; set; }
6 |
7 | public string NewPassword { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Dealers.Gateway/Models/CarAdViews/CarAdViewOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Models.CarAdViews
2 | {
3 | public class CarAdViewOutputModel
4 | {
5 | public int CarAdId { get; set; }
6 |
7 | public int TotalViews { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Dealers.Gateway/Models/CarAdViews/CarAdViewOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Models.CarAdViews
2 | {
3 | public class CarAdViewOutputModel
4 | {
5 | public int CarAdId { get; set; }
6 |
7 | public int TotalViews { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Statistics/Data/Models/CarAdView.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Data.Models
2 | {
3 | public class CarAdView
4 | {
5 | public int Id { get; set; }
6 |
7 | public int CarAdId { get; set; }
8 |
9 | public string UserId { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Admin/Models/Statistics/StatisticsOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Statistics
2 | {
3 | public class StatisticsOutputModel
4 | {
5 | public int TotalCarAds { get; set; }
6 |
7 | public int TotalRentedCars { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Statistics/Models/CarAdViews/CarAdViewOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Models.CarAdViews
2 | {
3 | public class CarAdViewOutputModel
4 | {
5 | public int CarAdId { get; set; }
6 |
7 | public int TotalViews { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Identity/Models/Identity/ChangePasswordInputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Models.Identity
2 | {
3 | public class ChangePasswordInputModel
4 | {
5 | public string CurrentPassword { get; set; }
6 |
7 | public string NewPassword { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Statistics/Data/Models/CarAdView.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Data.Models
2 | {
3 | public class CarAdView
4 | {
5 | public int Id { get; set; }
6 |
7 | public int CarAdId { get; set; }
8 |
9 | public string UserId { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see https://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.md]
12 | max_line_length = off
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/Models/CarAds/CreateCarAdOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Models.CarAds
2 | {
3 | public class CreateCarAdOutputModel
4 | {
5 | public CreateCarAdOutputModel(int carAdId)
6 | => this.CarAdId = carAdId;
7 |
8 | public int CarAdId { get; }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Statistics/CarRentalSystem.Statistics.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see https://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.md]
12 | max_line_length = off
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Identity/Models/Identity/ChangePasswordInputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Models.Identity
2 | {
3 | public class ChangePasswordInputModel
4 | {
5 | public string CurrentPassword { get; set; }
6 |
7 | public string NewPassword { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Schedule/CarRentalSystem.Schedule.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Statistics/Data/Models/CarAdView.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Data.Models
2 | {
3 | public class CarAdView
4 | {
5 | public int Id { get; set; }
6 |
7 | public int CarAdId { get; set; }
8 |
9 | public string UserId { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see https://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.md]
12 | max_line_length = off
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Identity/Models/Identity/ChangePasswordInputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Models.Identity
2 | {
3 | public class ChangePasswordInputModel
4 | {
5 | public string CurrentPassword { get; set; }
6 |
7 | public string NewPassword { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Dealers.Gateway/Services/ServiceEndpoints.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Services
2 | {
3 | public class ServiceEndpoints
4 | {
5 | public string Statistics { get; private set; }
6 |
7 | public string Dealers { get; private set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Schedule/Services/IRentedCarService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Schedule.Services
2 | {
3 | using System.Threading.Tasks;
4 |
5 | public interface IRentedCarService
6 | {
7 | Task UpdateInformation(int carAdId, string manufacturer, string model);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see https://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.md]
12 | max_line_length = off
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Notifications/Constants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Notifications
2 | {
3 | public class Constants
4 | {
5 | public const string AuthenticatedUsersGroup = "AuthenticatedUsers";
6 |
7 | public const string ReceiveNotificationEndpoint = "ReceiveNotification";
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/Services/Manufacturers/IManufacturerService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services.Manufacturers
2 | {
3 | using System.Threading.Tasks;
4 | using Data.Models;
5 |
6 | public interface IManufacturerService
7 | {
8 | Task FindByName(string name);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Statistics/Data/Models/Statistics.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Data.Models
2 | {
3 | public class Statistics
4 | {
5 | public int Id { get; set; }
6 |
7 | public int TotalCarAds { get; set; }
8 |
9 | public int TotalRentedCars { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Notifications/Constants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Notifications
2 | {
3 | public class Constants
4 | {
5 | public const string AuthenticatedUsersGroup = "AuthenticatedUsers";
6 |
7 | public const string ReceiveNotificationEndpoint = "ReceiveNotification";
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Dealers.Gateway/Models/CarAdViews/CarAdViewOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Models.CarAdViews
2 | {
3 | public class CarAdViewOutputModel
4 | {
5 | public int CarAdId { get; set; }
6 |
7 | public int TotalViews { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Statistics/Data/Models/CarAdView.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Data.Models
2 | {
3 | public class CarAdView
4 | {
5 | public int Id { get; set; }
6 |
7 | public int CarAdId { get; set; }
8 |
9 | public string UserId { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Dealers.Gateway/Models/CarAds/MineCarAdsOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Models.CarAds
2 | {
3 | using System.Collections.Generic;
4 |
5 | public class MineCarAdsOutputModel
6 | {
7 | public IEnumerable CarAds { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Statistics/Data/Models/Statistics.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Data.Models
2 | {
3 | public class Statistics
4 | {
5 | public int Id { get; set; }
6 |
7 | public int TotalCarAds { get; set; }
8 |
9 | public int TotalRentedCars { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/Data/Models/Options.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Data.Models
2 | {
3 | public class Options
4 | {
5 | public bool HasClimateControl { get; set; }
6 |
7 | public int NumberOfSeats { get; set; }
8 |
9 | public TransmissionType TransmissionType { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/shared/pagination/pagination.component.html:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Identity/Data/DataConstants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Data
2 | {
3 | public class DataConstants
4 | {
5 | public class Identity
6 | {
7 | public const int MinEmailLength = 3;
8 | public const int MaxEmailLength = 50;
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Dealers.Gateway/Models/CarAds/MineCarAdsOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Models.CarAds
2 | {
3 | using System.Collections.Generic;
4 |
5 | public class MineCarAdsOutputModel
6 | {
7 | public IEnumerable CarAds { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Statistics/Data/Models/Statistics.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Data.Models
2 | {
3 | public class Statistics
4 | {
5 | public int Id { get; set; }
6 |
7 | public int TotalCarAds { get; set; }
8 |
9 | public int TotalRentedCars { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Dealers.Gateway/Models/CarAds/MineCarAdsOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Models.CarAds
2 | {
3 | using System.Collections.Generic;
4 |
5 | public class MineCarAdsOutputModel
6 | {
7 | public IEnumerable CarAds { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Statistics/Data/Models/Statistics.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Data.Models
2 | {
3 | public class Statistics
4 | {
5 | public int Id { get; set; }
6 |
7 | public int TotalCarAds { get; set; }
8 |
9 | public int TotalRentedCars { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see https://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.md]
12 | max_line_length = off
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Identity/Models/Identity/ChangePasswordInputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Models.Identity
2 | {
3 | public class ChangePasswordInputModel
4 | {
5 | public string CurrentPassword { get; set; }
6 |
7 | public string NewPassword { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Identity/Data/DataConstants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Data
2 | {
3 | public class DataConstants
4 | {
5 | public class Identity
6 | {
7 | public const int MinEmailLength = 3;
8 | public const int MaxEmailLength = 50;
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/shared/pagination/pagination.component.html:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Dealers/Models/CarAds/CreateCarAdOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Models.CarAds
2 | {
3 | public class CreateCarAdOutputModel
4 | {
5 | public CreateCarAdOutputModel(int carAdId)
6 | => this.CarAdId = carAdId;
7 |
8 | public int CarAdId { get; }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Dealers/Services/Manufacturers/IManufacturerService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Services.Manufacturers
2 | {
3 | using System.Threading.Tasks;
4 | using Data.Models;
5 |
6 | public interface IManufacturerService
7 | {
8 | Task FindByName(string name);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/shared/pagination/pagination.component.html:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Identity/Data/DataConstants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Data
2 | {
3 | public class DataConstants
4 | {
5 | public class Identity
6 | {
7 | public const int MinEmailLength = 3;
8 | public const int MaxEmailLength = 50;
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Statistics/Services/Statistics/IStatisticsService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Services.Statistics
2 | {
3 | using System.Threading.Tasks;
4 | using Models.Statistics;
5 |
6 | public interface IStatisticsService
7 | {
8 | Task Full();
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/shared/pagination/pagination.component.html:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Identity/Data/DataConstants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Data
2 | {
3 | public class DataConstants
4 | {
5 | public class Identity
6 | {
7 | public const int MinEmailLength = 3;
8 | public const int MaxEmailLength = 50;
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem/Messages/Dealers/CarAdUpdatedMessage.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Messages.Dealers
2 | {
3 | public class CarAdUpdatedMessage
4 | {
5 | public int CarAdId { get; set; }
6 |
7 | public string Manufacturer { get; set; }
8 |
9 | public string Model { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Dealers.Gateway/Models/CarAds/MineCarAdsOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Models.CarAds
2 | {
3 | using System.Collections.Generic;
4 |
5 | public class MineCarAdsOutputModel
6 | {
7 | public IEnumerable CarAds { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Notifications/Constants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Notifications
2 | {
3 | public class Constants
4 | {
5 | public const string AuthenticatedUsersGroup = "AuthenticatedUsers";
6 |
7 | public const string ReceiveNotificationEndpoint = "ReceiveNotification";
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/shared/pagination/pagination.component.html:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem/Messages/Dealers/CarAdUpdatedMessage.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Messages.Dealers
2 | {
3 | public class CarAdUpdatedMessage
4 | {
5 | public int CarAdId { get; set; }
6 |
7 | public string Manufacturer { get; set; }
8 |
9 | public string Model { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Dealers/Models/CarAds/CreateCarAdOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Models.CarAds
2 | {
3 | public class CreateCarAdOutputModel
4 | {
5 | public CreateCarAdOutputModel(int carAdId)
6 | => this.CarAdId = carAdId;
7 |
8 | public int CarAdId { get; }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Dealers/Models/CarAds/CreateCarAdOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Models.CarAds
2 | {
3 | public class CreateCarAdOutputModel
4 | {
5 | public CreateCarAdOutputModel(int carAdId)
6 | => this.CarAdId = carAdId;
7 |
8 | public int CarAdId { get; }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Dealers/Services/Manufacturers/IManufacturerService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Services.Manufacturers
2 | {
3 | using System.Threading.Tasks;
4 | using Data.Models;
5 |
6 | public interface IManufacturerService
7 | {
8 | Task FindByName(string name);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Statistics/Data/Models/Statistics.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Data.Models
2 | {
3 | public class Statistics
4 | {
5 | public int Id { get; set; }
6 |
7 | public int TotalCarAds { get; set; }
8 |
9 | public int TotalRentedCars { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Admin/Models/Identity/UserOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Identity
2 | {
3 | public class UserOutputModel
4 | {
5 | public UserOutputModel(string token)
6 | {
7 | this.Token = token;
8 | }
9 |
10 | public string Token { get; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Dealers/Models/CarAds/CreateCarAdOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Models.CarAds
2 | {
3 | public class CreateCarAdOutputModel
4 | {
5 | public CreateCarAdOutputModel(int carAdId)
6 | => this.CarAdId = carAdId;
7 |
8 | public int CarAdId { get; }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Dealers/Services/Manufacturers/IManufacturerService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Services.Manufacturers
2 | {
3 | using System.Threading.Tasks;
4 | using Data.Models;
5 |
6 | public interface IManufacturerService
7 | {
8 | Task FindByName(string name);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Dealers/Data/Models/Options.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | public class Options
4 | {
5 | public bool HasClimateControl { get; set; }
6 |
7 | public int NumberOfSeats { get; set; }
8 |
9 | public TransmissionType TransmissionType { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Identity/Models/Identity/UserOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Models.Identity
2 | {
3 | public class UserOutputModel
4 | {
5 | public UserOutputModel(string token)
6 | {
7 | this.Token = token;
8 | }
9 |
10 | public string Token { get; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Admin/Models/Identity/UserOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Identity
2 | {
3 | public class UserOutputModel
4 | {
5 | public UserOutputModel(string token)
6 | {
7 | this.Token = token;
8 | }
9 |
10 | public string Token { get; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Dealers/Services/Manufacturers/IManufacturerService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Services.Manufacturers
2 | {
3 | using System.Threading.Tasks;
4 | using Data.Models;
5 |
6 | public interface IManufacturerService
7 | {
8 | Task FindByName(string name);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Admin/Models/Identity/UserOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Identity
2 | {
3 | public class UserOutputModel
4 | {
5 | public UserOutputModel(string token)
6 | {
7 | this.Token = token;
8 | }
9 |
10 | public string Token { get; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Dealers.Gateway/Models/CarAds/MineCarAdOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Models.CarAds
2 | {
3 | using CarRentalSystem.Models;
4 |
5 | public class MineCarAdOutputModel : CarAdOutputModel, IMapFrom
6 | {
7 | public int TotalViews { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/src/app/shared/pagination/pagination.component.html:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Identity/Data/DataConstants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Data
2 | {
3 | public class DataConstants
4 | {
5 | public class Identity
6 | {
7 | public const int MinEmailLength = 3;
8 | public const int MaxEmailLength = 50;
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem/Messages/Dealers/CarAdUpdatedMessage.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Messages.Dealers
2 | {
3 | public class CarAdUpdatedMessage
4 | {
5 | public int CarAdId { get; set; }
6 |
7 | public string Manufacturer { get; set; }
8 |
9 | public string Model { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Dealers.Gateway/Models/CarAds/MineCarAdOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Models.CarAds
2 | {
3 | using CarRentalSystem.Models;
4 |
5 | public class MineCarAdOutputModel : CarAdOutputModel, IMapFrom
6 | {
7 | public int TotalViews { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Dealers/Data/Models/Options.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | public class Options
4 | {
5 | public bool HasClimateControl { get; set; }
6 |
7 | public int NumberOfSeats { get; set; }
8 |
9 | public TransmissionType TransmissionType { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Dealers.Gateway/Models/CarAds/MineCarAdOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Models.CarAds
2 | {
3 | using CarRentalSystem.Models;
4 |
5 | public class MineCarAdOutputModel : CarAdOutputModel, IMapFrom
6 | {
7 | public int TotalViews { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Dealers/Data/Models/Options.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | public class Options
4 | {
5 | public bool HasClimateControl { get; set; }
6 |
7 | public int NumberOfSeats { get; set; }
8 |
9 | public TransmissionType TransmissionType { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Identity/Models/Identity/UserOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Models.Identity
2 | {
3 | public class UserOutputModel
4 | {
5 | public UserOutputModel(string token)
6 | {
7 | this.Token = token;
8 | }
9 |
10 | public string Token { get; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Dealers/Data/Models/Options.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | public class Options
4 | {
5 | public bool HasClimateControl { get; set; }
6 |
7 | public int NumberOfSeats { get; set; }
8 |
9 | public TransmissionType TransmissionType { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Identity/Models/Identity/UserOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Models.Identity
2 | {
3 | public class UserOutputModel
4 | {
5 | public UserOutputModel(string token)
6 | {
7 | this.Token = token;
8 | }
9 |
10 | public string Token { get; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Dealers/Models/CarAds/CreateCarAdOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Models.CarAds
2 | {
3 | public class CreateCarAdOutputModel
4 | {
5 | public CreateCarAdOutputModel(int carAdId)
6 | => this.CarAdId = carAdId;
7 |
8 | public int CarAdId { get; }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Dealers/Services/Manufacturers/IManufacturerService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Services.Manufacturers
2 | {
3 | using System.Threading.Tasks;
4 | using Data.Models;
5 |
6 | public interface IManufacturerService
7 | {
8 | Task FindByName(string name);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Admin/Models/Identity/UserInputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Identity
2 | {
3 | using CarRentalSystem.Models;
4 |
5 | public class UserInputModel : IMapFrom
6 | {
7 | public string Email { get; set; }
8 |
9 | public string Password { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Identity/Models/Identity/UserOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Models.Identity
2 | {
3 | public class UserOutputModel
4 | {
5 | public UserOutputModel(string token)
6 | {
7 | this.Token = token;
8 | }
9 |
10 | public string Token { get; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Admin/Models/Identity/UserInputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Identity
2 | {
3 | using CarRentalSystem.Models;
4 |
5 | public class UserInputModel : IMapFrom
6 | {
7 | public string Email { get; set; }
8 |
9 | public string Password { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Admin/Models/Identity/UserInputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Identity
2 | {
3 | using CarRentalSystem.Models;
4 |
5 | public class UserInputModel : IMapFrom
6 | {
7 | public string Email { get; set; }
8 |
9 | public string Password { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Admin/Models/Identity/UserOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Identity
2 | {
3 | public class UserOutputModel
4 | {
5 | public UserOutputModel(string token)
6 | {
7 | this.Token = token;
8 | }
9 |
10 | public string Token { get; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Dealers.Gateway/Models/CarAds/MineCarAdOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Models.CarAds
2 | {
3 | using CarRentalSystem.Models;
4 |
5 | public class MineCarAdOutputModel : CarAdOutputModel, IMapFrom
6 | {
7 | public int TotalViews { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Admin/Models/Dealers/DealerInputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Dealers
2 | {
3 | using CarRentalSystem.Models;
4 |
5 | public class DealerInputModel : IMapFrom
6 | {
7 | public string Name { get; set; }
8 |
9 | public string PhoneNumber { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Admin/Models/Dealers/DealerInputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Dealers
2 | {
3 | using CarRentalSystem.Models;
4 |
5 | public class DealerInputModel : IMapFrom
6 | {
7 | public string Name { get; set; }
8 |
9 | public string PhoneNumber { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Admin/Models/Dealers/DealerInputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Dealers
2 | {
3 | using CarRentalSystem.Models;
4 |
5 | public class DealerInputModel : IMapFrom
6 | {
7 | public string Name { get; set; }
8 |
9 | public string PhoneNumber { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Admin/Models/Identity/UserInputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Identity
2 | {
3 | using CarRentalSystem.Models;
4 |
5 | public class UserInputModel : IMapFrom
6 | {
7 | public string Email { get; set; }
8 |
9 | public string Password { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Dealers/Data/Models/Options.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | public class Options
4 | {
5 | public bool HasClimateControl { get; set; }
6 |
7 | public int NumberOfSeats { get; set; }
8 |
9 | public TransmissionType TransmissionType { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Identity/Models/Identity/UserOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Models.Identity
2 | {
3 | public class UserOutputModel
4 | {
5 | public UserOutputModel(string token)
6 | {
7 | this.Token = token;
8 | }
9 |
10 | public string Token { get; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Identity/Services/Identity/ITokenGeneratorService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Services.Identity
2 | {
3 | using System.Collections.Generic;
4 | using Data.Models;
5 |
6 | public interface ITokenGeneratorService
7 | {
8 | string GenerateToken(User user, IEnumerable roles = null);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/e2e/src/app.po.ts:
--------------------------------------------------------------------------------
1 | import { browser, by, element } from 'protractor';
2 |
3 | export class AppPage {
4 | navigateTo(): Promise {
5 | return browser.get(browser.baseUrl) as Promise;
6 | }
7 |
8 | getTitleText(): Promise {
9 | return element(by.css('app-root .content span')).getText() as Promise;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/e2e/src/app.po.ts:
--------------------------------------------------------------------------------
1 | import { browser, by, element } from 'protractor';
2 |
3 | export class AppPage {
4 | navigateTo(): Promise {
5 | return browser.get(browser.baseUrl) as Promise;
6 | }
7 |
8 | getTitleText(): Promise {
9 | return element(by.css('app-root .content span')).getText() as Promise;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Identity/Services/Identity/ITokenGeneratorService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Services.Identity
2 | {
3 | using System.Collections.Generic;
4 | using Data.Models;
5 |
6 | public interface ITokenGeneratorService
7 | {
8 | string GenerateToken(User user, IEnumerable roles = null);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Identity/Services/Identity/ITokenGeneratorService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Services.Identity
2 | {
3 | using System.Collections.Generic;
4 | using Data.Models;
5 |
6 | public interface ITokenGeneratorService
7 | {
8 | string GenerateToken(User user, IEnumerable roles = null);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Admin/Models/Dealers/DealerInputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Dealers
2 | {
3 | using CarRentalSystem.Models;
4 |
5 | public class DealerInputModel : IMapFrom
6 | {
7 | public string Name { get; set; }
8 |
9 | public string PhoneNumber { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/e2e/src/app.po.ts:
--------------------------------------------------------------------------------
1 | import { browser, by, element } from 'protractor';
2 |
3 | export class AppPage {
4 | navigateTo(): Promise {
5 | return browser.get(browser.baseUrl) as Promise;
6 | }
7 |
8 | getTitleText(): Promise {
9 | return element(by.css('app-root .content span')).getText() as Promise;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Admin/Views/_ViewImports.cshtml:
--------------------------------------------------------------------------------
1 | @using CarRentalSystem.Admin
2 | @using CarRentalSystem.Admin.Infrastructure
3 | @using CarRentalSystem.Admin.Models
4 | @using CarRentalSystem.Admin.Models.Dealers
5 | @using CarRentalSystem.Admin.Models.Identity
6 | @using CarRentalSystem.Admin.Models.Statistics
7 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
8 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "./out-tsc/spec",
5 | "types": [
6 | "jasmine",
7 | "node"
8 | ]
9 | },
10 | "files": [
11 | "src/test.ts",
12 | "src/polyfills.ts"
13 | ],
14 | "include": [
15 | "src/**/*.spec.ts",
16 | "src/**/*.d.ts"
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/Models/Dealers/DealerOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Models.Dealers
2 | {
3 | using Data.Models;
4 |
5 | public class DealerOutputModel : IMapFrom
6 | {
7 | public int Id { get; set; }
8 |
9 | public string Name { get; set; }
10 |
11 | public string PhoneNumber { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "./out-tsc/spec",
5 | "types": [
6 | "jasmine",
7 | "node"
8 | ]
9 | },
10 | "files": [
11 | "src/test.ts",
12 | "src/polyfills.ts"
13 | ],
14 | "include": [
15 | "src/**/*.spec.ts",
16 | "src/**/*.d.ts"
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/e2e/src/app.po.ts:
--------------------------------------------------------------------------------
1 | import { browser, by, element } from 'protractor';
2 |
3 | export class AppPage {
4 | navigateTo(): Promise {
5 | return browser.get(browser.baseUrl) as Promise;
6 | }
7 |
8 | getTitleText(): Promise {
9 | return element(by.css('app-root .content span')).getText() as Promise;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Admin/Views/_ViewImports.cshtml:
--------------------------------------------------------------------------------
1 | @using CarRentalSystem.Admin
2 | @using CarRentalSystem.Admin.Infrastructure
3 | @using CarRentalSystem.Admin.Models
4 | @using CarRentalSystem.Admin.Models.Dealers
5 | @using CarRentalSystem.Admin.Models.Identity
6 | @using CarRentalSystem.Admin.Models.Statistics
7 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
8 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/e2e/src/app.po.ts:
--------------------------------------------------------------------------------
1 | import { browser, by, element } from 'protractor';
2 |
3 | export class AppPage {
4 | navigateTo(): Promise {
5 | return browser.get(browser.baseUrl) as Promise;
6 | }
7 |
8 | getTitleText(): Promise {
9 | return element(by.css('app-root .content span')).getText() as Promise;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Admin/Views/_ViewImports.cshtml:
--------------------------------------------------------------------------------
1 | @using CarRentalSystem.Admin
2 | @using CarRentalSystem.Admin.Infrastructure
3 | @using CarRentalSystem.Admin.Models
4 | @using CarRentalSystem.Admin.Models.Dealers
5 | @using CarRentalSystem.Admin.Models.Identity
6 | @using CarRentalSystem.Admin.Models.Statistics
7 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
8 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Statistics/Services/Statistics/IStatisticsService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Services.Statistics
2 | {
3 | using System.Threading.Tasks;
4 | using Models.Statistics;
5 |
6 | public interface IStatisticsService
7 | {
8 | Task Full();
9 |
10 | Task AddCarAd();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "./out-tsc/spec",
5 | "types": [
6 | "jasmine",
7 | "node"
8 | ]
9 | },
10 | "files": [
11 | "src/test.ts",
12 | "src/polyfills.ts"
13 | ],
14 | "include": [
15 | "src/**/*.spec.ts",
16 | "src/**/*.d.ts"
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Statistics/Services/Statistics/IStatisticsService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Services.Statistics
2 | {
3 | using System.Threading.Tasks;
4 | using Models.Statistics;
5 |
6 | public interface IStatisticsService
7 | {
8 | Task Full();
9 |
10 | Task AddCarAd();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Schedule/Data/Models/Feedback.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Schedule.Data.Models
2 | {
3 | public class Feedback
4 | {
5 | public int Id { get; set; }
6 |
7 | public string Content { get; set; }
8 |
9 | public int ReservationId { get; set; }
10 |
11 | public Reservation Reservation { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "./out-tsc/spec",
5 | "types": [
6 | "jasmine",
7 | "node"
8 | ]
9 | },
10 | "files": [
11 | "src/test.ts",
12 | "src/polyfills.ts"
13 | ],
14 | "include": [
15 | "src/**/*.spec.ts",
16 | "src/**/*.d.ts"
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "./out-tsc/spec",
5 | "types": [
6 | "jasmine",
7 | "node"
8 | ]
9 | },
10 | "files": [
11 | "src/test.ts",
12 | "src/polyfills.ts"
13 | ],
14 | "include": [
15 | "src/**/*.spec.ts",
16 | "src/**/*.d.ts"
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Identity/Services/Identity/ITokenGeneratorService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Identity.Services.Identity
2 | {
3 | using System.Collections.Generic;
4 | using Data.Models;
5 |
6 | public interface ITokenGeneratorService
7 | {
8 | string GenerateToken(User user, IEnumerable roles = null);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Notifications/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "ApplicationSettings": {
3 | "Secret": "S0M3 M4G1C UN1C0RNS G3N3R4T3D TH1S S3CR3T"
4 | },
5 | "Logging": {
6 | "LogLevel": {
7 | "Default": "Information",
8 | "Microsoft": "Warning",
9 | "Microsoft.Hosting.Lifetime": "Information"
10 | }
11 | },
12 | "AllowedHosts": "*"
13 | }
14 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/Controllers/ApiController.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Controllers
2 | {
3 | using Microsoft.AspNetCore.Mvc;
4 |
5 | [ApiController]
6 | [Route("[controller]")]
7 | public abstract class ApiController : ControllerBase
8 | {
9 | public const string PathSeparator = "/";
10 | public const string Id = "{id}";
11 | }
12 | }
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/Data/Models/Manufacturer.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Data.Models
2 | {
3 | using System.Collections.Generic;
4 |
5 | public class Manufacturer
6 | {
7 | public int Id { get; set; }
8 |
9 | public string Name { get; set; }
10 |
11 | public IEnumerable CarAds { get; set; } = new List();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Dealers.Gateway/Services/CarAds/ICarAdService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Services.CarAds
2 | {
3 | using System.Threading.Tasks;
4 | using Models.CarAds;
5 | using Refit;
6 |
7 | public interface ICarAdService
8 | {
9 | [Get("/CarAds/Mine")]
10 | Task Mine();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Admin/Services/Statistics/IStatisticsService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Services.Statistics
2 | {
3 | using System.Threading.Tasks;
4 | using Models.Statistics;
5 | using Refit;
6 |
7 | public interface IStatisticsService
8 | {
9 | [Get("/Statistics")]
10 | Task Full();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Dealers.Gateway/Services/CarAds/ICarAdService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Services.CarAds
2 | {
3 | using System.Threading.Tasks;
4 | using Models.CarAds;
5 | using Refit;
6 |
7 | public interface ICarAdService
8 | {
9 | [Get("/CarAds/Mine")]
10 | Task Mine();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Notifications/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "ApplicationSettings": {
3 | "Secret": "S0M3 M4G1C UN1C0RNS G3N3R4T3D TH1S S3CR3T"
4 | },
5 | "Logging": {
6 | "LogLevel": {
7 | "Default": "Information",
8 | "Microsoft": "Warning",
9 | "Microsoft.Hosting.Lifetime": "Information"
10 | }
11 | },
12 | "AllowedHosts": "*"
13 | }
14 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Schedule/Data/Models/Feedback.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Schedule.Data.Models
2 | {
3 | public class Feedback
4 | {
5 | public int Id { get; set; }
6 |
7 | public string Content { get; set; }
8 |
9 | public int ReservationId { get; set; }
10 |
11 | public Reservation Reservation { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/e2e/src/app.po.ts:
--------------------------------------------------------------------------------
1 | import { browser, by, element } from 'protractor';
2 |
3 | export class AppPage {
4 | navigateTo(): Promise {
5 | return browser.get(browser.baseUrl) as Promise;
6 | }
7 |
8 | getTitleText(): Promise {
9 | return element(by.css('app-root .content span')).getText() as Promise;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Admin/Views/_ViewImports.cshtml:
--------------------------------------------------------------------------------
1 | @using CarRentalSystem.Admin
2 | @using CarRentalSystem.Admin.Infrastructure
3 | @using CarRentalSystem.Admin.Models
4 | @using CarRentalSystem.Admin.Models.Dealers
5 | @using CarRentalSystem.Admin.Models.Identity
6 | @using CarRentalSystem.Admin.Models.Statistics
7 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
8 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Statistics/Services/Statistics/IStatisticsService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Services.Statistics
2 | {
3 | using System.Threading.Tasks;
4 | using Models.Statistics;
5 |
6 | public interface IStatisticsService
7 | {
8 | Task Full();
9 |
10 | Task AddCarAd();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Admin/Services/Statistics/IStatisticsService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Services.Statistics
2 | {
3 | using System.Threading.Tasks;
4 | using Models.Statistics;
5 | using Refit;
6 |
7 | public interface IStatisticsService
8 | {
9 | [Get("/Statistics")]
10 | Task Full();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Dealers.Gateway/Services/CarAds/ICarAdService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Services.CarAds
2 | {
3 | using System.Threading.Tasks;
4 | using Models.CarAds;
5 | using Refit;
6 |
7 | public interface ICarAdService
8 | {
9 | [Get("/CarAds/Mine")]
10 | Task Mine();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Schedule/Data/Models/Feedback.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Schedule.Data.Models
2 | {
3 | public class Feedback
4 | {
5 | public int Id { get; set; }
6 |
7 | public string Content { get; set; }
8 |
9 | public int ReservationId { get; set; }
10 |
11 | public Reservation Reservation { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem/Services/Identity/CurrentTokenService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services.Identity
2 | {
3 | public class CurrentTokenService : ICurrentTokenService
4 | {
5 | private string currentToken;
6 |
7 | public string Get() => this.currentToken;
8 |
9 | public void Set(string token) => this.currentToken = token;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Dealers/Models/Dealers/DealerOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Models.Dealers
2 | {
3 | using Data.Models;
4 |
5 | public class DealerOutputModel : IMapFrom
6 | {
7 | public int Id { get; set; }
8 |
9 | public string Name { get; set; }
10 |
11 | public string PhoneNumber { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem/Controllers/ApiController.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Controllers
2 | {
3 | using Microsoft.AspNetCore.Mvc;
4 |
5 | [ApiController]
6 | [Route("[controller]")]
7 | public abstract class ApiController : ControllerBase
8 | {
9 | public const string PathSeparator = "/";
10 | public const string Id = "{id}";
11 | }
12 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Admin/Services/Statistics/IStatisticsService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Services.Statistics
2 | {
3 | using System.Threading.Tasks;
4 | using Models.Statistics;
5 | using Refit;
6 |
7 | public interface IStatisticsService
8 | {
9 | [Get("/Statistics")]
10 | Task Full();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Schedule/Data/Models/Feedback.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Schedule.Data.Models
2 | {
3 | public class Feedback
4 | {
5 | public int Id { get; set; }
6 |
7 | public string Content { get; set; }
8 |
9 | public int ReservationId { get; set; }
10 |
11 | public Reservation Reservation { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem/Services/Identity/CurrentTokenService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services.Identity
2 | {
3 | public class CurrentTokenService : ICurrentTokenService
4 | {
5 | private string currentToken;
6 |
7 | public string Get() => this.currentToken;
8 |
9 | public void Set(string token) => this.currentToken = token;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem/Services/Identity/CurrentTokenService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services.Identity
2 | {
3 | public class CurrentTokenService : ICurrentTokenService
4 | {
5 | private string currentToken;
6 |
7 | public string Get() => this.currentToken;
8 |
9 | public void Set(string token) => this.currentToken = token;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Client/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "./out-tsc/spec",
5 | "types": [
6 | "jasmine",
7 | "node"
8 | ]
9 | },
10 | "files": [
11 | "src/test.ts",
12 | "src/polyfills.ts"
13 | ],
14 | "include": [
15 | "src/**/*.spec.ts",
16 | "src/**/*.d.ts"
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem/Controllers/ApiController.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Controllers
2 | {
3 | using Microsoft.AspNetCore.Mvc;
4 |
5 | [ApiController]
6 | [Route("[controller]")]
7 | public abstract class ApiController : ControllerBase
8 | {
9 | public const string PathSeparator = "/";
10 | public const string Id = "{id}";
11 | }
12 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem/Controllers/ApiController.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Controllers
2 | {
3 | using Microsoft.AspNetCore.Mvc;
4 |
5 | [ApiController]
6 | [Route("[controller]")]
7 | public abstract class ApiController : ControllerBase
8 | {
9 | public const string PathSeparator = "/";
10 | public const string Id = "{id}";
11 | }
12 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem/Controllers/ApiController.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Controllers
2 | {
3 | using Microsoft.AspNetCore.Mvc;
4 |
5 | [ApiController]
6 | [Route("[controller]")]
7 | public abstract class ApiController : ControllerBase
8 | {
9 | public const string PathSeparator = "/";
10 | public const string Id = "{id}";
11 | }
12 | }
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Admin/Services/Statistics/IStatisticsService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Services.Statistics
2 | {
3 | using System.Threading.Tasks;
4 | using Models.Statistics;
5 | using Refit;
6 |
7 | public interface IStatisticsService
8 | {
9 | [Get("/Statistics")]
10 | Task Full();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Dealers.Gateway/Services/CarAds/ICarAdService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Gateway.Services.CarAds
2 | {
3 | using System.Threading.Tasks;
4 | using Models.CarAds;
5 | using Refit;
6 |
7 | public interface ICarAdService
8 | {
9 | [Get("/CarAds/Mine")]
10 | Task Mine();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Notifications/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "ApplicationSettings": {
3 | "Secret": "S0M3 M4G1C UN1C0RNS G3N3R4T3D TH1S S3CR3T"
4 | },
5 | "Logging": {
6 | "LogLevel": {
7 | "Default": "Information",
8 | "Microsoft": "Warning",
9 | "Microsoft.Hosting.Lifetime": "Information"
10 | }
11 | },
12 | "AllowedHosts": "*"
13 | }
14 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Schedule/Data/Models/Feedback.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Schedule.Data.Models
2 | {
3 | public class Feedback
4 | {
5 | public int Id { get; set; }
6 |
7 | public string Content { get; set; }
8 |
9 | public int ReservationId { get; set; }
10 |
11 | public Reservation Reservation { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem/Services/IDataService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services
2 | {
3 | using System.Threading.Tasks;
4 | using Data.Models;
5 |
6 | public interface IDataService
7 | where TEntity : class
8 | {
9 | Task MarkMessageAsPublished(int id);
10 |
11 | Task Save(TEntity entity, params Message[] messages);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Dealers/Data/Models/Manufacturer.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | using System.Collections.Generic;
4 |
5 | public class Manufacturer
6 | {
7 | public int Id { get; set; }
8 |
9 | public string Name { get; set; }
10 |
11 | public IEnumerable CarAds { get; set; } = new List();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem/Messages/Dealers/CarAdCreatedMessage.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Messages.Dealers
2 | {
3 | public class CarAdCreatedMessage
4 | {
5 | public int CarAdId { get; set; }
6 |
7 | public string Manufacturer { get; set; }
8 |
9 | public string Model { get; set; }
10 |
11 | public decimal PricePerDay { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem/Services/Identity/CurrentTokenService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services.Identity
2 | {
3 | public class CurrentTokenService : ICurrentTokenService
4 | {
5 | private string currentToken;
6 |
7 | public string Get() => this.currentToken;
8 |
9 | public void Set(string token) => this.currentToken = token;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Dealers/Data/Models/Manufacturer.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | using System.Collections.Generic;
4 |
5 | public class Manufacturer
6 | {
7 | public int Id { get; set; }
8 |
9 | public string Name { get; set; }
10 |
11 | public IEnumerable CarAds { get; set; } = new List();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem/Messages/Dealers/CarAdCreatedMessage.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Messages.Dealers
2 | {
3 | public class CarAdCreatedMessage
4 | {
5 | public int CarAdId { get; set; }
6 |
7 | public string Manufacturer { get; set; }
8 |
9 | public string Model { get; set; }
10 |
11 | public decimal PricePerDay { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Dealers/Data/Models/Manufacturer.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | using System.Collections.Generic;
4 |
5 | public class Manufacturer
6 | {
7 | public int Id { get; set; }
8 |
9 | public string Name { get; set; }
10 |
11 | public IEnumerable CarAds { get; set; } = new List();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Dealers/Data/Models/Manufacturer.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | using System.Collections.Generic;
4 |
5 | public class Manufacturer
6 | {
7 | public int Id { get; set; }
8 |
9 | public string Name { get; set; }
10 |
11 | public IEnumerable CarAds { get; set; } = new List();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem/Infrastructure/AuthorizeAdministratorAttribute.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Infrastructure
2 | {
3 | using Microsoft.AspNetCore.Authorization;
4 | using static Constants;
5 |
6 | public class AuthorizeAdministratorAttribute : AuthorizeAttribute
7 | {
8 | public AuthorizeAdministratorAttribute() => this.Roles = AdministratorRoleName;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem/Controllers/ApiController.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Controllers
2 | {
3 | using Microsoft.AspNetCore.Mvc;
4 |
5 | [ApiController]
6 | [Route("[controller]")]
7 | public abstract class ApiController : ControllerBase
8 | {
9 | public const string PathSeparator = "/";
10 | public const string Id = "{id}";
11 | }
12 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Admin/Services/Identity/IIdentityService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Services.Identity
2 | {
3 | using System.Threading.Tasks;
4 | using Models.Identity;
5 | using Refit;
6 |
7 | public interface IIdentityService
8 | {
9 | [Post("/Identity/Login")]
10 | Task Login([Body] UserInputModel loginInput);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem/Infrastructure/AuthorizeAdministratorAttribute.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Infrastructure
2 | {
3 | using Microsoft.AspNetCore.Authorization;
4 | using static Constants;
5 |
6 | public class AuthorizeAdministratorAttribute : AuthorizeAttribute
7 | {
8 | public AuthorizeAdministratorAttribute() => this.Roles = AdministratorRoleName;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem/Data/DataConstants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Data
2 | {
3 | public class DataConstants
4 | {
5 | public class Common
6 | {
7 | public const int MinNameLength = 2;
8 | public const int MaxNameLength = 20;
9 | public const int MaxUrlLength = 2048;
10 | public const int Zero = 0;
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Admin/Services/Identity/IIdentityService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Services.Identity
2 | {
3 | using System.Threading.Tasks;
4 | using Models.Identity;
5 | using Refit;
6 |
7 | public interface IIdentityService
8 | {
9 | [Post("/Identity/Login")]
10 | Task Login([Body] UserInputModel loginInput);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem/Infrastructure/AuthorizeAdministratorAttribute.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Infrastructure
2 | {
3 | using Microsoft.AspNetCore.Authorization;
4 | using static Constants;
5 |
6 | public class AuthorizeAdministratorAttribute : AuthorizeAttribute
7 | {
8 | public AuthorizeAdministratorAttribute() => this.Roles = AdministratorRoleName;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Admin/Services/Identity/IIdentityService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Services.Identity
2 | {
3 | using System.Threading.Tasks;
4 | using Models.Identity;
5 | using Refit;
6 |
7 | public interface IIdentityService
8 | {
9 | [Post("/Identity/Login")]
10 | Task Login([Body] UserInputModel loginInput);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem/Messages/Dealers/CarAdCreatedMessage.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Messages.Dealers
2 | {
3 | public class CarAdCreatedMessage
4 | {
5 | public int CarAdId { get; set; }
6 |
7 | public string Manufacturer { get; set; }
8 |
9 | public string Model { get; set; }
10 |
11 | public decimal PricePerDay { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem/Infrastructure/ClaimsPrincipalExtensions.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Infrastructure
2 | {
3 | using System.Security.Claims;
4 |
5 | using static Constants;
6 |
7 | public static class ClaimsPrincipalExtensions
8 | {
9 | public static bool IsAdministrator(this ClaimsPrincipal user)
10 | => user.IsInRole(AdministratorRoleName);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem/Data/DataConstants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Data
2 | {
3 | public class DataConstants
4 | {
5 | public class Common
6 | {
7 | public const int MinNameLength = 2;
8 | public const int MaxNameLength = 20;
9 | public const int MaxUrlLength = 2048;
10 | public const int Zero = 0;
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem/Infrastructure/ClaimsPrincipalExtensions.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Infrastructure
2 | {
3 | using System.Security.Claims;
4 |
5 | using static Constants;
6 |
7 | public static class ClaimsPrincipalExtensions
8 | {
9 | public static bool IsAdministrator(this ClaimsPrincipal user)
10 | => user.IsInRole(AdministratorRoleName);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Admin/Models/Dealers/DealerDetailsOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Dealers
2 | {
3 | public class DealerDetailsOutputModel
4 | {
5 | public int Id { get; set; }
6 |
7 | public string Name { get; set; }
8 |
9 | public string PhoneNumber { get; set; }
10 |
11 | public int TotalCarAds { get; private set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Statistics/Models/Statistics/StatisticsOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Models.Statistics
2 | {
3 | using CarRentalSystem.Models;
4 | using Data.Models;
5 |
6 | public class StatisticsOutputModel : IMapFrom
7 | {
8 | public int TotalCarAds { get; set; }
9 |
10 | public int TotalRentedCars { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem/Data/DataConstants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Data
2 | {
3 | public class DataConstants
4 | {
5 | public class Common
6 | {
7 | public const int MinNameLength = 2;
8 | public const int MaxNameLength = 20;
9 | public const int MaxUrlLength = 2048;
10 | public const int Zero = 0;
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem/Infrastructure/ClaimsPrincipalExtensions.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Infrastructure
2 | {
3 | using System.Security.Claims;
4 |
5 | using static Constants;
6 |
7 | public static class ClaimsPrincipalExtensions
8 | {
9 | public static bool IsAdministrator(this ClaimsPrincipal user)
10 | => user.IsInRole(AdministratorRoleName);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem/Infrastructure/InfrastructureConstants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Infrastructure
2 | {
3 | public class InfrastructureConstants
4 | {
5 | public const string AuthenticationCookieName = "Authentication";
6 | public const string AuthorizationHeaderName = "Authorization";
7 | public const string AuthorizationHeaderValuePrefix = "Bearer";
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Dealers/Data/Models/Manufacturer.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | using System.Collections.Generic;
4 |
5 | public class Manufacturer
6 | {
7 | public int Id { get; set; }
8 |
9 | public string Name { get; set; }
10 |
11 | public IEnumerable CarAds { get; set; } = new List();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem/Infrastructure/AuthorizeAdministratorAttribute.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Infrastructure
2 | {
3 | using Microsoft.AspNetCore.Authorization;
4 | using static Constants;
5 |
6 | public class AuthorizeAdministratorAttribute : AuthorizeAttribute
7 | {
8 | public AuthorizeAdministratorAttribute() => this.Roles = AdministratorRoleName;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Admin/Models/Dealers/DealerDetailsOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Dealers
2 | {
3 | public class DealerDetailsOutputModel
4 | {
5 | public int Id { get; set; }
6 |
7 | public string Name { get; set; }
8 |
9 | public string PhoneNumber { get; set; }
10 |
11 | public int TotalCarAds { get; private set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Statistics/Models/Statistics/StatisticsOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Models.Statistics
2 | {
3 | using CarRentalSystem.Models;
4 | using Data.Models;
5 |
6 | public class StatisticsOutputModel : IMapFrom
7 | {
8 | public int TotalCarAds { get; set; }
9 |
10 | public int TotalRentedCars { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem/Data/DataConstants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Data
2 | {
3 | public class DataConstants
4 | {
5 | public class Common
6 | {
7 | public const int MinNameLength = 2;
8 | public const int MaxNameLength = 20;
9 | public const int MaxUrlLength = 2048;
10 | public const int Zero = 0;
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem/Infrastructure/InfrastructureConstants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Infrastructure
2 | {
3 | public class InfrastructureConstants
4 | {
5 | public const string AuthenticationCookieName = "Authentication";
6 | public const string AuthorizationHeaderName = "Authorization";
7 | public const string AuthorizationHeaderValuePrefix = "Bearer";
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/Models/Identity/ChangePasswordInputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Models.Identity
2 | {
3 | using System.ComponentModel.DataAnnotations;
4 |
5 | public class ChangePasswordInputModel
6 | {
7 | public string UserId { get; set; }
8 |
9 | public string CurrentPassword { get; set; }
10 |
11 | public string NewPassword { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Admin/Models/Dealers/DealerDetailsOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Dealers
2 | {
3 | public class DealerDetailsOutputModel
4 | {
5 | public int Id { get; set; }
6 |
7 | public string Name { get; set; }
8 |
9 | public string PhoneNumber { get; set; }
10 |
11 | public int TotalCarAds { get; private set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Statistics/Models/Statistics/StatisticsOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Models.Statistics
2 | {
3 | using CarRentalSystem.Models;
4 | using Data.Models;
5 |
6 | public class StatisticsOutputModel : IMapFrom
7 | {
8 | public int TotalCarAds { get; set; }
9 |
10 | public int TotalRentedCars { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem/Infrastructure/InfrastructureConstants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Infrastructure
2 | {
3 | public class InfrastructureConstants
4 | {
5 | public const string AuthenticationCookieName = "Authentication";
6 | public const string AuthorizationHeaderName = "Authorization";
7 | public const string AuthorizationHeaderValuePrefix = "Bearer";
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Admin/Services/Identity/IIdentityService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Services.Identity
2 | {
3 | using System.Threading.Tasks;
4 | using Models.Identity;
5 | using Refit;
6 |
7 | public interface IIdentityService
8 | {
9 | [Post("/Identity/Login")]
10 | Task Login([Body] UserInputModel loginInput);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem/Infrastructure/ConfigurationExtensions.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Infrastructure
2 | {
3 | using Microsoft.Extensions.Configuration;
4 |
5 | public static class ConfigurationExtensions
6 | {
7 | public static string GetDefaultConnectionString(this IConfiguration configuration)
8 | => configuration.GetConnectionString("DefaultConnection");
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Admin/Models/Dealers/DealerDetailsOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Admin.Models.Dealers
2 | {
3 | public class DealerDetailsOutputModel
4 | {
5 | public int Id { get; set; }
6 |
7 | public string Name { get; set; }
8 |
9 | public string PhoneNumber { get; set; }
10 |
11 | public int TotalCarAds { get; private set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Statistics/Models/Statistics/StatisticsOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Statistics.Models.Statistics
2 | {
3 | using CarRentalSystem.Models;
4 | using Data.Models;
5 |
6 | public class StatisticsOutputModel : IMapFrom
7 | {
8 | public int TotalCarAds { get; set; }
9 |
10 | public int TotalRentedCars { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem/Data/DataConstants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Data
2 | {
3 | public class DataConstants
4 | {
5 | public class Common
6 | {
7 | public const int MinNameLength = 2;
8 | public const int MaxNameLength = 20;
9 | public const int MaxUrlLength = 2048;
10 | public const int Zero = 0;
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem/Infrastructure/ClaimsPrincipalExtensions.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Infrastructure
2 | {
3 | using System.Security.Claims;
4 |
5 | using static Constants;
6 |
7 | public static class ClaimsPrincipalExtensions
8 | {
9 | public static bool IsAdministrator(this ClaimsPrincipal user)
10 | => user.IsInRole(AdministratorRoleName);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem/Infrastructure/InfrastructureConstants.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Infrastructure
2 | {
3 | public class InfrastructureConstants
4 | {
5 | public const string AuthenticationCookieName = "Authentication";
6 | public const string AuthorizationHeaderName = "Authorization";
7 | public const string AuthorizationHeaderValuePrefix = "Bearer";
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Dealers/Models/Dealers/DealerOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Models.Dealers
2 | {
3 | using CarRentalSystem.Models;
4 | using Data.Models;
5 |
6 | public class DealerOutputModel : IMapFrom
7 | {
8 | public int Id { get; set; }
9 |
10 | public string Name { get; set; }
11 |
12 | public string PhoneNumber { get; set; }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/Data/Models/Category.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Data.Models
2 | {
3 | using System.Collections.Generic;
4 |
5 | public class Category
6 | {
7 | public int Id { get; set; }
8 |
9 | public string Name { get; set; }
10 |
11 | public string Description { get; set; }
12 |
13 | public IEnumerable CarAds { get; set; } = new List();
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Dealers/Models/Dealers/DealerOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Models.Dealers
2 | {
3 | using CarRentalSystem.Models;
4 | using Data.Models;
5 |
6 | public class DealerOutputModel : IMapFrom
7 | {
8 | public int Id { get; set; }
9 |
10 | public string Name { get; set; }
11 |
12 | public string PhoneNumber { get; set; }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Dealers/Models/Dealers/DealerOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Models.Dealers
2 | {
3 | using CarRentalSystem.Models;
4 | using Data.Models;
5 |
6 | public class DealerOutputModel : IMapFrom
7 | {
8 | public int Id { get; set; }
9 |
10 | public string Name { get; set; }
11 |
12 | public string PhoneNumber { get; set; }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/main.ts:
--------------------------------------------------------------------------------
1 | import { enableProdMode } from '@angular/core';
2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
3 |
4 | import { AppModule } from './app/app.module';
5 | import { environment } from './environments/environment';
6 |
7 | if (environment.production) {
8 | enableProdMode();
9 | }
10 |
11 | platformBrowserDynamic().bootstrapModule(AppModule)
12 | .catch(err => console.error(err));
13 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/main.ts:
--------------------------------------------------------------------------------
1 | import { enableProdMode } from '@angular/core';
2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
3 |
4 | import { AppModule } from './app/app.module';
5 | import { environment } from './environments/environment';
6 |
7 | if (environment.production) {
8 | enableProdMode();
9 | }
10 |
11 | platformBrowserDynamic().bootstrapModule(AppModule)
12 | .catch(err => console.error(err));
13 |
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/main.ts:
--------------------------------------------------------------------------------
1 | import { enableProdMode } from '@angular/core';
2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
3 |
4 | import { AppModule } from './app/app.module';
5 | import { environment } from './environments/environment';
6 |
7 | if (environment.production) {
8 | enableProdMode();
9 | }
10 |
11 | platformBrowserDynamic().bootstrapModule(AppModule)
12 | .catch(err => console.error(err));
13 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/Models/Identity/LoginOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Models.Identity
2 | {
3 | public class LoginOutputModel
4 | {
5 | public LoginOutputModel(string token, int dealerId)
6 | {
7 | this.Token = token;
8 | this.DealerId = dealerId;
9 | }
10 |
11 | public int DealerId { get; }
12 |
13 | public string Token { get; }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/Models/Identity/LoginSuccessModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Models.Identity
2 | {
3 | public class LoginSuccessModel
4 | {
5 | public LoginSuccessModel(string userId, string token)
6 | {
7 | this.UserId = userId;
8 | this.Token = token;
9 | }
10 |
11 | public string UserId { get; }
12 |
13 | public string Token { get; }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/cars/cars.model.ts:
--------------------------------------------------------------------------------
1 | import { Profile } from '../dealers/profile/profile.model';
2 |
3 | export interface Car {
4 | id?: number;
5 | manufacturer: string;
6 | model: string;
7 | category: number;
8 | imageUrl: string;
9 | pricePerDay: number;
10 | hasClimateControl: boolean;
11 | numberOfSeats: number;
12 | transmissionType: number;
13 | isAvailable?: boolean;
14 | dealer?: Profile;
15 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/main.ts:
--------------------------------------------------------------------------------
1 | import { enableProdMode } from '@angular/core';
2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
3 |
4 | import { AppModule } from './app/app.module';
5 | import { environment } from './environments/environment';
6 |
7 | if (environment.production) {
8 | enableProdMode();
9 | }
10 |
11 | platformBrowserDynamic().bootstrapModule(AppModule)
12 | .catch(err => console.error(err));
13 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/main.ts:
--------------------------------------------------------------------------------
1 | import { enableProdMode } from '@angular/core';
2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
3 |
4 | import { AppModule } from './app/app.module';
5 | import { environment } from './environments/environment';
6 |
7 | if (environment.production) {
8 | enableProdMode();
9 | }
10 |
11 | platformBrowserDynamic().bootstrapModule(AppModule)
12 | .catch(err => console.error(err));
13 |
--------------------------------------------------------------------------------
/05. Containerized And Orchestrated Microservices/Server/CarRentalSystem.Dealers/Models/Dealers/DealerOutputModel.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Models.Dealers
2 | {
3 | using CarRentalSystem.Models;
4 | using Data.Models;
5 |
6 | public class DealerOutputModel : IMapFrom
7 | {
8 | public int Id { get; set; }
9 |
10 | public string Name { get; set; }
11 |
12 | public string PhoneNumber { get; set; }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/cars/cars.model.ts:
--------------------------------------------------------------------------------
1 | import { Profile } from '../dealers/profile/profile.model';
2 |
3 | export interface Car {
4 | id?: number;
5 | manufacturer: string;
6 | model: string;
7 | category: number;
8 | imageUrl: string;
9 | pricePerDay: number;
10 | hasClimateControl: boolean;
11 | numberOfSeats: number;
12 | transmissionType: number;
13 | isAvailable?: boolean;
14 | dealer?: Profile;
15 | }
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Server/CarRentalSystem/Services/Categories/ICategoryService.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Services.Categories
2 | {
3 | using System.Collections.Generic;
4 | using System.Threading.Tasks;
5 | using Data.Models;
6 | using Models.Categories;
7 |
8 | public interface ICategoryService
9 | {
10 | Task Find(int categoryId);
11 |
12 | Task> GetAll();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Client/src/app/cars/dealer-cars/dealer-cars.component.css:
--------------------------------------------------------------------------------
1 | .btn {
2 | margin-left: 1%;
3 | }
4 |
5 | .pop-up-box {
6 | overflow-y: auto;
7 | max-height: 100vh;
8 | margin: 0 auto;
9 | width: 100%;
10 | padding: 2rem;
11 | box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
12 | background: white;
13 | color: #007bff;
14 | text-align: left;
15 | }
--------------------------------------------------------------------------------
/02. Working With Distributed Data/Server/CarRentalSystem.Dealers/Data/Models/Category.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | using System.Collections.Generic;
4 |
5 | public class Category
6 | {
7 | public int Id { get; set; }
8 |
9 | public string Name { get; set; }
10 |
11 | public string Description { get; set; }
12 |
13 | public IEnumerable CarAds { get; set; } = new List();
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/cars/cars.model.ts:
--------------------------------------------------------------------------------
1 | import { Profile } from '../dealers/profile/profile.model';
2 |
3 | export interface Car {
4 | id?: number;
5 | manufacturer: string;
6 | model: string;
7 | category: number;
8 | imageUrl: string;
9 | pricePerDay: number;
10 | hasClimateControl: boolean;
11 | numberOfSeats: number;
12 | transmissionType: number;
13 | isAvailable?: boolean;
14 | dealer?: Profile;
15 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Client/src/app/cars/cars.model.ts:
--------------------------------------------------------------------------------
1 | import { Profile } from '../dealers/profile/profile.model';
2 |
3 | export interface Car {
4 | id?: number;
5 | manufacturer: string;
6 | model: string;
7 | category: number;
8 | imageUrl: string;
9 | pricePerDay: number;
10 | hasClimateControl: boolean;
11 | numberOfSeats: number;
12 | transmissionType: number;
13 | isAvailable?: boolean;
14 | dealer?: Profile;
15 | }
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/.dockerignore:
--------------------------------------------------------------------------------
1 | **/.classpath
2 | **/.dockerignore
3 | **/.env
4 | **/.git
5 | **/.gitignore
6 | **/.project
7 | **/.settings
8 | **/.toolstarget
9 | **/.vs
10 | **/.vscode
11 | **/*.*proj.user
12 | **/*.dbmdl
13 | **/*.jfm
14 | **/azds.yaml
15 | **/bin
16 | **/charts
17 | **/docker-compose*
18 | **/Dockerfile*
19 | **/node_modules
20 | **/npm-debug.log
21 | **/obj
22 | **/secrets.dev.yaml
23 | **/values.dev.yaml
24 | LICENSE
25 | README.md
--------------------------------------------------------------------------------
/06. Resiliency And High Availability/Server/CarRentalSystem.Dealers/Data/Models/Category.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | using System.Collections.Generic;
4 |
5 | public class Category
6 | {
7 | public int Id { get; set; }
8 |
9 | public string Name { get; set; }
10 |
11 | public string Description { get; set; }
12 |
13 | public IEnumerable CarAds { get; set; } = new List();
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/01. Essential Microservices Concepts/Client/src/app/cars/dealer-cars/dealer-cars.component.css:
--------------------------------------------------------------------------------
1 | .btn {
2 | margin-left: 1%;
3 | }
4 |
5 | .pop-up-box {
6 | overflow-y: auto;
7 | max-height: 100vh;
8 | margin: 0 auto;
9 | width: 100%;
10 | padding: 2rem;
11 | box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
12 | background: white;
13 | color: #007bff;
14 | text-align: left;
15 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/cars/cars.model.ts:
--------------------------------------------------------------------------------
1 | import { Profile } from '../dealers/profile/profile.model';
2 |
3 | export interface Car {
4 | id?: number;
5 | manufacturer: string;
6 | model: string;
7 | category: number;
8 | imageUrl: string;
9 | pricePerDay: number;
10 | hasClimateControl: boolean;
11 | numberOfSeats: number;
12 | transmissionType: number;
13 | isAvailable?: boolean;
14 | dealer?: Profile;
15 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Client/src/app/cars/dealer-cars/dealer-cars.component.css:
--------------------------------------------------------------------------------
1 | .btn {
2 | margin-left: 1%;
3 | }
4 |
5 | .pop-up-box {
6 | overflow-y: auto;
7 | max-height: 100vh;
8 | margin: 0 auto;
9 | width: 100%;
10 | padding: 2rem;
11 | box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
12 | background: white;
13 | color: #007bff;
14 | text-align: left;
15 | }
--------------------------------------------------------------------------------
/03. Front-End And Back-End Communication/Server/CarRentalSystem.Dealers/Data/Models/Category.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | using System.Collections.Generic;
4 |
5 | public class Category
6 | {
7 | public int Id { get; set; }
8 |
9 | public string Name { get; set; }
10 |
11 | public string Description { get; set; }
12 |
13 | public IEnumerable CarAds { get; set; } = new List();
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Client/src/app/cars/dealer-cars/dealer-cars.component.css:
--------------------------------------------------------------------------------
1 | .btn {
2 | margin-left: 1%;
3 | }
4 |
5 | .pop-up-box {
6 | overflow-y: auto;
7 | max-height: 100vh;
8 | margin: 0 auto;
9 | width: 100%;
10 | padding: 2rem;
11 | box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
12 | background: white;
13 | color: #007bff;
14 | text-align: left;
15 | }
--------------------------------------------------------------------------------
/04. Internal Microservice Communication/Server/CarRentalSystem.Dealers/Data/Models/Category.cs:
--------------------------------------------------------------------------------
1 | namespace CarRentalSystem.Dealers.Data.Models
2 | {
3 | using System.Collections.Generic;
4 |
5 | public class Category
6 | {
7 | public int Id { get; set; }
8 |
9 | public string Name { get; set; }
10 |
11 | public string Description { get; set; }
12 |
13 | public IEnumerable CarAds { get; set; } = new List();
14 | }
15 | }
16 |
--------------------------------------------------------------------------------