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