├── BankOnMicroservices ├── LICENSE ├── README.md └── src │ ├── BankOnMicroservices.sln │ ├── Bus │ ├── Bus.csproj │ └── RabbitMQBus.cs │ ├── Domain │ ├── Bus │ │ ├── IEventBus.cs │ │ └── IEventHandler.cs │ ├── Commands │ │ └── Command.cs │ ├── Domain.csproj │ └── Events │ │ ├── Event.cs │ │ └── Message.cs │ ├── IOC │ ├── DependencyContainer.cs │ └── IOC.csproj │ ├── Services │ ├── Banking │ │ ├── Banking.Api │ │ │ ├── Banking.Api.csproj │ │ │ ├── Controllers │ │ │ │ └── BankingController.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── Startup.cs │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ │ ├── Banking.Application │ │ │ ├── Banking.Application.csproj │ │ │ ├── Interfaces │ │ │ │ └── IAccountService.cs │ │ │ ├── Models │ │ │ │ └── AccountTransfer.cs │ │ │ └── Services │ │ │ │ └── AccountService.cs │ │ ├── Domain │ │ │ ├── Banking.Domain.csproj │ │ │ ├── Commands │ │ │ │ └── Transfer │ │ │ │ │ └── TransferCommand.cs │ │ │ ├── Events │ │ │ │ └── Transfer │ │ │ │ │ └── TransferCreatedEvent.cs │ │ │ ├── Interfaces │ │ │ │ └── IAccountRepository.cs │ │ │ └── Models │ │ │ │ └── Account.cs │ │ └── Infrastructure │ │ │ ├── Banking.Infrastructure.csproj │ │ │ ├── Data │ │ │ ├── BankingDbContext.cs │ │ │ └── BankingDbContextFactory.cs │ │ │ ├── Migrations │ │ │ ├── 20200220023310_Initial Migration.Designer.cs │ │ │ ├── 20200220023310_Initial Migration.cs │ │ │ └── BankingDbContextModelSnapshot.cs │ │ │ └── Repository │ │ │ └── AccountRepository.cs │ └── Transfer │ │ ├── Api │ │ ├── Controllers │ │ │ └── TransferController.cs │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── Transfer.Api.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ │ ├── Application │ │ ├── Interfaces │ │ │ └── ITransferService.cs │ │ ├── Services │ │ │ └── TransferService.cs │ │ └── Transfer.Application.csproj │ │ ├── Domain │ │ ├── Events │ │ │ └── Transfer │ │ │ │ ├── TransferCreatedEvent.cs │ │ │ │ └── TransferEventHandler.cs │ │ ├── Interfaces │ │ │ └── ITransferRepository.cs │ │ ├── Models │ │ │ └── TransferLog.cs │ │ └── Transfer.Domain.csproj │ │ └── Infrastructure │ │ ├── Data │ │ ├── TransferDbContext.cs │ │ └── TransferDbContextFactory.cs │ │ ├── Migrations │ │ ├── 20200223141137_Initial Migration.Designer.cs │ │ ├── 20200223141137_Initial Migration.cs │ │ └── TransferDbContextModelSnapshot.cs │ │ ├── Repository │ │ └── TransferRepository.cs │ │ └── Transfer.Infrastructure.csproj │ └── WebApp │ ├── Controllers │ └── HomeController.cs │ ├── Models │ ├── DTO │ │ └── TransferDTO.cs │ ├── ErrorViewModel.cs │ └── TransferViewModel.cs │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── Services │ ├── ITransferService.cs │ └── TransferService.cs │ ├── Startup.cs │ ├── Views │ ├── Home │ │ ├── Index.cshtml │ │ └── Privacy.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ ├── _Layout.cshtml │ │ └── _ValidationScriptsPartial.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml │ ├── WebApp.csproj │ ├── appsettings.Development.json │ ├── appsettings.json │ └── wwwroot │ ├── css │ └── site.css │ ├── favicon.ico │ ├── js │ └── site.js │ └── lib │ ├── bootstrap │ ├── LICENSE │ └── dist │ │ ├── css │ │ ├── bootstrap-grid.css │ │ ├── bootstrap-grid.css.map │ │ ├── bootstrap-grid.min.css │ │ ├── bootstrap-grid.min.css.map │ │ ├── bootstrap-reboot.css │ │ ├── bootstrap-reboot.css.map │ │ ├── bootstrap-reboot.min.css │ │ ├── bootstrap-reboot.min.css.map │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.css.map │ │ └── js │ │ ├── bootstrap.bundle.js │ │ ├── bootstrap.bundle.js.map │ │ ├── bootstrap.bundle.min.js │ │ ├── bootstrap.bundle.min.js.map │ │ ├── bootstrap.js │ │ ├── bootstrap.js.map │ │ ├── bootstrap.min.js │ │ └── bootstrap.min.js.map │ ├── jquery-validation-unobtrusive │ ├── LICENSE.txt │ ├── jquery.validate.unobtrusive.js │ └── jquery.validate.unobtrusive.min.js │ ├── jquery-validation │ ├── LICENSE.md │ └── dist │ │ ├── additional-methods.js │ │ ├── additional-methods.min.js │ │ ├── jquery.validate.js │ │ └── jquery.validate.min.js │ └── jquery │ ├── LICENSE.txt │ └── dist │ ├── jquery.js │ ├── jquery.min.js │ └── jquery.min.map ├── ChatApp ├── ChatApp.csproj ├── ChatApp.csproj.user ├── ChatHub.cs ├── Pages │ ├── About.cshtml │ ├── About.cshtml.cs │ ├── Contact.cshtml │ ├── Contact.cshtml.cs │ ├── Error.cshtml │ ├── Error.cshtml.cs │ ├── Index.cshtml │ ├── Index.cshtml.cs │ ├── Privacy.cshtml │ ├── Privacy.cshtml.cs │ ├── Shared │ │ ├── _CookieConsentPartial.cshtml │ │ ├── _Layout.cshtml │ │ └── _ValidationScriptsPartial.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml ├── Program.cs ├── Properties │ └── launchSettings.json ├── README.md ├── Startup.cs ├── appsettings.Development.json ├── appsettings.json ├── web.config └── wwwroot │ ├── css │ ├── site.css │ └── site.min.css │ ├── favicon.ico │ ├── images │ ├── banner1.svg │ ├── banner2.svg │ └── banner3.svg │ ├── js │ ├── Chat.js │ ├── site.js │ └── site.min.js │ └── lib │ ├── bootstrap │ ├── .bower.json │ ├── LICENSE │ └── dist │ │ ├── css │ │ ├── bootstrap-theme.css │ │ ├── bootstrap-theme.css.map │ │ ├── bootstrap-theme.min.css │ │ ├── bootstrap-theme.min.css.map │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.css.map │ │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ │ └── js │ │ ├── bootstrap.js │ │ ├── bootstrap.min.js │ │ └── npm.js │ ├── jquery-validation-unobtrusive │ ├── .bower.json │ ├── LICENSE.txt │ ├── jquery.validate.unobtrusive.js │ └── jquery.validate.unobtrusive.min.js │ ├── jquery-validation │ ├── .bower.json │ ├── LICENSE.md │ └── dist │ │ ├── additional-methods.js │ │ ├── additional-methods.min.js │ │ ├── jquery.validate.js │ │ └── jquery.validate.min.js │ ├── jquery │ ├── .bower.json │ ├── LICENSE.txt │ └── dist │ │ ├── jquery.js │ │ ├── jquery.min.js │ │ └── jquery.min.map │ └── signalr │ └── signalr.js ├── CleanLibrary ├── LICENSE ├── Library.Api │ ├── Controllers │ │ ├── AutorController.cs │ │ ├── BookController.cs │ │ └── EditorController.cs │ ├── Library.Api.csproj │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Startup.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── Library.Domain │ ├── Entities │ │ ├── Autor.cs │ │ ├── Base.cs │ │ ├── Book.cs │ │ └── Editor.cs │ ├── Interfaces │ │ ├── IRepositoryBase.cs │ │ └── IServiceBase.cs │ └── Library.Domain.csproj ├── Library.Infra.DI │ ├── Extensions │ │ └── IServiceCollectionExtension.cs │ └── Library.Infra.DI.csproj ├── Library.Infra.Data │ ├── Context │ │ └── LivrariaDbContext.cs │ ├── Library.Infra.Data.csproj │ ├── Mapping │ │ ├── AutorMap.cs │ │ ├── EditoraMap.cs │ │ └── LivroMap.cs │ ├── Migrations │ │ ├── 20180829023136_initial.Designer.cs │ │ ├── 20180829023136_initial.cs │ │ └── LivrariaDbContextModelSnapshot.cs │ ├── Repository │ │ └── RepositoryBase.cs │ └── appsettings.json ├── Library.Service │ ├── Library.Service.csproj │ ├── Services │ │ └── ServiceBase.cs │ └── Validators │ │ ├── AutorValidator.cs │ │ ├── EditoraValidator.cs │ │ └── LivroValidator.cs ├── Library.sln ├── README.md └── package-lock.json ├── DomainEventManagement ├── Application │ ├── Application.csproj │ ├── EventHandlers │ │ └── PatientCreatedHandler.cs │ ├── Helpers │ │ └── DomainEventsContainer.cs │ └── ResolverDependencies.cs ├── ConsoleApp │ ├── ConsoleApp.csproj │ └── Program.cs ├── Domain │ ├── Domain.csproj │ ├── Entities │ │ └── Patient.cs │ └── Events │ │ └── PatientCreated.cs ├── DomainEventNetCore.sln ├── Infrastructure │ ├── DomainEvents.cs │ ├── Infrastructure.csproj │ └── Interfaces │ │ ├── IContainer.cs │ │ ├── IDomainEvent.cs │ │ └── IEventHandling.cs └── global.json ├── ElasticCore ├── Controllers │ └── ValuesController.cs ├── ElasticCore.csproj ├── LICENSE ├── Program.cs ├── Properties │ └── launchSettings.json ├── README.md ├── Startup.cs ├── appsettings.Development.json └── appsettings.json ├── EmployeeManagement-ddd-cqrs ├── EmployeeManagement.Application │ ├── CommandResult.cs │ ├── EmployeeManagement.Application.csproj │ ├── Employees │ │ ├── Commands │ │ │ └── CreateEmployee │ │ │ │ ├── CreateEmployeeCommand.cs │ │ │ │ ├── CreateEmployeeCommandHandler.cs │ │ │ │ └── CreateEmployeeCommandValidation.cs │ │ └── Queries │ │ │ └── GetAllEmployees │ │ │ ├── GetAllEmployeesQuery.cs │ │ │ └── GetAllEmployeesQueryHandler.cs │ ├── Interfaces │ │ └── IEmployeeService.cs │ └── Services │ │ └── EmployeeService.cs ├── EmployeeManagement.Domain │ ├── EmployeeManagement.Domain.csproj │ ├── Entities │ │ └── Employee.cs │ └── Interfaces │ │ ├── Employee │ │ └── IEmployeeRepository.cs │ │ └── IRepository.cs ├── EmployeeManagement.Infrastructure │ ├── Context │ │ └── CrudDDDContext.cs │ ├── EmployeeManagement.Infrastructure.csproj │ ├── Mapping │ │ └── EmployeeMap.cs │ ├── Migrations │ │ ├── 20190701211037_MyFirstMigration.Designer.cs │ │ ├── 20190701211037_MyFirstMigration.cs │ │ └── CrudDDDContextModelSnapshot.cs │ └── Repository │ │ ├── BaseRepository.cs │ │ └── EmployeeRepository.cs ├── EmployeeManagement.Presentation │ ├── Controllers │ │ ├── BaseController.cs │ │ ├── EmployeesController.cs │ │ └── HomeController.cs │ ├── Dockerfile │ ├── EmployeeManagement.Presentation.csproj │ ├── Models │ │ └── ErrorViewModel.cs │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Startup.cs │ ├── Views │ │ ├── Employees │ │ │ ├── Create.cshtml │ │ │ ├── Details.cshtml │ │ │ ├── Edit.cshtml │ │ │ └── Index.cshtml │ │ ├── Home │ │ │ ├── About.cshtml │ │ │ ├── Contact.cshtml │ │ │ └── Index.cshtml │ │ ├── Shared │ │ │ ├── Error.cshtml │ │ │ ├── _CookieConsentPartial.cshtml │ │ │ ├── _Layout.cshtml │ │ │ └── _ValidationScriptsPartial.cshtml │ │ ├── _ViewImports.cshtml │ │ └── _ViewStart.cshtml │ ├── appsettings.Development.json │ ├── appsettings.json │ ├── bundleconfig.json │ └── wwwroot │ │ ├── css │ │ └── site.css │ │ ├── favicon.ico │ │ ├── js │ │ └── site.js │ │ └── lib │ │ ├── bootstrap │ │ ├── LICENSE │ │ └── dist │ │ │ ├── css │ │ │ ├── bootstrap-grid.css │ │ │ ├── bootstrap-grid.css.map │ │ │ ├── bootstrap-grid.min.css │ │ │ ├── bootstrap-grid.min.css.map │ │ │ ├── bootstrap-reboot.css │ │ │ ├── bootstrap-reboot.css.map │ │ │ ├── bootstrap-reboot.min.css │ │ │ ├── bootstrap-reboot.min.css.map │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.css.map │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.css.map │ │ │ └── js │ │ │ ├── bootstrap.bundle.js │ │ │ ├── bootstrap.bundle.js.map │ │ │ ├── bootstrap.bundle.min.js │ │ │ ├── bootstrap.bundle.min.js.map │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.js.map │ │ │ ├── bootstrap.min.js │ │ │ └── bootstrap.min.js.map │ │ ├── jquery-validation-unobtrusive │ │ ├── LICENSE.txt │ │ ├── jquery.validate.unobtrusive.js │ │ └── jquery.validate.unobtrusive.min.js │ │ ├── jquery-validation │ │ ├── LICENSE.md │ │ └── dist │ │ │ ├── additional-methods.js │ │ │ ├── additional-methods.min.js │ │ │ ├── jquery.validate.js │ │ │ └── jquery.validate.min.js │ │ └── jquery │ │ ├── LICENSE.txt │ │ └── dist │ │ ├── jquery.js │ │ ├── jquery.min.js │ │ └── jquery.min.map ├── EmployeeManagement.sln └── README.md ├── EmployeeManagement ├── Areas │ └── Identity │ │ └── Pages │ │ └── _ViewStart.cshtml ├── Controllers │ ├── EmployeeController.cs │ └── HomeController.cs ├── Data │ ├── ApplicationDbContext.cs │ └── Migrations │ │ ├── 00000000000000_CreateIdentitySchema.Designer.cs │ │ ├── 00000000000000_CreateIdentitySchema.cs │ │ ├── 20180824202814_InitialCreate.Designer.cs │ │ ├── 20180824202814_InitialCreate.cs │ │ └── ApplicationDbContextModelSnapshot.cs ├── EmployeeManagement.csproj ├── LICENSE ├── Models │ ├── Employees.cs │ └── ErrorViewModel.cs ├── Program.cs ├── Properties │ └── launchSettings.json ├── README.md ├── Startup.cs ├── Views │ ├── Employee │ │ ├── Create.cshtml │ │ ├── Delete.cshtml │ │ ├── Details.cshtml │ │ ├── Edit.cshtml │ │ └── Index.cshtml │ ├── Home │ │ ├── About.cshtml │ │ ├── Index.cshtml │ │ └── Privacy.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ ├── _CookieConsentPartial.cshtml │ │ ├── _Layout.cshtml │ │ ├── _LoginPartial.cshtml │ │ └── _ValidationScriptsPartial.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml ├── app.db ├── appsettings.Development.json ├── appsettings.json ├── obj │ ├── Debug │ │ └── netcoreapp2.2 │ │ │ ├── EmployeeManagement.AssemblyInfo.cs │ │ │ ├── EmployeeManagement.AssemblyInfoInputs.cache │ │ │ ├── EmployeeManagement.RazorAssemblyInfo.cache │ │ │ ├── EmployeeManagement.RazorAssemblyInfo.cs │ │ │ ├── EmployeeManagement.RazorCoreGenerate.cache │ │ │ ├── EmployeeManagement.RazorTargetAssemblyInfo.cache │ │ │ ├── EmployeeManagement.RazorTargetAssemblyInfo.cs │ │ │ ├── EmployeeManagement.TagHelpers.input.cache │ │ │ ├── EmployeeManagement.TagHelpers.output.cache │ │ │ ├── EmployeeManagement.Views.dll │ │ │ ├── EmployeeManagement.Views.pdb │ │ │ ├── EmployeeManagement.assets.cache │ │ │ ├── EmployeeManagement.csproj.CopyComplete │ │ │ ├── EmployeeManagement.csproj.CoreCompileInputs.cache │ │ │ ├── EmployeeManagement.csproj.FileListAbsolute.txt │ │ │ ├── EmployeeManagement.csprojAssemblyReference.cache │ │ │ ├── EmployeeManagement.dll │ │ │ ├── EmployeeManagement.pdb │ │ │ ├── Razor │ │ │ ├── Areas │ │ │ │ └── Identity │ │ │ │ │ └── Pages │ │ │ │ │ └── _ViewStart.g.cshtml.cs │ │ │ └── Views │ │ │ │ ├── Employee │ │ │ │ ├── Create.g.cshtml.cs │ │ │ │ ├── Delete.g.cshtml.cs │ │ │ │ ├── Details.g.cshtml.cs │ │ │ │ ├── Edit.g.cshtml.cs │ │ │ │ └── Index.g.cshtml.cs │ │ │ │ ├── Home │ │ │ │ ├── About.g.cshtml.cs │ │ │ │ ├── Index.g.cshtml.cs │ │ │ │ └── Privacy.g.cshtml.cs │ │ │ │ ├── Shared │ │ │ │ ├── Error.g.cshtml.cs │ │ │ │ ├── _CookieConsentPartial.g.cshtml.cs │ │ │ │ ├── _Layout.g.cshtml.cs │ │ │ │ ├── _LoginPartial.g.cshtml.cs │ │ │ │ └── _ValidationScriptsPartial.g.cshtml.cs │ │ │ │ ├── _ViewImports.g.cshtml.cs │ │ │ │ └── _ViewStart.g.cshtml.cs │ │ │ ├── UserSecretsAssemblyInfo.cs │ │ │ ├── mvcauth.AssemblyInfo.cs │ │ │ ├── mvcauth.AssemblyInfoInputs.cache │ │ │ ├── mvcauth.RazorAssemblyInfo.cache │ │ │ ├── mvcauth.RazorAssemblyInfo.cs │ │ │ ├── mvcauth.RazorCoreGenerate.cache │ │ │ ├── mvcauth.RazorTargetAssemblyInfo.cache │ │ │ ├── mvcauth.RazorTargetAssemblyInfo.cs │ │ │ ├── mvcauth.TagHelpers.input.cache │ │ │ ├── mvcauth.TagHelpers.output.cache │ │ │ ├── mvcauth.Views.dll │ │ │ ├── mvcauth.Views.pdb │ │ │ ├── mvcauth.assets.cache │ │ │ ├── mvcauth.csproj.CopyComplete │ │ │ ├── mvcauth.csproj.CoreCompileInputs.cache │ │ │ ├── mvcauth.csproj.FileListAbsolute.txt │ │ │ ├── mvcauth.csprojAssemblyReference.cache │ │ │ ├── mvcauth.dll │ │ │ └── mvcauth.pdb │ ├── EmployeeManagement.csproj.nuget.cache │ ├── EmployeeManagement.csproj.nuget.g.props │ ├── EmployeeManagement.csproj.nuget.g.targets │ ├── mvcauth.csproj.EntityFrameworkCore.targets │ ├── mvcauth.csproj.codegeneration.targets │ ├── mvcauth.csproj.nuget.cache │ ├── mvcauth.csproj.nuget.g.props │ ├── mvcauth.csproj.nuget.g.targets │ └── project.assets.json └── wwwroot │ ├── css │ ├── site.css │ └── site.min.css │ ├── favicon.ico │ ├── images │ ├── banner1.svg │ ├── banner2.svg │ └── banner3.svg │ ├── js │ ├── site.js │ └── site.min.js │ └── lib │ ├── bootstrap │ ├── LICENSE │ └── dist │ │ ├── css │ │ ├── bootstrap-grid.css │ │ ├── bootstrap-grid.css.map │ │ ├── bootstrap-grid.min.css │ │ ├── bootstrap-grid.min.css.map │ │ ├── bootstrap-reboot.css │ │ ├── bootstrap-reboot.css.map │ │ ├── bootstrap-reboot.min.css │ │ ├── bootstrap-reboot.min.css.map │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.css.map │ │ └── js │ │ ├── bootstrap.bundle.js │ │ ├── bootstrap.bundle.js.map │ │ ├── bootstrap.bundle.min.js │ │ ├── bootstrap.bundle.min.js.map │ │ ├── bootstrap.js │ │ ├── bootstrap.js.map │ │ ├── bootstrap.min.js │ │ └── bootstrap.min.js.map │ ├── jquery-validation-unobtrusive │ ├── LICENSE.txt │ ├── jquery.validate.unobtrusive.js │ └── jquery.validate.unobtrusive.min.js │ ├── jquery-validation │ ├── .bower.json │ ├── LICENSE.md │ └── dist │ │ ├── additional-methods.js │ │ ├── additional-methods.min.js │ │ ├── jquery.validate.js │ │ └── jquery.validate.min.js │ └── jquery │ ├── .bower.json │ ├── LICENSE.txt │ └── dist │ ├── jquery.js │ ├── jquery.min.js │ └── jquery.min.map ├── GlobalizationApi ├── GlobalApi.sln └── GlobalApi │ ├── Controllers │ └── LanguageController.cs │ ├── GlobalApi.csproj │ ├── GlobalApi.csproj.user │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── Resources │ └── Controllers │ │ ├── LanguageController.en.resx │ │ └── LanguageController.fr.resx │ ├── Startup.cs │ └── appsettings.json ├── HelloBox ├── Areas │ └── Identity │ │ └── Pages │ │ ├── Account │ │ ├── Login.cshtml │ │ ├── Login.cshtml.cs │ │ ├── Register.cshtml │ │ ├── Register.cshtml.cs │ │ └── _ViewImports.cshtml │ │ ├── _ValidationScriptsPartial.cshtml │ │ ├── _ViewImports.cshtml │ │ └── _ViewStart.cshtml ├── Controllers │ ├── HomeController.cs │ └── PortfolioItemsController.cs ├── Data │ ├── ApplicationDbContext.cs │ └── Migrations │ │ ├── 00000000000000_CreateIdentitySchema.Designer.cs │ │ ├── 00000000000000_CreateIdentitySchema.cs │ │ ├── 20181230124202_Init.Designer.cs │ │ ├── 20181230124202_Init.cs │ │ └── ApplicationDbContextModelSnapshot.cs ├── HelloBox.csproj ├── HelloBox.sln ├── Models │ ├── Category.cs │ ├── ErrorViewModel.cs │ └── PortfolioItem.cs ├── Program.cs ├── Properties │ └── launchSettings.json ├── Startup.cs ├── Views │ ├── Home │ │ ├── Index.cshtml │ │ └── Privacy.cshtml │ ├── PortfolioItems │ │ ├── Create.cshtml │ │ ├── Delete.cshtml │ │ ├── Details.cshtml │ │ ├── Edit.cshtml │ │ └── Index.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ ├── _CookieConsentPartial.cshtml │ │ ├── _Layout.cshtml │ │ ├── _LoginPartial.cshtml │ │ └── _ValidationScriptsPartial.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml ├── app.db ├── appsettings.Development.json ├── appsettings.json └── wwwroot │ ├── admin.html │ ├── css │ ├── agency.css │ ├── agency.min.css │ └── overides.css │ ├── img │ ├── about │ │ ├── 1.jpg │ │ ├── 2.jpg │ │ ├── 3.jpg │ │ └── 4.jpg │ ├── header-bg.jpg │ ├── logo1.png │ ├── logos │ │ ├── creative-market.jpg │ │ ├── designmodo.jpg │ │ ├── envato.jpg │ │ └── themeforest.jpg │ ├── map-image.png │ ├── scrole.png │ └── team │ │ ├── 1.jpg │ │ ├── 2.jpg │ │ └── 3.jpg │ ├── js │ ├── agency.js │ ├── agency.min.js │ ├── contact_me.js │ ├── contact_me.min.js │ ├── jqBootstrapValidation.js │ └── jqBootstrapValidation.min.js │ ├── mail │ └── contact_me.php │ ├── uploads │ ├── Fotoram.io.png │ └── app.png │ └── video │ └── V1.mp4 ├── JWT-API-Auth ├── Controllers │ └── UsersController.cs ├── Entities │ └── User.cs ├── Helpers │ ├── AppSettings.cs │ └── ExtensionMethods.cs ├── JWT-API-Auth.sln ├── Models │ └── AuthenticateModel.cs ├── Program.cs ├── Services │ ├── IUserService.cs │ └── UserService.cs ├── Startup.cs ├── WebApi.csproj ├── appsettings.Development.json ├── appsettings.json └── global.json ├── LibraryCore ├── .bowerrc ├── .gitignore ├── Controllers │ ├── CatalogController.cs │ └── HomeController.cs ├── LibraryCore.csproj ├── LibraryDB.db ├── LibraryData │ ├── ILibraryAsset.cs │ └── LibraryContext.cs ├── LibraryServices │ └── LibraryAssetService.cs ├── Migrations │ ├── 20171122015643_FirstMigration.Designer.cs │ ├── 20171122015643_FirstMigration.cs │ ├── 20171123072410_InitialEntityModels.Designer.cs │ ├── 20171123072410_InitialEntityModels.cs │ └── LibraryContextModelSnapshot.cs ├── Models │ ├── Book.cs │ ├── BranchHours.cs │ ├── Catalog │ │ ├── AssetIndexListingModel.cs │ │ └── AssetIndexModel.cs │ ├── Checkout.cs │ ├── CheckoutHistory.cs │ ├── ErrorViewModel.cs │ ├── Hold.cs │ ├── LibraryAsset.cs │ ├── LibraryBranch.cs │ ├── LibraryCard.cs │ ├── Patron.cs │ ├── Status.cs │ └── Video.cs ├── Program.cs ├── Startup.cs ├── Views │ ├── Catalog │ │ └── Index.cshtml │ ├── Home │ │ ├── About.cshtml │ │ ├── Contact.cshtml │ │ └── Index.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ ├── _Layout.cshtml │ │ └── _ValidationScriptsPartial.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml ├── appsettings.Development.json ├── appsettings.json ├── bower.json ├── bundleconfig.json └── wwwroot │ ├── css │ ├── site.css │ └── site.min.css │ ├── favicon.ico │ ├── images │ ├── banner1.svg │ ├── banner2.svg │ ├── banner3.svg │ └── banner4.svg │ ├── js │ ├── site.js │ └── site.min.js │ └── lib │ ├── bootstrap │ ├── .bower.json │ ├── LICENSE │ └── dist │ │ ├── css │ │ ├── bootstrap-theme.css │ │ ├── bootstrap-theme.css.map │ │ ├── bootstrap-theme.min.css │ │ ├── bootstrap-theme.min.css.map │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.css.map │ │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ │ └── js │ │ ├── bootstrap.js │ │ ├── bootstrap.min.js │ │ └── npm.js │ ├── jquery-validation-unobtrusive │ ├── .bower.json │ ├── jquery.validate.unobtrusive.js │ └── jquery.validate.unobtrusive.min.js │ ├── jquery-validation │ ├── .bower.json │ ├── LICENSE.md │ └── dist │ │ ├── additional-methods.js │ │ ├── additional-methods.min.js │ │ ├── jquery.validate.js │ │ └── jquery.validate.min.js │ └── jquery │ ├── .bower.json │ ├── LICENSE.txt │ └── dist │ ├── jquery.js │ ├── jquery.min.js │ └── jquery.min.map ├── MeklaAPI ├── .gitattributes ├── .gitignore ├── LICENSE ├── MeklaAPI.sln ├── MeklaAPI │ ├── Controllers │ │ ├── v1 │ │ │ └── MeklaController.cs │ │ └── v2 │ │ │ └── MeklaController.cs │ ├── Entities │ │ └── Mekla.cs │ ├── Helpers │ │ ├── DynamicExtensions.cs │ │ └── QueryParametersExtensions.cs │ ├── MeklaAPI.csproj │ ├── MeklaCRUD │ │ ├── MeklaCreate.cs │ │ └── MeklaUpdate.cs │ ├── Models │ │ ├── Link.cs │ │ └── QueryParameters.cs │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Repositories │ │ ├── EfMeklaRepository.cs │ │ ├── IMeklaRepository.cs │ │ └── MeklaDbContext.cs │ ├── Services │ │ ├── ISeedDataService.cs │ │ └── SeedDataService.cs │ ├── Startup.cs │ ├── appsettings.Development.json │ └── appsettings.json └── README.md ├── NetCoreCharts ├── .gitattributes ├── Controllers │ ├── ChartsController.cs │ └── HomeController.cs ├── LICENSE ├── Models │ ├── ErrorViewModel.cs │ ├── SimpleReportViewModel.cs │ └── StackedViewModel.cs ├── NetCoreCharts.csproj ├── Program.cs ├── Properties │ └── launchSettings.json ├── README.md ├── Startup.cs ├── Views │ ├── Charts │ │ ├── Bar.cshtml │ │ ├── Line.cshtml │ │ ├── Pie.cshtml │ │ └── Stacked.cshtml │ ├── Home │ │ ├── About.cshtml │ │ ├── Contact.cshtml │ │ ├── Index.cshtml │ │ └── Privacy.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ ├── _CookieConsentPartial.cshtml │ │ ├── _Layout.cshtml │ │ └── _ValidationScriptsPartial.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml ├── appsettings.Development.json ├── appsettings.json └── wwwroot │ ├── css │ ├── site.css │ └── site.min.css │ ├── favicon.ico │ ├── images │ ├── banner1.svg │ ├── banner2.svg │ └── banner3.svg │ ├── js │ ├── site.js │ └── site.min.js │ └── lib │ ├── bootstrap │ ├── .bower.json │ ├── LICENSE │ └── dist │ │ ├── css │ │ ├── bootstrap-theme.css │ │ ├── bootstrap-theme.css.map │ │ ├── bootstrap-theme.min.css │ │ ├── bootstrap-theme.min.css.map │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.css.map │ │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ │ └── js │ │ ├── bootstrap.js │ │ ├── bootstrap.min.js │ │ └── npm.js │ ├── jquery-validation-unobtrusive │ ├── .bower.json │ ├── LICENSE.txt │ ├── jquery.validate.unobtrusive.js │ └── jquery.validate.unobtrusive.min.js │ ├── jquery-validation │ ├── .bower.json │ ├── LICENSE.md │ └── dist │ │ ├── additional-methods.js │ │ ├── additional-methods.min.js │ │ ├── jquery.validate.js │ │ └── jquery.validate.min.js │ └── jquery │ ├── .bower.json │ ├── LICENSE.txt │ └── dist │ ├── jquery.js │ ├── jquery.min.js │ └── jquery.min.map ├── NetCoreGraphQL ├── Controllers │ └── GraphQLController.cs ├── Data │ ├── CategoryRepository.cs │ ├── ICategoryRepository.cs │ ├── IProductRepository.cs │ └── ProductRepository.cs ├── LICENSE ├── Models │ ├── Category.cs │ ├── CategoryType.cs │ ├── EasyStoreQuery.cs │ ├── EasyStoreSchema.cs │ ├── GraphQLQuery.cs │ ├── Product.cs │ └── ProductType.cs ├── Program.cs ├── README.md ├── Startup.cs ├── appsettings.Development.json ├── appsettings.json └── aspnetcoregraphql.csproj ├── PushNotificationCore ├── Controllers │ ├── BaseController.cs │ └── ClientsController.cs ├── Data │ └── PushNotifyDbContext.cs ├── LICENSE ├── Models │ ├── Client.cs │ ├── ErrorViewModel.cs │ └── PNotify.cs ├── Program.cs ├── Properties │ └── launchSettings.json ├── PushNotificationCore.csproj ├── README.md ├── Startup.cs ├── ViewComponents │ └── AdminMensagens.cs ├── Views │ ├── Clients │ │ ├── Create.cshtml │ │ ├── Delete.cshtml │ │ ├── Edit.cshtml │ │ └── Index.cshtml │ ├── Shared │ │ ├── Components │ │ │ └── AdminMensagens │ │ │ │ └── Default.cshtml │ │ ├── Error.cshtml │ │ ├── _Layout.cshtml │ │ └── _ValidationScriptsPartial.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml ├── appsettings.Development.json ├── appsettings.json └── wwwroot │ ├── css │ ├── site.css │ └── site.min.css │ ├── favicon.ico │ ├── images │ ├── banner1.svg │ ├── banner2.svg │ └── banner3.svg │ ├── js │ └── site.js │ └── lib │ ├── bootstrap │ ├── LICENSE │ └── dist │ │ ├── css │ │ ├── bootstrap-theme.css │ │ ├── bootstrap-theme.css.map │ │ ├── bootstrap-theme.min.css │ │ ├── bootstrap-theme.min.css.map │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.css.map │ │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ │ └── js │ │ ├── bootstrap.js │ │ ├── bootstrap.min.js │ │ └── npm.js │ ├── jquery-validation-unobtrusive │ ├── LICENSE.txt │ ├── jquery.validate.unobtrusive.js │ └── jquery.validate.unobtrusive.min.js │ ├── jquery-validation │ ├── LICENSE.md │ └── dist │ │ ├── additional-methods.js │ │ ├── additional-methods.min.js │ │ ├── jquery.validate.js │ │ └── jquery.validate.min.js │ ├── jquery │ ├── LICENSE.txt │ └── dist │ │ ├── jquery.js │ │ ├── jquery.min.js │ │ └── jquery.min.map │ └── pnotify │ ├── PNotify.js │ ├── PNotify.js.map │ ├── PNotifyAnimate.js │ ├── PNotifyAnimate.js.map │ ├── PNotifyButtons.js │ ├── PNotifyButtons.js.map │ ├── PNotifyCallbacks.js │ ├── PNotifyCallbacks.js.map │ ├── PNotifyCompat.js │ ├── PNotifyCompat.js.map │ ├── PNotifyConfirm.js │ ├── PNotifyConfirm.js.map │ ├── PNotifyDesktop.js │ ├── PNotifyDesktop.js.map │ ├── PNotifyHistory.js │ ├── PNotifyHistory.js.map │ ├── PNotifyMobile.js │ ├── PNotifyMobile.js.map │ ├── PNotifyNonBlock.js │ ├── PNotifyNonBlock.js.map │ ├── PNotifyReference.js │ ├── PNotifyReference.js.map │ ├── PNotifyStyleMaterial.js │ └── PNotifyStyleMaterial.js.map ├── README.md ├── Razor-Component-Template ├── App.razor ├── Data │ ├── WeatherForecast.cs │ └── WeatherForecastService.cs ├── LICENSE ├── MyApp.csproj ├── Pages │ ├── Counter.razor │ ├── FetchData.razor │ ├── Index.razor │ ├── _Host.cshtml │ └── _Imports.razor ├── Program.cs ├── Properties │ └── launchSettings.json ├── README.md ├── Shared │ ├── MainLayout.razor │ └── NavMenu.razor ├── Startup.cs ├── _Imports.razor ├── appsettings.Development.json ├── appsettings.json └── wwwroot │ ├── css │ ├── bootstrap │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.css.map │ ├── open-iconic │ │ ├── FONT-LICENSE │ │ ├── ICON-LICENSE │ │ ├── README.md │ │ └── font │ │ │ ├── css │ │ │ └── open-iconic-bootstrap.min.css │ │ │ └── fonts │ │ │ ├── open-iconic.eot │ │ │ ├── open-iconic.otf │ │ │ ├── open-iconic.svg │ │ │ ├── open-iconic.ttf │ │ │ └── open-iconic.woff │ └── site.css │ └── favicon.ico ├── RecurrentTask ├── README.md └── demo │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── RecurrentTask.csproj │ ├── Startup.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── RoleBaseAuthorization ├── Areas │ └── Identity │ │ └── Pages │ │ └── _ViewStart.cshtml ├── Controllers │ ├── AccountController.cs │ ├── HomeController.cs │ └── TestController.cs ├── Data │ ├── ApplicationDbContext.cs │ └── Migrations │ │ ├── 00000000000000_CreateIdentitySchema.Designer.cs │ │ ├── 00000000000000_CreateIdentitySchema.cs │ │ └── ApplicationDbContextModelSnapshot.cs ├── LICENSE ├── Models │ └── ErrorViewModel.cs ├── Pages │ ├── Test1.cshtml │ └── Test1.cshtml.cs ├── Program.cs ├── Properties │ └── launchSettings.json ├── README.md ├── RolebaseAuthorization.csproj ├── RolebaseAuthorization.csproj.user ├── Startup.cs ├── Views │ ├── Account │ │ ├── AccessDenied.cshtml │ │ └── Login.cshtml │ ├── Home │ │ ├── About.cshtml │ │ ├── Contact.cshtml │ │ ├── Index.cshtml │ │ └── Privacy.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ ├── MyPage.cshtml │ │ ├── _CookieConsentPartial.cshtml │ │ ├── _Layout.cshtml │ │ ├── _LoginPartial.cshtml │ │ └── _ValidationScriptsPartial.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml ├── appsettings.Development.json ├── appsettings.json └── wwwroot │ ├── css │ ├── site.css │ └── site.min.css │ ├── favicon.ico │ ├── js │ ├── site.js │ └── site.min.js │ └── lib │ ├── bootstrap │ ├── .bower.json │ ├── LICENSE │ └── dist │ │ ├── css │ │ ├── bootstrap.css │ │ └── bootstrap.min.css │ │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ │ └── js │ │ ├── bootstrap.js │ │ ├── bootstrap.min.js │ │ └── npm.js │ ├── jquery-validation-unobtrusive │ ├── .bower.json │ ├── LICENSE.txt │ └── jquery.validate.unobtrusive.min.js │ ├── jquery-validation │ ├── .bower.json │ ├── LICENSE.md │ └── dist │ │ ├── additional-methods.min.js │ │ └── jquery.validate.min.js │ └── jquery │ ├── .bower.json │ ├── LICENSE.txt │ └── dist │ └── jquery.min.js ├── SerilogLogging ├── .gitattributes ├── Controllers │ └── HomeController.cs ├── LICENSE ├── Logs │ └── Example20180819.txt ├── Models │ └── ErrorViewModel.cs ├── Program.cs ├── Properties │ └── launchSettings.json ├── README.md ├── SerilogLogging.csproj ├── Startup.cs ├── Views │ ├── Home │ │ ├── About.cshtml │ │ ├── Contact.cshtml │ │ └── Index.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ ├── _Layout.cshtml │ │ └── _ValidationScriptsPartial.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml ├── appsettings.Development.json ├── appsettings.json ├── bin │ └── Debug │ │ └── netcoreapp2.1 │ │ ├── SerilogDemo.Views.dll │ │ ├── SerilogDemo.Views.pdb │ │ ├── SerilogDemo.deps.json │ │ ├── SerilogDemo.dll │ │ ├── SerilogDemo.pdb │ │ ├── SerilogDemo.runtimeconfig.dev.json │ │ ├── SerilogDemo.runtimeconfig.json │ │ ├── SerilogLogging.Views.dll │ │ ├── SerilogLogging.Views.pdb │ │ ├── SerilogLogging.deps.json │ │ ├── SerilogLogging.dll │ │ ├── SerilogLogging.pdb │ │ ├── SerilogLogging.runtimeconfig.dev.json │ │ ├── SerilogLogging.runtimeconfig.json │ │ └── appsettings.json ├── bundleconfig.json ├── img │ ├── 1.png │ └── 2.png ├── obj │ ├── Debug │ │ └── netcoreapp2.1 │ │ │ ├── Razor │ │ │ └── Views │ │ │ │ ├── Home │ │ │ │ ├── About.g.cshtml.cs │ │ │ │ ├── Contact.g.cshtml.cs │ │ │ │ └── Index.g.cshtml.cs │ │ │ │ ├── Shared │ │ │ │ ├── Error.g.cshtml.cs │ │ │ │ ├── _Layout.g.cshtml.cs │ │ │ │ └── _ValidationScriptsPartial.g.cshtml.cs │ │ │ │ ├── _ViewImports.g.cshtml.cs │ │ │ │ └── _ViewStart.g.cshtml.cs │ │ │ ├── SerilogDemo.AssemblyInfo.cs │ │ │ ├── SerilogDemo.AssemblyInfoInputs.cache │ │ │ ├── SerilogDemo.RazorAssemblyInfo.cache │ │ │ ├── SerilogDemo.RazorAssemblyInfo.cs │ │ │ ├── SerilogDemo.RazorCoreGenerate.cache │ │ │ ├── SerilogDemo.RazorTargetAssemblyInfo.cache │ │ │ ├── SerilogDemo.RazorTargetAssemblyInfo.cs │ │ │ ├── SerilogDemo.TagHelpers.input.cache │ │ │ ├── SerilogDemo.TagHelpers.output.cache │ │ │ ├── SerilogDemo.Views.dll │ │ │ ├── SerilogDemo.Views.pdb │ │ │ ├── SerilogDemo.assets.cache │ │ │ ├── SerilogDemo.csproj.CopyComplete │ │ │ ├── SerilogDemo.csproj.CoreCompileInputs.cache │ │ │ ├── SerilogDemo.csproj.FileListAbsolute.txt │ │ │ ├── SerilogDemo.csprojAssemblyReference.cache │ │ │ ├── SerilogDemo.dll │ │ │ ├── SerilogDemo.pdb │ │ │ ├── SerilogLogging.AssemblyInfo.cs │ │ │ ├── SerilogLogging.AssemblyInfoInputs.cache │ │ │ ├── SerilogLogging.RazorAssemblyInfo.cache │ │ │ ├── SerilogLogging.RazorAssemblyInfo.cs │ │ │ ├── SerilogLogging.RazorCoreGenerate.cache │ │ │ ├── SerilogLogging.RazorTargetAssemblyInfo.cache │ │ │ ├── SerilogLogging.RazorTargetAssemblyInfo.cs │ │ │ ├── SerilogLogging.TagHelpers.input.cache │ │ │ ├── SerilogLogging.TagHelpers.output.cache │ │ │ ├── SerilogLogging.Views.dll │ │ │ ├── SerilogLogging.Views.pdb │ │ │ ├── SerilogLogging.assets.cache │ │ │ ├── SerilogLogging.csproj.CopyComplete │ │ │ ├── SerilogLogging.csproj.CoreCompileInputs.cache │ │ │ ├── SerilogLogging.csproj.FileListAbsolute.txt │ │ │ ├── SerilogLogging.csprojAssemblyReference.cache │ │ │ ├── SerilogLogging.dll │ │ │ └── SerilogLogging.pdb │ ├── SerilogDemo.csproj.nuget.cache │ ├── SerilogDemo.csproj.nuget.g.props │ ├── SerilogDemo.csproj.nuget.g.targets │ ├── SerilogLogging.csproj.nuget.cache │ ├── SerilogLogging.csproj.nuget.g.props │ ├── SerilogLogging.csproj.nuget.g.targets │ └── project.assets.json └── wwwroot │ ├── css │ ├── site.css │ └── site.min.css │ ├── favicon.ico │ ├── images │ ├── banner1.svg │ ├── banner2.svg │ ├── banner3.svg │ └── banner4.svg │ ├── js │ ├── site.js │ └── site.min.js │ └── lib │ ├── bootstrap │ ├── .bower.json │ ├── LICENSE │ └── dist │ │ ├── css │ │ ├── bootstrap-theme.min.css │ │ └── bootstrap.min.css │ │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ │ └── js │ │ ├── bootstrap.js │ │ ├── bootstrap.min.js │ │ └── npm.js │ ├── jquery-validation-unobtrusive │ ├── .bower.json │ ├── jquery.validate.unobtrusive.js │ └── jquery.validate.unobtrusive.min.js │ ├── jquery-validation │ ├── .bower.json │ ├── LICENSE.md │ └── dist │ │ ├── additional-methods.js │ │ ├── additional-methods.min.js │ │ ├── jquery.validate.js │ │ └── jquery.validate.min.js │ └── jquery │ ├── .bower.json │ ├── LICENSE.txt │ └── dist │ ├── jquery.min.js │ └── jquery.min.map ├── UnitTesting ├── Class1.cs ├── LICENSE ├── README.md ├── UnitTesting.csproj └── UnitTesting.sln ├── Vidly ├── README.md ├── Vidly.sln └── Vidly │ ├── App_Start │ ├── BundleConfig.cs │ ├── FilterConfig.cs │ ├── IdentityConfig.cs │ ├── RouteConfig.cs │ └── Startup.Auth.cs │ ├── Content │ ├── Site.css │ ├── bootstrap.css │ ├── bootstrap.min.css │ └── lumen-bootstrap.css │ ├── Controllers │ ├── AccountController.cs │ ├── CustomersController.cs │ ├── HomeController.cs │ ├── ManageController.cs │ └── MoviesController.cs │ ├── Global.asax │ ├── Global.asax.cs │ ├── Migrations │ ├── 201706230059363_initial model.Designer.cs │ ├── 201706230059363_initial model.cs │ ├── 201706230059363_initial model.resx │ ├── 201706230120196_Add IsSubscribed To Customer.Designer.cs │ ├── 201706230120196_Add IsSubscribed To Customer.cs │ ├── 201706230120196_Add IsSubscribed To Customer.resx │ ├── 201706230129142_Add MembershipType.Designer.cs │ ├── 201706230129142_Add MembershipType.cs │ ├── 201706230129142_Add MembershipType.resx │ ├── 201706230140068_PopulateMembeshipTypes.Designer.cs │ ├── 201706230140068_PopulateMembeshipTypes.cs │ ├── 201706230140068_PopulateMembeshipTypes.resx │ ├── 201706230159138_PopulateMembeshipTypes1.Designer.cs │ ├── 201706230159138_PopulateMembeshipTypes1.cs │ ├── 201706230159138_PopulateMembeshipTypes1.resx │ ├── 201706230200423_ApplyAnnotationsToCustomerName.Designer.cs │ ├── 201706230200423_ApplyAnnotationsToCustomerName.cs │ ├── 201706230200423_ApplyAnnotationsToCustomerName.resx │ └── Configuration.cs │ ├── Models │ ├── AccountViewModels.cs │ ├── Customer.cs │ ├── IdentityModels.cs │ ├── ManageViewModels.cs │ ├── MembershipType.cs │ └── Movie.cs │ ├── Project_Readme.html │ ├── Properties │ └── AssemblyInfo.cs │ ├── Scripts │ ├── _references.js │ ├── ai.0.22.9-build00167.js │ ├── ai.0.22.9-build00167.min.js │ ├── bootstrap.js │ ├── bootstrap.min.js │ ├── jquery-1.10.2-vsdoc.js │ ├── jquery-1.10.2.intellisense.js │ ├── jquery-1.10.2.js │ ├── jquery-1.10.2.min.js │ ├── jquery-1.10.2.min.map │ ├── jquery.validate-vsdoc.js │ ├── jquery.validate.js │ ├── jquery.validate.min.js │ ├── jquery.validate.unobtrusive.js │ ├── jquery.validate.unobtrusive.min.js │ ├── modernizr-2.6.2.js │ ├── respond.js │ └── respond.min.js │ ├── Startup.cs │ ├── Vidly.csproj │ ├── ViewModels │ └── RandomMovieViewModel.cs │ ├── Views │ ├── Account │ │ ├── ConfirmEmail.cshtml │ │ ├── ExternalLoginConfirmation.cshtml │ │ ├── ExternalLoginFailure.cshtml │ │ ├── ForgotPassword.cshtml │ │ ├── ForgotPasswordConfirmation.cshtml │ │ ├── Login.cshtml │ │ ├── Register.cshtml │ │ ├── ResetPassword.cshtml │ │ ├── ResetPasswordConfirmation.cshtml │ │ ├── SendCode.cshtml │ │ ├── VerifyCode.cshtml │ │ └── _ExternalLoginsListPartial.cshtml │ ├── Customers │ │ ├── Details.cshtml │ │ └── Index.cshtml │ ├── Home │ │ ├── About.cshtml │ │ ├── Contact.cshtml │ │ └── Index.cshtml │ ├── Manage │ │ ├── AddPhoneNumber.cshtml │ │ ├── ChangePassword.cshtml │ │ ├── Index.cshtml │ │ ├── ManageLogins.cshtml │ │ ├── SetPassword.cshtml │ │ └── VerifyPhoneNumber.cshtml │ ├── Movies │ │ ├── Details.cshtml │ │ ├── Index.cshtml │ │ └── Random.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ ├── Lockout.cshtml │ │ ├── _Layout.cshtml │ │ ├── _LoginPartial.cshtml │ │ └── _NavBar.cshtml │ ├── Web.config │ └── _ViewStart.cshtml │ ├── Web.Debug.config │ ├── Web.Release.config │ ├── Web.config │ ├── favicon.ico │ ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ └── glyphicons-halflings-regular.woff │ └── packages.config ├── WeatherMicroservice ├── .dockerignore ├── .gitignore ├── Dockerfile ├── Extensions.cs ├── LICENSE ├── Program.cs ├── Properties │ └── launchSettings.json ├── README.md ├── Startup.cs ├── WeatherMicroservice.csproj └── WeatherReport.cs ├── ocelot-api-gateway ├── Authentication │ ├── Authentication.csproj │ ├── Controllers │ │ ├── UserController.cs │ │ └── ValuesController.cs │ ├── Models │ │ └── User.cs │ ├── Program.cs │ ├── Startup.cs │ ├── appsettings.Development.json │ ├── appsettings.json │ └── wwwroot │ │ └── index.html ├── Catalog │ ├── Catalog.csproj │ ├── Controllers │ │ ├── ProductController.cs │ │ └── ValuesController.cs │ ├── Models │ │ └── Product.cs │ ├── Program.cs │ ├── Startup.cs │ ├── appsettings.Development.json │ ├── appsettings.json │ └── wwwroot │ │ └── index.html ├── Gateway │ ├── Controllers │ │ └── ValuesController.cs │ ├── Gateway.csproj │ ├── Program.cs │ ├── Startup.cs │ ├── appsettings.Development.json │ ├── appsettings.json │ └── ocelot.json ├── GatewayDemo.sln └── Ledger │ ├── Controllers │ ├── TransactionController.cs │ └── ValuesController.cs │ ├── Ledger.csproj │ ├── Models │ └── Transaction.cs │ ├── Program.cs │ ├── Startup.cs │ ├── appsettings.Development.json │ ├── appsettings.json │ └── wwwroot │ └── index.html └── onePage-CRUD ├── README.md ├── onePage-CRUD.sln └── src ├── Areas └── Identity │ └── Pages │ └── _ViewStart.cshtml ├── Controllers ├── HomeController.cs └── TodosController.cs ├── Data ├── ApplicationDbContext.cs └── Migrations │ ├── 00000000000000_CreateIdentitySchema.Designer.cs │ ├── 00000000000000_CreateIdentitySchema.cs │ ├── 20191022202032_AddTodoModel.Designer.cs │ ├── 20191022202032_AddTodoModel.cs │ └── ApplicationDbContextModelSnapshot.cs ├── Models ├── ErrorViewModel.cs └── Todo.cs ├── Program.cs ├── Properties └── launchSettings.json ├── Startup.cs ├── Views ├── Home │ ├── Index.cshtml │ └── Privacy.cshtml ├── Shared │ ├── Error.cshtml │ ├── _Layout.cshtml │ ├── _LoginPartial.cshtml │ └── _ValidationScriptsPartial.cshtml ├── Todos │ ├── Details.cshtml │ ├── Index.cshtml │ ├── _Create.cshtml │ ├── _Delete.cshtml │ └── _Edit.cshtml ├── _ViewImports.cshtml └── _ViewStart.cshtml ├── app.db ├── appsettings.Development.json ├── appsettings.json ├── onePage-CRUD.csproj └── wwwroot ├── css └── site.css ├── favicon.ico ├── js └── site.js └── lib ├── bootstrap ├── LICENSE └── dist │ ├── css │ ├── bootstrap-grid.css │ ├── bootstrap-grid.css.map │ ├── bootstrap-grid.min.css │ ├── bootstrap-grid.min.css.map │ ├── bootstrap-reboot.css │ ├── bootstrap-reboot.css.map │ ├── bootstrap-reboot.min.css │ ├── bootstrap-reboot.min.css.map │ ├── bootstrap.css │ ├── bootstrap.css.map │ ├── bootstrap.min.css │ └── bootstrap.min.css.map │ └── js │ ├── bootstrap.bundle.js │ ├── bootstrap.bundle.js.map │ ├── bootstrap.bundle.min.js │ ├── bootstrap.bundle.min.js.map │ ├── bootstrap.js │ ├── bootstrap.js.map │ ├── bootstrap.min.js │ └── bootstrap.min.js.map ├── jquery-validation-unobtrusive ├── LICENSE.txt ├── jquery.validate.unobtrusive.js └── jquery.validate.unobtrusive.min.js ├── jquery-validation ├── LICENSE.md └── dist │ ├── additional-methods.js │ ├── additional-methods.min.js │ ├── jquery.validate.js │ └── jquery.validate.min.js └── jquery ├── LICENSE.txt └── dist ├── jquery.js ├── jquery.min.js └── jquery.min.map /BankOnMicroservices/README.md: -------------------------------------------------------------------------------- 1 | ### Simple banking application 2 | 3 | - Microservices 4 | - ASP.NET Core 5 | - RabbitMQ 6 | - Swagger: Swashbuckle 7 | - MediatR 8 | - Clean Architecture 9 | - Entity Framework Core 10 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Bus/Bus.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Domain/Bus/IEventBus.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.Threading.Tasks; 5 | using Domain.Commands; 6 | using Domain.Events; 7 | 8 | namespace Domain.Bus 9 | { 10 | public interface IEventBus 11 | { 12 | Task SendCommand(TCommand command) where TCommand : Command; 13 | void Publish(TEvent @event) where TEvent : Event; 14 | void Subscribe() 15 | where TEvent : Event 16 | where THandler : IEventHandler; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Domain/Bus/IEventHandler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.Threading.Tasks; 5 | using Domain.Events; 6 | 7 | namespace Domain.Bus 8 | { 9 | public interface IEventHandler : IEventHandler 10 | where TEvent : Event 11 | { 12 | Task Handle(TEvent @event); 13 | } 14 | 15 | public interface IEventHandler { } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Domain/Commands/Command.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using Domain.Events; 5 | 6 | namespace Domain.Commands 7 | { 8 | public abstract class Command : Message 9 | { 10 | public DateTime TimeStamp { get; protected set; } 11 | 12 | protected Command() 13 | { 14 | this.TimeStamp = DateTime.Now; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Domain/Domain.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Domain/Events/Event.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Domain.Events 6 | { 7 | public abstract class Event 8 | { 9 | public DateTime TimeStamp { get; protected set; } 10 | 11 | protected Event() 12 | { 13 | TimeStamp = DateTime.Now; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Domain/Events/Message.cs: -------------------------------------------------------------------------------- 1 | using MediatR; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace Domain.Events 7 | { 8 | public abstract class Message : IRequest 9 | { 10 | public string MessageType { get; protected set; } 11 | protected Message() 12 | { 13 | MessageType = GetType().Name; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Banking/Banking.Api/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Banking/Banking.Api/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "BankingDbContext": "Server=(localdb)\\mssqllocaldb;Database=BankingDB;Trusted_Connection=True;MultipleActiveResultSets=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Banking/Banking.Application/Banking.Application.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Banking/Banking.Application/Interfaces/IAccountService.cs: -------------------------------------------------------------------------------- 1 | using Banking.Domain.Models; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using Banking.Application.Models; 7 | 8 | namespace Banking.Application.Interfaces 9 | { 10 | public interface IAccountService 11 | { 12 | Task> GetAccounts(); 13 | Task Transfer(AccountTransfer transfer); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Banking/Banking.Application/Models/AccountTransfer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Banking.Application.Models 6 | { 7 | public class AccountTransfer 8 | { 9 | public int FromAccount { get; set; } 10 | public int ToAccount { get; set; } 11 | public decimal Amount { get; set; } 12 | 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Banking/Domain/Banking.Domain.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Banking/Domain/Events/Transfer/TransferCreatedEvent.cs: -------------------------------------------------------------------------------- 1 | using Domain.Events; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace Banking.Domain.Events.Transfer 7 | { 8 | public class TransferCreatedEvent : Event 9 | { 10 | public int From { get; private set; } 11 | public int To { get; private set; } 12 | public decimal Amount { get; set; } 13 | 14 | public TransferCreatedEvent(int from, int to, decimal amount) 15 | { 16 | From = from; 17 | To = to; 18 | Amount = amount; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Banking/Domain/Interfaces/IAccountRepository.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.Threading.Tasks; 5 | using Banking.Domain.Models; 6 | 7 | namespace Banking.Domain.Interfaces 8 | { 9 | public interface IAccountRepository 10 | { 11 | Task> GetAll(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Banking/Domain/Models/Account.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Banking.Domain.Models 6 | { 7 | public class Account 8 | { 9 | public int Id { get; set; } 10 | public string AccountType { get; set; } 11 | public decimal Balance { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Banking/Infrastructure/Data/BankingDbContext.cs: -------------------------------------------------------------------------------- 1 | using Banking.Domain.Models; 2 | using Microsoft.EntityFrameworkCore; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | 7 | namespace Banking.Infrastructure.Data 8 | { 9 | public class BankingDbContext : DbContext 10 | { 11 | public BankingDbContext(DbContextOptions options) 12 | : base(options) 13 | { 14 | 15 | } 16 | 17 | public DbSet Accounts { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Transfer/Api/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Transfer/Api/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "TransferDbContext": "Server=(localdb)\\mssqllocaldb;Database=TransferDB;Trusted_Connection=True;MultipleActiveResultSets=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Transfer/Application/Interfaces/ITransferService.cs: -------------------------------------------------------------------------------- 1 | using Transfer.Domain.Models; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace Transfer.Application.Interfaces 7 | { 8 | public interface ITransferService 9 | { 10 | IEnumerable GetTransferLogs(); 11 | 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Transfer/Application/Transfer.Application.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Transfer/Domain/Events/Transfer/TransferCreatedEvent.cs: -------------------------------------------------------------------------------- 1 | using Domain.Events; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace Transfer.Domain.Events.Transfer 7 | { 8 | public class TransferCreatedEvent : Event 9 | { 10 | public int From { get; private set; } 11 | public int To { get; private set; } 12 | public decimal Amount { get; set; } 13 | 14 | public TransferCreatedEvent(int from, int to, decimal amount) 15 | { 16 | From = from; 17 | To = to; 18 | Amount = amount; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Transfer/Domain/Interfaces/ITransferRepository.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using Transfer.Domain.Models; 5 | 6 | namespace Transfer.Domain.Interfaces 7 | { 8 | public interface ITransferRepository 9 | { 10 | void Add(TransferLog transfer); 11 | IEnumerable GetAll(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Transfer/Domain/Models/TransferLog.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Transfer.Domain.Models 6 | { 7 | public class TransferLog 8 | { 9 | public int Id { get; set; } 10 | public int FromAccount { get; set; } 11 | public int ToAccount { get; set; } 12 | public decimal TransferAmount { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Transfer/Domain/Transfer.Domain.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/Services/Transfer/Infrastructure/Data/TransferDbContext.cs: -------------------------------------------------------------------------------- 1 | using Transfer.Domain.Models; 2 | using Microsoft.EntityFrameworkCore; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | 7 | namespace Transfer.Infrastructure.Data 8 | { 9 | public class TransferDbContext : DbContext 10 | { 11 | public TransferDbContext(DbContextOptions options) 12 | : base(options) 13 | { 14 | 15 | } 16 | 17 | public DbSet TransferLogs { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/WebApp/Models/DTO/TransferDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApp.Models.DTO 7 | { 8 | public class TransferDto 9 | { 10 | public int FromAccount { get; set; } 11 | public int ToAccount { get; set; } 12 | public decimal Amount { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/WebApp/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace WebApp.Models 4 | { 5 | public class ErrorViewModel 6 | { 7 | public string RequestId { get; set; } 8 | 9 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/WebApp/Models/TransferViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApp.Models 2 | { 3 | public class TransferViewModel 4 | { 5 | public string TransferNotes { get; set; } 6 | public int FromAccount { get; set; } 7 | public int ToAccount { get; set; } 8 | public decimal TransferAmount { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/WebApp/Services/ITransferService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using WebApp.Models.DTO; 6 | 7 | namespace WebApp.Services 8 | { 9 | public interface ITransferService 10 | { 11 | Task Transfer(TransferDto transferDto); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/WebApp/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 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/WebApp/Views/Shared/_ValidationScriptsPartial.cshtml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/WebApp/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using WebApp 2 | @using WebApp.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/WebApp/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/WebApp/WebApp.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/WebApp/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/WebApp/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/WebApp/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/BankOnMicroservices/src/WebApp/wwwroot/favicon.ico -------------------------------------------------------------------------------- /BankOnMicroservices/src/WebApp/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 | -------------------------------------------------------------------------------- /BankOnMicroservices/src/WebApp/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) .NET Foundation. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 4 | these files except in compliance with the License. You may obtain a copy of the 5 | License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software distributed 10 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 11 | CONDITIONS OF ANY KIND, either express or implied. See the License for the 12 | specific language governing permissions and limitations under the License. 13 | -------------------------------------------------------------------------------- /ChatApp/ChatApp.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ChatApp/ChatApp.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | false 5 | 6 | -------------------------------------------------------------------------------- /ChatApp/ChatHub.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.SignalR; 2 | using System.Threading.Tasks; 3 | namespace ChatApp 4 | { 5 | public class ChatHub : Hub 6 | { 7 | public async Task SendMessage(string user, string message) 8 | { 9 | await Clients.All.SendAsync("ReceiveMessage", user, message); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ChatApp/Pages/About.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @model AboutModel 3 | @{ 4 | ViewData["Title"] = "About"; 5 | } 6 |

@ViewData["Title"]

7 |

@Model.Message

8 | 9 |

Use this area to provide additional information.

10 | -------------------------------------------------------------------------------- /ChatApp/Pages/About.cshtml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc.RazorPages; 6 | 7 | namespace ChatApp.Pages 8 | { 9 | public class AboutModel : PageModel 10 | { 11 | public string Message { get; set; } 12 | 13 | public void OnGet() 14 | { 15 | Message = "Your application description page."; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ChatApp/Pages/Contact.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @model ContactModel 3 | @{ 4 | ViewData["Title"] = "Contact"; 5 | } 6 |

@ViewData["Title"]

7 |

@Model.Message

8 | 9 |
10 | One Microsoft Way
11 | Redmond, WA 98052-6399
12 | P: 13 | 425.555.0100 14 |
15 | 16 |
17 | Support: Support@example.com
18 | Marketing: Marketing@example.com 19 |
20 | -------------------------------------------------------------------------------- /ChatApp/Pages/Contact.cshtml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc.RazorPages; 6 | 7 | namespace ChatApp.Pages 8 | { 9 | public class ContactModel : PageModel 10 | { 11 | public string Message { get; set; } 12 | 13 | public void OnGet() 14 | { 15 | Message = "Your contact page."; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ChatApp/Pages/Index.cshtml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc; 6 | using Microsoft.AspNetCore.Mvc.RazorPages; 7 | 8 | namespace ChatApp.Pages 9 | { 10 | public class IndexModel : PageModel 11 | { 12 | public void OnGet() 13 | { 14 | 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ChatApp/Pages/Privacy.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @model PrivacyModel 3 | @{ 4 | ViewData["Title"] = "Privacy Policy"; 5 | } 6 |

@ViewData["Title"]

7 | 8 |

Use this page to detail your site's privacy policy.

-------------------------------------------------------------------------------- /ChatApp/Pages/Privacy.cshtml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc; 6 | using Microsoft.AspNetCore.Mvc.RazorPages; 7 | 8 | namespace ChatApp.Pages 9 | { 10 | public class PrivacyModel : PageModel 11 | { 12 | public void OnGet() 13 | { 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /ChatApp/Pages/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using ChatApp 2 | @namespace ChatApp.Pages 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /ChatApp/Pages/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /ChatApp/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore; 7 | using Microsoft.AspNetCore.Hosting; 8 | using Microsoft.Extensions.Configuration; 9 | using Microsoft.Extensions.Logging; 10 | 11 | namespace ChatApp 12 | { 13 | public class Program 14 | { 15 | public static void Main(string[] args) 16 | { 17 | CreateWebHostBuilder(args).Build().Run(); 18 | } 19 | 20 | public static IWebHostBuilder CreateWebHostBuilder(string[] args) => 21 | WebHost.CreateDefaultBuilder(args) 22 | .UseStartup(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ChatApp/README.md: -------------------------------------------------------------------------------- 1 | # ChatApp 2 | A simple chat app that uses ASP.NET Core in backend and SignalR to receive and send messages to a hub in real time 3 | 4 | ## Goal achieved 5 | * Create a web app that uses SignalR on ASP.NET Core. 6 | * Create a SignalR hub on the server. 7 | * Connect to the SignalR hub from JavaScript clients. 8 | * Use the hub to send messages from any client to all connected clients. 9 | 10 | ## Screenshot 11 | ![SignalR chat app net core](https://user-images.githubusercontent.com/24621701/43983174-12aa1902-9cf1-11e8-8ad4-80edc41e6621.png) 12 | -------------------------------------------------------------------------------- /ChatApp/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ChatApp/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "AllowedHosts": "*" 8 | } 9 | -------------------------------------------------------------------------------- /ChatApp/web.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ChatApp/wwwroot/css/site.min.css: -------------------------------------------------------------------------------- 1 | body{padding-top:50px;padding-bottom:20px}.body-content{padding-left:15px;padding-right:15px}.carousel-caption p{font-size:20px;line-height:1.4}.carousel-inner .item img[src$=".svg"]{width:100%}#qrCode{margin:15px}@media screen and (max-width:767px){.carousel-caption{display:none}} -------------------------------------------------------------------------------- /ChatApp/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/ChatApp/wwwroot/favicon.ico -------------------------------------------------------------------------------- /ChatApp/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 | -------------------------------------------------------------------------------- /ChatApp/wwwroot/js/site.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/ChatApp/wwwroot/js/site.min.js -------------------------------------------------------------------------------- /ChatApp/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/ChatApp/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /ChatApp/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/ChatApp/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /ChatApp/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/ChatApp/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /ChatApp/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/ChatApp/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /ChatApp/wwwroot/lib/bootstrap/dist/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /ChatApp/wwwroot/lib/jquery-validation-unobtrusive/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery-validation-unobtrusive", 3 | "homepage": "https://github.com/aspnet/jquery-validation-unobtrusive", 4 | "version": "3.2.9", 5 | "_release": "3.2.9", 6 | "_resolution": { 7 | "type": "version", 8 | "tag": "v3.2.9", 9 | "commit": "a91f5401898e125f10771c5f5f0909d8c4c82396" 10 | }, 11 | "_source": "https://github.com/aspnet/jquery-validation-unobtrusive.git", 12 | "_target": "^3.2.9", 13 | "_originalSource": "jquery-validation-unobtrusive", 14 | "_direct": true 15 | } -------------------------------------------------------------------------------- /ChatApp/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) .NET Foundation. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 4 | these files except in compliance with the License. You may obtain a copy of the 5 | License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software distributed 10 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 11 | CONDITIONS OF ANY KIND, either express or implied. See the License for the 12 | specific language governing permissions and limitations under the License. 13 | -------------------------------------------------------------------------------- /ChatApp/wwwroot/lib/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ], 14 | "homepage": "https://github.com/jquery/jquery-dist", 15 | "version": "3.3.1", 16 | "_release": "3.3.1", 17 | "_resolution": { 18 | "type": "version", 19 | "tag": "3.3.1", 20 | "commit": "9e8ec3d10fad04748176144f108d7355662ae75e" 21 | }, 22 | "_source": "https://github.com/jquery/jquery-dist.git", 23 | "_target": "^3.3.1", 24 | "_originalSource": "jquery", 25 | "_direct": true 26 | } -------------------------------------------------------------------------------- /CleanLibrary/Library.Api/Library.Api.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /CleanLibrary/Library.Api/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /CleanLibrary/Library.Api/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "AllowedHosts": "*" 8 | } 9 | -------------------------------------------------------------------------------- /CleanLibrary/Library.Domain/Entities/Autor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Library.Domain.Entities 6 | { 7 | public class Autor : Base 8 | { 9 | public string Nome { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /CleanLibrary/Library.Domain/Entities/Base.cs: -------------------------------------------------------------------------------- 1 | using FluentValidation; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace Library.Domain.Entities 7 | { 8 | public abstract class Base 9 | { 10 | public virtual int Id { get; set; } 11 | public virtual DateTime DataCadastro { get; set; } 12 | public virtual bool Status { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /CleanLibrary/Library.Domain/Entities/Editor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Library.Domain.Entities 6 | { 7 | public class Editor : Base 8 | { 9 | public string Nome { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /CleanLibrary/Library.Domain/Interfaces/IRepositoryBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using Library.Domain.Entities; 5 | 6 | namespace Library.Domain.Interfaces 7 | { 8 | public interface IRepositoryBase where T : Base 9 | { 10 | void Insert(T obj); 11 | void Update(T obj); 12 | void Delete(int id); 13 | T GetById(int id); 14 | IList GetAll(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /CleanLibrary/Library.Domain/Interfaces/IServiceBase.cs: -------------------------------------------------------------------------------- 1 | using FluentValidation; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | using Library.Domain.Entities; 6 | 7 | namespace Library.Domain.Interfaces 8 | { 9 | public interface IServiceBase where T : Base 10 | { 11 | T Post(T obj) where V : AbstractValidator; 12 | T Put(T obj) where V : AbstractValidator; 13 | void Delete(int id); 14 | T GetById(int id); 15 | IList GetAll(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /CleanLibrary/Library.Domain/Library.Domain.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /CleanLibrary/Library.Infra.DI/Library.Infra.DI.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /CleanLibrary/Library.Infra.Data/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "AllowedHosts": "*", 8 | "ConnectionStrings": { 9 | "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=LivrariaDb;Trusted_Connection=True;MultipleActiveResultSets=true" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /CleanLibrary/Library.Service/Library.Service.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /CleanLibrary/README.md: -------------------------------------------------------------------------------- 1 | # CleanLibrary 2 | A simple library management project with Clean Architecture and Domain Driven Developement ( DDD ) 3 | -------------------------------------------------------------------------------- /CleanLibrary/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "requires": true, 3 | "lockfileVersion": 1, 4 | "dependencies": { 5 | "bootstrap": { 6 | "version": "4.1.3", 7 | "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.1.3.tgz", 8 | "integrity": "sha512-rDFIzgXcof0jDyjNosjv4Sno77X4KuPeFxG2XZZv1/Kc8DRVGVADdoQyyOVDwPqL36DDmtCQbrpMCqvpPLJQ0w==" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /DomainEventManagement/Application/Application.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /DomainEventManagement/Application/EventHandlers/PatientCreatedHandler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Common; 3 | using Common.Interfaces; 4 | using Domain.Events; 5 | 6 | namespace Application.EventHandlers 7 | { 8 | public class PatientCreatedHandler : IEventHandling 9 | { 10 | public void Handler(PatientCreated args) 11 | { 12 | Console.WriteLine("=> Patient created event handled"); 13 | Console.WriteLine($"Sending email to {args.Patient.Name}"); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /DomainEventManagement/Application/ResolverDependencies.cs: -------------------------------------------------------------------------------- 1 | using Application.EventHandlers; 2 | using Application.Helpers; 3 | using Common; 4 | using Common.Interfaces; 5 | using Domain.Events; 6 | using Microsoft.Extensions.DependencyInjection; 7 | 8 | namespace Application 9 | { 10 | public class ResolverDependencies 11 | { 12 | public static void Resolve() 13 | { 14 | var serviceCollection = new ServiceCollection(); 15 | serviceCollection.AddTransient, PatientCreatedHandler>(); 16 | DomainEvents.Container = new DomainEventsContainer(serviceCollection.BuildServiceProvider()); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /DomainEventManagement/ConsoleApp/ConsoleApp.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /DomainEventManagement/ConsoleApp/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Application; 3 | using Application.Helpers; 4 | using Common; 5 | using Domain.Entities; 6 | 7 | namespace ConsoleApp 8 | { 9 | public class Program 10 | { 11 | public static void Main() 12 | { 13 | ResolverDependencies.Resolve(); 14 | var user = new Patient("amine smahi", "amine@gmai.com"); 15 | Console.ReadKey(); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /DomainEventManagement/Domain/Domain.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /DomainEventManagement/Domain/Entities/Patient.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Common; 3 | using Domain.Events; 4 | 5 | namespace Domain.Entities 6 | { 7 | public class Patient 8 | { 9 | public Patient(string name, string email) 10 | { 11 | Id = new Guid(); 12 | Name = name; 13 | Email = email; 14 | Console.WriteLine($"Attempting to create the patient {Name} with email {Email}"); 15 | DomainEvents.Raise(new PatientCreated(this)); 16 | } 17 | 18 | public Guid Id { get; set; } 19 | public string Name { get; } 20 | public string Email { get; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /DomainEventManagement/Domain/Events/PatientCreated.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Common; 3 | using Common.Interfaces; 4 | using Domain.Entities; 5 | 6 | namespace Domain.Events 7 | { 8 | public readonly struct PatientCreated : IDomainEvent 9 | { 10 | public DateTime DateOccurred { get; } 11 | 12 | public readonly Patient Patient; 13 | 14 | public PatientCreated(Patient patient) 15 | { 16 | Patient = patient; 17 | DateOccurred = DateTime.Now; 18 | 19 | Console.WriteLine("=> Patient created event raised"); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /DomainEventManagement/Infrastructure/Infrastructure.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | Common 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /DomainEventManagement/Infrastructure/Interfaces/IContainer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Common.Interfaces 5 | { 6 | public interface IContainer 7 | { 8 | object GetService(Type serviceType); 9 | IEnumerable GetServices(Type serviceType); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /DomainEventManagement/Infrastructure/Interfaces/IDomainEvent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Common.Interfaces 4 | { 5 | public interface IDomainEvent 6 | { 7 | DateTime DateOccurred { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /DomainEventManagement/Infrastructure/Interfaces/IEventHandling.cs: -------------------------------------------------------------------------------- 1 | namespace Common.Interfaces 2 | { 3 | public interface IEventHandling where T : IDomainEvent 4 | { 5 | void Handler(T args); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /DomainEventManagement/global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "version": "3.1.403" 4 | } 5 | } -------------------------------------------------------------------------------- /ElasticCore/ElasticCore.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /ElasticCore/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ElasticCore/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "System": "Error", 6 | "Microsoft": "Warning" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /EmployeeManagement-ddd-cqrs/EmployeeManagement.Application/Employees/Queries/GetAllEmployees/GetAllEmployeesQuery.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using EmployeeManagement.Domain.Entities; 5 | using MediatR; 6 | 7 | namespace EmployeeManagement.Application.Employees.Queries.GetAllEmployees 8 | { 9 | public class GetAllEmployeesQuery : IRequest> 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /EmployeeManagement-ddd-cqrs/EmployeeManagement.Application/Interfaces/IEmployeeService.cs: -------------------------------------------------------------------------------- 1 | using EmployeeManagement.Domain.Entities; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace EmployeeManagement.Services.Interfaces 7 | { 8 | public interface IEmployeeService : IDisposable 9 | { 10 | void Insert(Employee employee); 11 | IList GetAll(); 12 | Employee GetById(int id); 13 | void Update(Employee employee); 14 | void Delete(int id); 15 | void RaiseLevel(Employee employee); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /EmployeeManagement-ddd-cqrs/EmployeeManagement.Domain/EmployeeManagement.Domain.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp2.2 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /EmployeeManagement-ddd-cqrs/EmployeeManagement.Domain/Interfaces/Employee/IEmployeeRepository.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using EmployeeManagement.Domain.Entities; 3 | 4 | namespace EmployeeManagement.Domain.Interfaces 5 | { 6 | public interface IEmployeeRepository : IRepository 7 | { 8 | void RaiseLevel(Employee employee); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /EmployeeManagement-ddd-cqrs/EmployeeManagement.Domain/Interfaces/IRepository.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using EmployeeManagement.Domain.Entities; 4 | 5 | namespace EmployeeManagement.Domain.Interfaces 6 | { 7 | public interface IRepository : IDisposable where T : class 8 | { 9 | void Insert(T obj); 10 | void Update(T obj); 11 | void Delete(int id); 12 | T GetById(int id); 13 | IList GetAll(); 14 | void SaveChanges(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /EmployeeManagement-ddd-cqrs/EmployeeManagement.Presentation/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using System.Diagnostics; 2 | using EmployeeManagement.Presentation.Models; 3 | using Microsoft.AspNetCore.Mvc; 4 | 5 | namespace EmployeeManagement.Presentation.Controllers 6 | { 7 | public class HomeController : Controller 8 | { 9 | public IActionResult Index() 10 | { 11 | return View(); 12 | } 13 | 14 | 15 | public IActionResult Error() 16 | { 17 | return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /EmployeeManagement-ddd-cqrs/EmployeeManagement.Presentation/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace EmployeeManagement.Presentation.Models 2 | { 3 | public class ErrorViewModel 4 | { 5 | public string RequestId { get; set; } 6 | 7 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 8 | } 9 | } -------------------------------------------------------------------------------- /EmployeeManagement-ddd-cqrs/EmployeeManagement.Presentation/Program.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore; 2 | using Microsoft.AspNetCore.Hosting; 3 | 4 | namespace EmployeeManagement.Presentation 5 | { 6 | public class Program 7 | { 8 | public static void Main(string[] args) 9 | { 10 | BuildWebHost(args).Run(); 11 | } 12 | 13 | public static IWebHost BuildWebHost(string[] args) => 14 | WebHost.CreateDefaultBuilder(args) 15 | .UseStartup() 16 | .Build(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /EmployeeManagement-ddd-cqrs/EmployeeManagement.Presentation/Views/Home/About.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "About"; 3 | } 4 |

@ViewData["Title"]

5 |

@ViewData["Message"]

6 | 7 |
8 | E-mail: renansouto.lucena@gmail.com
9 | LinkeIn: LinkedIn 10 | GitHub: GitHub Renan =) 11 |
12 | -------------------------------------------------------------------------------- /EmployeeManagement-ddd-cqrs/EmployeeManagement.Presentation/Views/Home/Contact.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Contact"; 3 | } 4 |

@ViewData["Title"]

5 |

@ViewData["Message"]

6 | 7 |
8 | One Microsoft Way
9 | Redmond, WA 98052-6399
10 | P: 11 | 425.555.0100 12 |
13 | 14 |
15 | Support: Support@example.com
16 | Marketing: Marketing@example.com 17 |
18 | -------------------------------------------------------------------------------- /EmployeeManagement-ddd-cqrs/EmployeeManagement.Presentation/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 2 | -------------------------------------------------------------------------------- /EmployeeManagement-ddd-cqrs/EmployeeManagement.Presentation/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /EmployeeManagement-ddd-cqrs/EmployeeManagement.Presentation/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /EmployeeManagement-ddd-cqrs/EmployeeManagement.Presentation/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Warning" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /EmployeeManagement-ddd-cqrs/EmployeeManagement.Presentation/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement-ddd-cqrs/EmployeeManagement.Presentation/wwwroot/favicon.ico -------------------------------------------------------------------------------- /EmployeeManagement-ddd-cqrs/EmployeeManagement.Presentation/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 | -------------------------------------------------------------------------------- /EmployeeManagement-ddd-cqrs/README.md: -------------------------------------------------------------------------------- 1 | ## Employee-Management-DDD 2 | A simple employee management project built on top of 3 | * Clean architecture 4 | * Domain Driven Design ( DDD ) 5 | * Command Query Responsibility Segregation ( CQRS ) 6 | * Repository Pattern 7 | * Model View Controller architectural pattern ( MVC ) 8 | * Awesomeness of .NET Core :D 9 | 10 | ## Tachnologies used 11 | * .NET Core 12 | * Entity Framework Core 13 | * InMemory DB 14 | * Docker 15 | * Fluent Validation 16 | * MediatR 17 | 18 | ### Todo 19 | * [ ] Add update command and handler 20 | * [ ] Add Team entity 21 | * [ ] Add Team queries and services 22 | * [ ] Add better UI 23 | * [ ] Add Authentification 24 | -------------------------------------------------------------------------------- /EmployeeManagement/Areas/Identity/Pages/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "/Views/Shared/_Layout.cshtml"; 3 | } 4 | -------------------------------------------------------------------------------- /EmployeeManagement/Data/ApplicationDbContext.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using Microsoft.AspNetCore.Identity.EntityFrameworkCore; 5 | using Microsoft.EntityFrameworkCore; 6 | 7 | namespace EmployeeManagement.Data { 8 | public class ApplicationDbContext : IdentityDbContext { 9 | public ApplicationDbContext (DbContextOptions options) : base (options) { } 10 | public DbSet Employee { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /EmployeeManagement/Models/Employees.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel.DataAnnotations; 3 | 4 | namespace EmployeeManagement.Models { 5 | public class Employees { 6 | public int Id { get; set; } 7 | 8 | [Required] 9 | public string Name { get; set; } 10 | 11 | [Required] 12 | public string City { get; set; } 13 | 14 | [Required] 15 | public string Department { get; set; } 16 | 17 | [Required] 18 | public int Salary { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /EmployeeManagement/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace EmployeeManagement.Models 4 | { 5 | public class ErrorViewModel 6 | { 7 | public string RequestId { get; set; } 8 | 9 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 10 | } 11 | } -------------------------------------------------------------------------------- /EmployeeManagement/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore; 7 | using Microsoft.AspNetCore.Hosting; 8 | using Microsoft.Extensions.Configuration; 9 | using Microsoft.Extensions.Logging; 10 | 11 | namespace EmployeeManagement { 12 | public class Program { 13 | public static void Main (string[] args) { 14 | CreateWebHostBuilder (args).Build ().Run (); 15 | } 16 | 17 | public static IWebHostBuilder CreateWebHostBuilder (string[] args) => 18 | WebHost.CreateDefaultBuilder (args) 19 | .UseStartup (); 20 | } 21 | } -------------------------------------------------------------------------------- /EmployeeManagement/Views/Home/About.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "About Page"; 3 | } 4 |

About Page

5 |

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum

-------------------------------------------------------------------------------- /EmployeeManagement/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Home Page"; 3 | } 4 | 5 |
6 |

Welcome

7 |

Learn about building Web apps with ASP.NET Core.

8 |
9 | -------------------------------------------------------------------------------- /EmployeeManagement/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 | -------------------------------------------------------------------------------- /EmployeeManagement/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using EmployeeManagement 2 | @using EmployeeManagement.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /EmployeeManagement/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /EmployeeManagement/app.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/app.db -------------------------------------------------------------------------------- /EmployeeManagement/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /EmployeeManagement/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "DefaultConnection": "DataSource=app.db" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | ba2d08f330dc5c22df803b8f9ca41df9bcbd63f5 2 | -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.RazorAssemblyInfo.cache: -------------------------------------------------------------------------------- 1 | e4d226c1a20047349298f308909bff5789ceb3cd 2 | -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.RazorCoreGenerate.cache: -------------------------------------------------------------------------------- 1 | dca2b7ac1e0bcbd36823c8e53a034789ef29464d 2 | -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.RazorTargetAssemblyInfo.cache: -------------------------------------------------------------------------------- 1 | 524fdfdc597975ba9f4c021d3478efaf1f29a239 2 | -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.TagHelpers.input.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.TagHelpers.input.cache -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.Views.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.Views.dll -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.Views.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.Views.pdb -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.assets.cache -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.csproj.CopyComplete: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.csproj.CopyComplete -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 7e49e7f344c871b4134e26e0698d9a0b6a46d10a 2 | -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.dll -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/obj/Debug/netcoreapp2.2/EmployeeManagement.pdb -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/UserSecretsAssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // Generated by the MSBuild WriteCodeFragment class. 4 | // 5 | //------------------------------------------------------------------------------ 6 | 7 | using System; 8 | using System.Reflection; 9 | 10 | [assembly: Microsoft.Extensions.Configuration.UserSecrets.UserSecretsIdAttribute("aspnet-mvcauth-31FB20E8-F2B9-4AB8-99E9-C21358CC7735")] 11 | -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | acc88ff38c6f3852b9265ee629906a7f56efc5aa 2 | -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.RazorAssemblyInfo.cache: -------------------------------------------------------------------------------- 1 | aaed2b6943ba23c24f9a0f49c88e81f39bae03bf 2 | -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.RazorCoreGenerate.cache: -------------------------------------------------------------------------------- 1 | dca2b7ac1e0bcbd36823c8e53a034789ef29464d 2 | -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.RazorTargetAssemblyInfo.cache: -------------------------------------------------------------------------------- 1 | dad815f119eee6dc9227df91ff0a7fa110745310 2 | -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.TagHelpers.input.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.TagHelpers.input.cache -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.Views.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.Views.dll -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.Views.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.Views.pdb -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.assets.cache -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.csproj.CopyComplete: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.csproj.CopyComplete -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 7e49e7f344c871b4134e26e0698d9a0b6a46d10a 2 | -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.dll -------------------------------------------------------------------------------- /EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/obj/Debug/netcoreapp2.2/mvcauth.pdb -------------------------------------------------------------------------------- /EmployeeManagement/obj/EmployeeManagement.csproj.nuget.cache: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "dgSpecHash": "RuLAtX9kNDTUVTcW61SjmdOycdlFk+eT2deTMmA93Iq2J6TUhwXwocBwjpacmi33k/80LYfBj/9oXcCI+60JwA==", 4 | "success": true 5 | } -------------------------------------------------------------------------------- /EmployeeManagement/obj/mvcauth.csproj.nuget.cache: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "dgSpecHash": "6h5YAh3hvGNU+/MaTCbWZ6GvWiFfkRI6TYFRKxF/0CPzZx7Peim9ftcaqlWd2PAB0p/11LC4HQ56dKYByENFFA==", 4 | "success": true 5 | } -------------------------------------------------------------------------------- /EmployeeManagement/wwwroot/css/site.min.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/wwwroot/css/site.min.css -------------------------------------------------------------------------------- /EmployeeManagement/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/wwwroot/favicon.ico -------------------------------------------------------------------------------- /EmployeeManagement/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 | -------------------------------------------------------------------------------- /EmployeeManagement/wwwroot/js/site.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/EmployeeManagement/wwwroot/js/site.min.js -------------------------------------------------------------------------------- /EmployeeManagement/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) .NET Foundation. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 4 | these files except in compliance with the License. You may obtain a copy of the 5 | License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software distributed 10 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 11 | CONDITIONS OF ANY KIND, either express or implied. See the License for the 12 | specific language governing permissions and limitations under the License. 13 | -------------------------------------------------------------------------------- /EmployeeManagement/wwwroot/lib/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ], 14 | "homepage": "https://github.com/jquery/jquery-dist", 15 | "version": "3.3.1", 16 | "_release": "3.3.1", 17 | "_resolution": { 18 | "type": "version", 19 | "tag": "3.3.1", 20 | "commit": "9e8ec3d10fad04748176144f108d7355662ae75e" 21 | }, 22 | "_source": "https://github.com/jquery/jquery-dist.git", 23 | "_target": "^3.3.1", 24 | "_originalSource": "jquery", 25 | "_direct": true 26 | } -------------------------------------------------------------------------------- /GlobalizationApi/GlobalApi/GlobalApi.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /GlobalizationApi/GlobalApi/GlobalApi.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | ProjectDebugger 5 | 6 | 7 | GlobalApi 8 | 9 | -------------------------------------------------------------------------------- /GlobalizationApi/GlobalApi/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /HelloBox/Areas/Identity/Pages/Account/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using HelloBox.Areas.Identity.Pages.Account -------------------------------------------------------------------------------- /HelloBox/Areas/Identity/Pages/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Identity 2 | @using HelloBox.Areas.Identity 3 | @using Microsoft.AspNetCore.Identity 4 | @namespace HelloBox.Areas.Identity.Pages 5 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 6 | -------------------------------------------------------------------------------- /HelloBox/Areas/Identity/Pages/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "/Views/Shared/_Layout.cshtml"; 3 | } 4 | -------------------------------------------------------------------------------- /HelloBox/Data/ApplicationDbContext.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using Microsoft.AspNetCore.Identity.EntityFrameworkCore; 5 | using Microsoft.EntityFrameworkCore; 6 | using HelloBox.Models; 7 | 8 | namespace HelloBox.Data 9 | { 10 | public class ApplicationDbContext : IdentityDbContext 11 | { 12 | public ApplicationDbContext(DbContextOptions options) 13 | : base(options) 14 | { 15 | } 16 | 17 | public DbSet PortfolioItems { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /HelloBox/Models/Category.cs: -------------------------------------------------------------------------------- 1 | namespace HelloBox.Models 2 | { 3 | public class Category 4 | { 5 | public enum Categories 6 | { 7 | Web = 1, 8 | Desktop = 2, 9 | Mobile = 3, 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /HelloBox/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace HelloBox.Models 4 | { 5 | public class ErrorViewModel 6 | { 7 | public string RequestId { get; set; } 8 | 9 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 10 | } 11 | } -------------------------------------------------------------------------------- /HelloBox/Models/PortfolioItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace HelloBox.Models 4 | { 5 | public class PortfolioItem 6 | { 7 | public int Id { get; set; } 8 | public string Title { get; set; } 9 | public string Description { get; set; } 10 | public Category.Categories Category { get; set; } 11 | public string DatePublished { get; set; } 12 | public string PicturePath { get; set; } 13 | public string Content { get; set; } 14 | } 15 | } -------------------------------------------------------------------------------- /HelloBox/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore; 7 | using Microsoft.AspNetCore.Hosting; 8 | using Microsoft.Extensions.Configuration; 9 | using Microsoft.Extensions.Logging; 10 | 11 | namespace HelloBox 12 | { 13 | public class Program 14 | { 15 | public static void Main(string[] args) 16 | { 17 | CreateWebHostBuilder(args).Build().Run(); 18 | } 19 | 20 | public static IWebHostBuilder CreateWebHostBuilder(string[] args) => 21 | WebHost.CreateDefaultBuilder(args) 22 | .UseStartup(); 23 | } 24 | } -------------------------------------------------------------------------------- /HelloBox/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 | -------------------------------------------------------------------------------- /HelloBox/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using HelloBox 2 | @using HelloBox.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | @using Microsoft.AspNetCore.Http; 5 | @using Microsoft.AspNetCore.Hosting; -------------------------------------------------------------------------------- /HelloBox/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /HelloBox/app.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/app.db -------------------------------------------------------------------------------- /HelloBox/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /HelloBox/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "DefaultConnection": "DataSource=app.db" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } -------------------------------------------------------------------------------- /HelloBox/wwwroot/admin.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Title 6 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /HelloBox/wwwroot/img/about/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/img/about/1.jpg -------------------------------------------------------------------------------- /HelloBox/wwwroot/img/about/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/img/about/2.jpg -------------------------------------------------------------------------------- /HelloBox/wwwroot/img/about/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/img/about/3.jpg -------------------------------------------------------------------------------- /HelloBox/wwwroot/img/about/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/img/about/4.jpg -------------------------------------------------------------------------------- /HelloBox/wwwroot/img/header-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/img/header-bg.jpg -------------------------------------------------------------------------------- /HelloBox/wwwroot/img/logo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/img/logo1.png -------------------------------------------------------------------------------- /HelloBox/wwwroot/img/logos/creative-market.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/img/logos/creative-market.jpg -------------------------------------------------------------------------------- /HelloBox/wwwroot/img/logos/designmodo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/img/logos/designmodo.jpg -------------------------------------------------------------------------------- /HelloBox/wwwroot/img/logos/envato.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/img/logos/envato.jpg -------------------------------------------------------------------------------- /HelloBox/wwwroot/img/logos/themeforest.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/img/logos/themeforest.jpg -------------------------------------------------------------------------------- /HelloBox/wwwroot/img/map-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/img/map-image.png -------------------------------------------------------------------------------- /HelloBox/wwwroot/img/scrole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/img/scrole.png -------------------------------------------------------------------------------- /HelloBox/wwwroot/img/team/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/img/team/1.jpg -------------------------------------------------------------------------------- /HelloBox/wwwroot/img/team/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/img/team/2.jpg -------------------------------------------------------------------------------- /HelloBox/wwwroot/img/team/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/img/team/3.jpg -------------------------------------------------------------------------------- /HelloBox/wwwroot/uploads/Fotoram.io.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/uploads/Fotoram.io.png -------------------------------------------------------------------------------- /HelloBox/wwwroot/uploads/app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/uploads/app.png -------------------------------------------------------------------------------- /HelloBox/wwwroot/video/V1.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/HelloBox/wwwroot/video/V1.mp4 -------------------------------------------------------------------------------- /JWT-API-Auth/Entities/User.cs: -------------------------------------------------------------------------------- 1 | namespace WebApi.Entities 2 | { 3 | public class User 4 | { 5 | public int Id { get; set; } 6 | public string FirstName { get; set; } 7 | public string LastName { get; set; } 8 | public string Username { get; set; } 9 | public string Password { get; set; } 10 | public string Token { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /JWT-API-Auth/Helpers/AppSettings.cs: -------------------------------------------------------------------------------- 1 | namespace WebApi.Helpers 2 | { 3 | public class AppSettings 4 | { 5 | public string Secret { get; set; } 6 | } 7 | } -------------------------------------------------------------------------------- /JWT-API-Auth/Helpers/ExtensionMethods.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using WebApi.Entities; 4 | 5 | namespace WebApi.Helpers 6 | { 7 | public static class ExtensionMethods 8 | { 9 | public static IEnumerable WithoutPasswords(this IEnumerable users) { 10 | return users.Select(x => x.WithoutPassword()); 11 | } 12 | 13 | public static User WithoutPassword(this User user) { 14 | user.Password = null; 15 | return user; 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /JWT-API-Auth/Models/AuthenticateModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace WebApi.Models 4 | { 5 | public class AuthenticateModel 6 | { 7 | [Required] 8 | public string Username { get; set; } 9 | 10 | [Required] 11 | public string Password { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /JWT-API-Auth/Program.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Hosting; 2 | using Microsoft.Extensions.Hosting; 3 | 4 | namespace WebApi 5 | { 6 | public class Program 7 | { 8 | public static void Main(string[] args) 9 | { 10 | CreateHostBuilder(args).Build().Run(); 11 | } 12 | 13 | public static IHostBuilder CreateHostBuilder(string[] args) => 14 | Host.CreateDefaultBuilder(args) 15 | .ConfigureWebHostDefaults(webBuilder => 16 | { 17 | webBuilder.UseStartup() 18 | .UseUrls("http://localhost:4000"); 19 | }); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /JWT-API-Auth/Services/IUserService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using WebApi.Entities; 3 | 4 | namespace WebApi.Services 5 | { 6 | public interface IUserService 7 | { 8 | User Authenticate(string username, string password); 9 | IEnumerable GetAll(); 10 | } 11 | } -------------------------------------------------------------------------------- /JWT-API-Auth/WebApi.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | netcoreapp3.0 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /JWT-API-Auth/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /JWT-API-Auth/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "AppSettings": { 3 | "Secret": "THIS IS USED TO SIGN AND VERIFY JWT TOKENS, REPLACE IT WITH YOUR OWN SECRET, IT CAN BE ANY STRING" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /JWT-API-Auth/global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "version": "3.0.100" 4 | } 5 | } -------------------------------------------------------------------------------- /LibraryCore/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "wwwroot/lib" 3 | } 4 | -------------------------------------------------------------------------------- /LibraryCore/.gitignore: -------------------------------------------------------------------------------- 1 | /obj 2 | /.vscode 3 | /bin -------------------------------------------------------------------------------- /LibraryCore/LibraryDB.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/LibraryCore/LibraryDB.db -------------------------------------------------------------------------------- /LibraryCore/LibraryData/ILibraryAsset.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using LibraryCore.Models; 3 | 4 | namespace LibraryCore.LibraryData 5 | { 6 | public interface ILibraryAsset 7 | { 8 | IEnumerable GetAll(); 9 | LibraryAsset GetById(int id); 10 | void Add(LibraryAsset newAsset); 11 | string GetAuthorOrDirector(int id); 12 | string GetDeweyIndex(int id); 13 | string GetType(int id); 14 | string GetTitle(int id); 15 | string GetIsbn(int id); 16 | LibraryBranch GetCurrentLocation(int id); 17 | } 18 | } -------------------------------------------------------------------------------- /LibraryCore/Models/Book.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace LibraryCore.Models 4 | { 5 | public class Book : LibraryAsset 6 | { 7 | [Required] 8 | public string ISBN { get; set; } 9 | 10 | [Required] 11 | public string Author { get; set; } 12 | 13 | [Required] 14 | public string DeweyIndex { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /LibraryCore/Models/BranchHours.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace LibraryCore.Models 4 | { 5 | public class BranchHours 6 | { 7 | public int Id { get; set; } 8 | public LibraryBranch Branch { get; set; } 9 | 10 | [Range(0,6)] 11 | public int DayOfWeek { get; set; } 12 | 13 | [Range(0,23)] 14 | public int OpenTime { get; set; } 15 | 16 | [Range(0,23)] 17 | public int CloseTime { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /LibraryCore/Models/Catalog/AssetIndexListingModel.cs: -------------------------------------------------------------------------------- 1 | namespace LibraryCore.Models.Catalog 2 | { 3 | public class AssetIndexListingModel 4 | { 5 | public int Id { get; set; } 6 | public string ImageUrl { get; set; } 7 | public string Title { get; set; } 8 | public string AuthorOrDirector { get; set; } 9 | public string Type { get; set; } 10 | public string DeweyCallNumber { get; set; } 11 | public string NumberOfCopies { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /LibraryCore/Models/Catalog/AssetIndexModel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace LibraryCore.Models.Catalog 4 | { 5 | public class AssetIndexModel 6 | { 7 | public IEnumerable Assets { get;set; } 8 | } 9 | } -------------------------------------------------------------------------------- /LibraryCore/Models/Checkout.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel.DataAnnotations; 3 | 4 | namespace LibraryCore.Models 5 | { 6 | public class Checkout 7 | { 8 | public int Id { get; set; } 9 | 10 | [Required] 11 | public LibraryAsset LibraryAsset { get; set; } 12 | public LibraryCard LibraryCard { get; set; } 13 | public DateTime Since { get; set; } 14 | public DateTime Until { get; set; } 15 | 16 | } 17 | } -------------------------------------------------------------------------------- /LibraryCore/Models/CheckoutHistory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel.DataAnnotations; 3 | 4 | namespace LibraryCore.Models 5 | { 6 | public class CheckoutHistory 7 | { 8 | public int Id { get; set; } 9 | 10 | [Required] 11 | public LibraryAsset LibraryAsset { get; set; } 12 | 13 | [Required] 14 | public LibraryCard LibraryCard { get; set; } 15 | 16 | [Required] 17 | public DateTime CheckedOut { get; set; } 18 | 19 | public DateTime? CheckedIn { get; set; } 20 | 21 | } 22 | } -------------------------------------------------------------------------------- /LibraryCore/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace LibraryCore.Models 4 | { 5 | public class ErrorViewModel 6 | { 7 | public string RequestId { get; set; } 8 | 9 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 10 | } 11 | } -------------------------------------------------------------------------------- /LibraryCore/Models/Hold.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace LibraryCore.Models 4 | { 5 | public class Hold 6 | { 7 | public int Id { get; set; } 8 | public virtual LibraryAsset LibraryAsset { get; set; } 9 | public virtual LibraryCard LibraryCard { get; set; } 10 | public DateTime HoldPlaced { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /LibraryCore/Models/LibraryAsset.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace LibraryCore.Models 4 | { 5 | public abstract class LibraryAsset 6 | { 7 | public int Id { get; set; } 8 | 9 | [Required] 10 | public string Title { get; set; } 11 | 12 | [Required] 13 | public int Year { get; set; } 14 | 15 | [Required] 16 | public Status Status { get; set; } 17 | 18 | [Required] 19 | public decimal Cost { get; set; } 20 | public string ImageUrl { get; set; } 21 | public int NumberOfCopies { get; set; } 22 | public virtual LibraryBranch Location { get; set; } 23 | } 24 | } -------------------------------------------------------------------------------- /LibraryCore/Models/LibraryCard.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace LibraryCore.Models 5 | { 6 | public class LibraryCard 7 | { 8 | public int Id { get; set; } 9 | public decimal Fees { get; set; } 10 | public DateTime Created { get; set; } 11 | public virtual IEnumerable Checkouts { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /LibraryCore/Models/Patron.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.EntityFrameworkCore; 3 | 4 | namespace LibraryCore.Models 5 | { 6 | public class Patron 7 | { 8 | public int Id { get; set; } 9 | public string FirstName { get; set; } 10 | public string LastName { get; set; } 11 | public string Address { get; set; } 12 | public DateTime Birthday { get; set; } 13 | public string TelephNumber { get; set; } 14 | 15 | public LibraryCard LibraryCard { get; set; } 16 | public LibraryBranch HomeLibraryBranch { get; set; } 17 | } 18 | } -------------------------------------------------------------------------------- /LibraryCore/Models/Status.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace LibraryCore.Models 4 | { 5 | public class Status 6 | { 7 | public int Id { get; set; } 8 | 9 | [Required] 10 | public string Name { get; set; } 11 | 12 | [Required] 13 | public string Description { get; set; } 14 | } 15 | } -------------------------------------------------------------------------------- /LibraryCore/Models/Video.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace LibraryCore.Models 4 | { 5 | public class Video : LibraryAsset 6 | { 7 | [Required] 8 | public string Director { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /LibraryCore/Views/Home/About.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "About"; 3 | } 4 |

@ViewData["Title"]

5 |

@ViewData["Message"]

6 | 7 |

Use this area to provide additional information.

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

@ViewData["Title"]

5 |

@ViewData["Message"]

6 | 7 |
8 | One Microsoft Way
9 | Redmond, WA 98052-6399
10 | P: 11 | 425.555.0100 12 |
13 | 14 |
15 | Support: Support@example.com
16 | Marketing: Marketing@example.com 17 |
18 | -------------------------------------------------------------------------------- /LibraryCore/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using LibraryCore 2 | @using LibraryCore.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /LibraryCore/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /LibraryCore/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /LibraryCore/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "LibraryConnection": "Server=(localdb)\\MSSQLLocalDB;Database=LibraryDB;Trusted_Connection=True;MultipleActiveResultSets=True" 4 | }, 5 | "Logging": { 6 | "IncludeScopes": false, 7 | "LogLevel": { 8 | "Default": "Warning" 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /LibraryCore/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "asp.net", 3 | "private": true, 4 | "dependencies": { 5 | "bootstrap": "3.3.7", 6 | "jquery": "2.2.0", 7 | "jquery-validation": "1.14.0", 8 | "jquery-validation-unobtrusive": "3.2.6" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /LibraryCore/wwwroot/css/site.min.css: -------------------------------------------------------------------------------- 1 | body{padding-top:50px;padding-bottom:20px}.body-content{padding-left:15px;padding-right:15px}.carousel-caption p{font-size:20px;line-height:1.4}.carousel-inner .item img[src$=".svg"]{width:100%}#qrCode{margin:15px}@media screen and (max-width:767px){.carousel-caption{display:none}} -------------------------------------------------------------------------------- /LibraryCore/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/LibraryCore/wwwroot/favicon.ico -------------------------------------------------------------------------------- /LibraryCore/wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Write your JavaScript code. 2 | -------------------------------------------------------------------------------- /LibraryCore/wwwroot/js/site.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/LibraryCore/wwwroot/js/site.min.js -------------------------------------------------------------------------------- /LibraryCore/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/LibraryCore/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /LibraryCore/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/LibraryCore/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /LibraryCore/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/LibraryCore/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /LibraryCore/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/LibraryCore/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /LibraryCore/wwwroot/lib/bootstrap/dist/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /LibraryCore/wwwroot/lib/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ], 14 | "homepage": "https://github.com/jquery/jquery-dist", 15 | "version": "2.2.0", 16 | "_release": "2.2.0", 17 | "_resolution": { 18 | "type": "version", 19 | "tag": "2.2.0", 20 | "commit": "6fc01e29bdad0964f62ef56d01297039cdcadbe5" 21 | }, 22 | "_source": "git://github.com/jquery/jquery-dist.git", 23 | "_target": "2.2.0", 24 | "_originalSource": "jquery" 25 | } -------------------------------------------------------------------------------- /MeklaAPI/MeklaAPI/Controllers/v2/MeklaController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace MeklaAPI.v2.Controllers 4 | { 5 | [ApiVersion("2.0")] 6 | [Route("api/v{version:apiVersion}/[controller]")] 7 | public class FoodsController : ControllerBase 8 | { 9 | [HttpGet] 10 | public ActionResult Get() 11 | { 12 | return Ok("2.0"); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /MeklaAPI/MeklaAPI/Entities/Mekla.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MeklaAPI.Entities { 4 | public class Mekla { 5 | public int Id { get; set; } 6 | public string Name { get; set; } 7 | public string Type { get; set; } 8 | public int Calories { get; set; } 9 | public DateTime Created { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /MeklaAPI/MeklaAPI/Helpers/DynamicExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.ComponentModel; 3 | using System.Dynamic; 4 | 5 | namespace MeklaAPI.Models 6 | { 7 | public static class DynamicExtensions 8 | { 9 | public static dynamic ToDynamic(this object value) 10 | { 11 | IDictionary expando = new ExpandoObject(); 12 | 13 | foreach (PropertyDescriptor property in TypeDescriptor.GetProperties(value.GetType())) 14 | { 15 | expando.Add(property.Name, property.GetValue(value)); 16 | } 17 | 18 | return expando as ExpandoObject; 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /MeklaAPI/MeklaAPI/MeklaCRUD/MeklaCreate.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace MeklaAPI.MeklaCRUD { 8 | public class MeklaCreate { 9 | [Required] 10 | public string Name { get; set; } 11 | public string Type { get; set; } 12 | public int Calories { get; set; } 13 | public DateTime Created { get; set; } 14 | } 15 | } -------------------------------------------------------------------------------- /MeklaAPI/MeklaAPI/MeklaCRUD/MeklaUpdate.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace MeklaAPI.MeklaCRUD { 7 | public class MeklaUpdate { 8 | public string Name { get; set; } 9 | public int Calories { get; set; } 10 | public string Type { get; set; } 11 | public DateTime Created { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /MeklaAPI/MeklaAPI/Models/Link.cs: -------------------------------------------------------------------------------- 1 | namespace MeklaAPI.Models { 2 | public class Link { 3 | public string Href { get; set; } 4 | public string Rel { get; set; } 5 | public string Method { get; set; } 6 | 7 | public Link (string href, string rel, string method) { 8 | Href = href; 9 | Rel = rel; 10 | Method = method; 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /MeklaAPI/MeklaAPI/Models/QueryParameters.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | 4 | namespace MeklaAPI.Models 5 | { 6 | public class QueryParameters 7 | { 8 | private const int maxPageCount = 50; 9 | public int Page { get; set; } = 1; 10 | 11 | private int _pageCount = maxPageCount; 12 | public int PageCount 13 | { 14 | get { return _pageCount; } 15 | set { _pageCount = (value > maxPageCount) ? maxPageCount : value; } 16 | } 17 | 18 | public string Query { get; set; } 19 | 20 | public string OrderBy { get; set; } = "Name"; 21 | } 22 | } -------------------------------------------------------------------------------- /MeklaAPI/MeklaAPI/Repositories/IMeklaRepository.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using MeklaAPI.Entities; 4 | using MeklaAPI.Models; 5 | 6 | namespace MeklaAPI.Repositories { 7 | public interface IMeklaRepository { 8 | Mekla GetSingle (int id); 9 | void Add (Mekla item); 10 | void Delete (int id); 11 | Mekla Update (int id, Mekla item); 12 | IQueryable GetAll (QueryParameters queryParameters); 13 | 14 | ICollection GetRandomMeal (); 15 | int Count (); 16 | 17 | bool Save (); 18 | } 19 | } -------------------------------------------------------------------------------- /MeklaAPI/MeklaAPI/Repositories/MeklaDbContext.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore; 2 | using MeklaAPI.Entities; 3 | 4 | namespace MeklaAPI.Repositories { 5 | public class MeklaDbContext : DbContext { 6 | public MeklaDbContext (DbContextOptions options) : base (options) { 7 | 8 | } 9 | 10 | public DbSet Meklas { get; set; } 11 | 12 | } 13 | } -------------------------------------------------------------------------------- /MeklaAPI/MeklaAPI/Services/ISeedDataService.cs: -------------------------------------------------------------------------------- 1 | using MeklaAPI.Repositories; 2 | using System.Threading.Tasks; 3 | 4 | namespace MeklaAPI.Services 5 | { 6 | public interface ISeedDataService 7 | { 8 | Task Initialize(MeklaDbContext context); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /MeklaAPI/MeklaAPI/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /MeklaAPI/MeklaAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "AllowedHosts": "*" 8 | } 9 | -------------------------------------------------------------------------------- /MeklaAPI/README.md: -------------------------------------------------------------------------------- 1 | # MeklaAPI 2 | ASP.NET Core WebApi Sample with HATEOAS, Versioning & Swagger 3 | 4 | ## Screenshots 5 | 6 | To get the version 7 | 8 | http://localhost:5000/swagger 9 | 10 | ![image](https://user-images.githubusercontent.com/24621701/44584595-63c18400-a7a1-11e8-85fa-9a60e4d648bd.png) 11 | 12 | To get all foods(meklas) 13 | 14 | http://localhost:5000/api/v1/Meklas 15 | 16 | ![image](https://user-images.githubusercontent.com/24621701/44584767-e8140700-a7a1-11e8-884d-af6615ba99c2.png) 17 | -------------------------------------------------------------------------------- /NetCoreCharts/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /NetCoreCharts/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetCoreCharts.Models 4 | { 5 | public class ErrorViewModel 6 | { 7 | public string RequestId { get; set; } 8 | 9 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 10 | } 11 | } -------------------------------------------------------------------------------- /NetCoreCharts/Models/SimpleReportViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace NetCoreCharts.Models { 2 | public class SimpleReportViewModel { 3 | public string DimensionOne { get; set; } 4 | public int Quantity { get; set; } 5 | } 6 | } -------------------------------------------------------------------------------- /NetCoreCharts/Models/StackedViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace NetCoreCharts.Models { 4 | public class StackedViewModel { 5 | public string StackedDimensionOne { get; set; } 6 | public List LstData { get; set; } 7 | } 8 | } -------------------------------------------------------------------------------- /NetCoreCharts/NetCoreCharts.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /NetCoreCharts/Views/Home/About.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "About"; 3 | } 4 |

@ViewData["Title"]

5 |

@ViewData["Message"]

6 | 7 |

Use this area to provide additional information.

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

@ViewData["Title"]

5 |

@ViewData["Message"]

6 | 7 |
8 | One Microsoft Way
9 | Redmond, WA 98052-6399
10 | P: 11 | 425.555.0100 12 |
13 | 14 |
15 | Support: Support@example.com
16 | Marketing: Marketing@example.com 17 |
18 | -------------------------------------------------------------------------------- /NetCoreCharts/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 | -------------------------------------------------------------------------------- /NetCoreCharts/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using NetCoreCharts 2 | @using NetCoreCharts.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /NetCoreCharts/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /NetCoreCharts/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /NetCoreCharts/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "AllowedHosts": "*" 8 | } 9 | -------------------------------------------------------------------------------- /NetCoreCharts/wwwroot/css/site.min.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 50px; 3 | padding-bottom: 20px; 4 | } 5 | .body-content { 6 | padding-left: 15px; 7 | padding-right: 15px; 8 | } 9 | .carousel-caption p { 10 | font-size: 20px; 11 | line-height: 1.4; 12 | } 13 | .carousel-inner .item img[src$=".svg"] { 14 | width: 100%; 15 | } 16 | #qrCode { 17 | margin: 15px; 18 | } 19 | @media screen and (max-width: 767px) { 20 | .carousel-caption { 21 | display: none; 22 | } 23 | } 24 | qrCode { 25 | margin: 15px; 26 | } 27 | @media screen and (max-width: 767px) { 28 | .carousel-caption { 29 | display: none; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /NetCoreCharts/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/NetCoreCharts/wwwroot/favicon.ico -------------------------------------------------------------------------------- /NetCoreCharts/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 | -------------------------------------------------------------------------------- /NetCoreCharts/wwwroot/js/site.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/NetCoreCharts/wwwroot/js/site.min.js -------------------------------------------------------------------------------- /NetCoreCharts/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/NetCoreCharts/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /NetCoreCharts/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/NetCoreCharts/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /NetCoreCharts/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/NetCoreCharts/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /NetCoreCharts/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/NetCoreCharts/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /NetCoreCharts/wwwroot/lib/bootstrap/dist/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /NetCoreCharts/wwwroot/lib/jquery-validation-unobtrusive/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery-validation-unobtrusive", 3 | "homepage": "https://github.com/aspnet/jquery-validation-unobtrusive", 4 | "version": "3.2.9", 5 | "_release": "3.2.9", 6 | "_resolution": { 7 | "type": "version", 8 | "tag": "v3.2.9", 9 | "commit": "a91f5401898e125f10771c5f5f0909d8c4c82396" 10 | }, 11 | "_source": "https://github.com/aspnet/jquery-validation-unobtrusive.git", 12 | "_target": "^3.2.9", 13 | "_originalSource": "jquery-validation-unobtrusive", 14 | "_direct": true 15 | } -------------------------------------------------------------------------------- /NetCoreCharts/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) .NET Foundation. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 4 | these files except in compliance with the License. You may obtain a copy of the 5 | License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software distributed 10 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 11 | CONDITIONS OF ANY KIND, either express or implied. See the License for the 12 | specific language governing permissions and limitations under the License. 13 | -------------------------------------------------------------------------------- /NetCoreCharts/wwwroot/lib/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ], 14 | "homepage": "https://github.com/jquery/jquery-dist", 15 | "version": "3.3.1", 16 | "_release": "3.3.1", 17 | "_resolution": { 18 | "type": "version", 19 | "tag": "3.3.1", 20 | "commit": "9e8ec3d10fad04748176144f108d7355662ae75e" 21 | }, 22 | "_source": "https://github.com/jquery/jquery-dist.git", 23 | "_target": "^3.3.1", 24 | "_originalSource": "jquery", 25 | "_direct": true 26 | } -------------------------------------------------------------------------------- /NetCoreGraphQL/Data/ICategoryRepository.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using aspnetcoregraphql.Models; 4 | 5 | namespace aspnetcoregraphql.Data 6 | { 7 | public interface ICategoryRepository 8 | { 9 | Task> CategoriesAsync(); 10 | Task GetCategoryAsync(int id); 11 | } 12 | } -------------------------------------------------------------------------------- /NetCoreGraphQL/Data/IProductRepository.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using aspnetcoregraphql.Models; 4 | 5 | namespace aspnetcoregraphql.Data 6 | { 7 | public interface IProductRepository 8 | { 9 | Task> GetProductsAsync(); 10 | Task> GetProductsWithByCategoryIdAsync(int categoryId); 11 | Task GetProductAsync(int id); 12 | } 13 | } -------------------------------------------------------------------------------- /NetCoreGraphQL/Models/Category.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace aspnetcoregraphql.Models 4 | { 5 | public class Category 6 | { 7 | public int Id { get; set; } 8 | public string Name { get; set; } 9 | 10 | List Products { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /NetCoreGraphQL/Models/EasyStoreSchema.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GraphQL.Types; 3 | 4 | namespace aspnetcoregraphql.Models 5 | { 6 | public class EasyStoreSchema : Schema 7 | { 8 | public EasyStoreSchema(Func resolveType) 9 | :base(resolveType) 10 | { 11 | Query = (EasyStoreQuery)resolveType(typeof(EasyStoreQuery)); 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /NetCoreGraphQL/Models/GraphQLQuery.cs: -------------------------------------------------------------------------------- 1 | namespace aspnetcoregraphql.Models 2 | { 3 | public class GraphQLQuery 4 | { 5 | public string OperationName { get; set; } 6 | public string NamedQuery { get; set; } 7 | public string Query { get; set; } 8 | public string Variables { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /NetCoreGraphQL/Models/Product.cs: -------------------------------------------------------------------------------- 1 | namespace aspnetcoregraphql.Models 2 | { 3 | public class Product 4 | { 5 | public int Id { get; set; } 6 | public int CategoryId { get; set; } 7 | public string Name { get; set; } 8 | public string Description { get; set; } 9 | public double Price { get; set; } 10 | 11 | Category Category { get; set;} 12 | } 13 | } -------------------------------------------------------------------------------- /NetCoreGraphQL/Program.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore; 2 | using Microsoft.AspNetCore.Hosting; 3 | 4 | namespace aspnetcoregraphql 5 | { 6 | public class Program 7 | { 8 | public static void Main(string[] args) 9 | { 10 | BuildWebHost(args).Run(); 11 | } 12 | 13 | public static IWebHost BuildWebHost(string[] args) => 14 | WebHost.CreateDefaultBuilder(args) 15 | .UseStartup() 16 | .Build(); 17 | } 18 | } -------------------------------------------------------------------------------- /NetCoreGraphQL/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | }, 10 | "ConnectionStrings": { 11 | "EasyStoreDatabaseConnection": "Data Source=10.211.55.4;Initial Catalog=EasyStore;User Id=sa;Password=123456;MultipleActiveResultSets=True;" 12 | } 13 | } -------------------------------------------------------------------------------- /NetCoreGraphQL/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "Debug": { 5 | "LogLevel": { 6 | "Default": "Warning" 7 | } 8 | }, 9 | "Console": { 10 | "LogLevel": { 11 | "Default": "Warning" 12 | } 13 | } 14 | }, 15 | "ConnectionStrings": { 16 | "EasyStoreDatabaseConnection": "Data Source=10.211.55.4;Initial Catalog=EasyStore;User Id=sa;Password=123456;MultipleActiveResultSets=True;" 17 | } 18 | } -------------------------------------------------------------------------------- /NetCoreGraphQL/aspnetcoregraphql.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netcoreapp2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /PushNotificationCore/Data/PushNotifyDbContext.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore; 2 | using PushNotificationCore.Models; 3 | 4 | namespace PushNotificationCore.Data 5 | { 6 | public class PushNotifyDbContext : DbContext 7 | { 8 | public DbSet Clients { get; set; } 9 | public PushNotifyDbContext(DbContextOptions options) 10 | : base(options) 11 | { 12 | } 13 | 14 | protected override void OnModelCreating(ModelBuilder builder) 15 | { 16 | base.OnModelCreating(builder); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /PushNotificationCore/Models/Client.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace PushNotificationCore.Models 4 | { 5 | public class Client 6 | { 7 | public int Id { get; set; } 8 | 9 | [Required(ErrorMessage = "You must fill the input")] 10 | public string Name { get; set; } 11 | 12 | [Required(ErrorMessage = "Its an exception")] 13 | public bool SimularException { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /PushNotificationCore/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace PushNotificationCore.Models 4 | { 5 | public class ErrorViewModel 6 | { 7 | public string RequestId { get; set; } 8 | 9 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 10 | } 11 | } -------------------------------------------------------------------------------- /PushNotificationCore/Models/PNotify.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace PushNotificationCore.Models 8 | { 9 | public static class PNotify 10 | { 11 | public static void Success(string msg) 12 | { 13 | 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /PushNotificationCore/PushNotificationCore.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /PushNotificationCore/ViewComponents/AdminMensagens.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using System.Threading.Tasks; 3 | 4 | namespace PushNotificationCore.ViewComponents 5 | { 6 | public class AdminMensagens : ViewComponent 7 | { 8 | public async Task InvokeAsync() 9 | { 10 | await Task.FromResult(null); 11 | return View(); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /PushNotificationCore/Views/Shared/Components/AdminMensagens/Default.cshtml: -------------------------------------------------------------------------------- 1 |  2 | @{ 3 | var temp = TempData.FirstOrDefault(); 4 | 5 | if (temp.Value != null) 6 | { 7 |
    8 |
  • @temp.Value.ToString()
  • 9 |
10 | } 11 | } 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /PushNotificationCore/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using PushNotificationCore 2 | @using PushNotificationCore.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /PushNotificationCore/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } -------------------------------------------------------------------------------- /PushNotificationCore/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /PushNotificationCore/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "AllowedHosts": "*" 8 | } 9 | -------------------------------------------------------------------------------- /PushNotificationCore/wwwroot/css/site.min.css: -------------------------------------------------------------------------------- 1 | body{padding-top:50px;padding-bottom:20px}.body-content{padding-left:15px;padding-right:15px}.carousel-caption p{font-size:20px;line-height:1.4}.carousel-inner .item img[src$=".svg"]{width:100%}#qrCode{margin:15px}@media screen and (max-width:767px){.carousel-caption{display:none}} -------------------------------------------------------------------------------- /PushNotificationCore/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/PushNotificationCore/wwwroot/favicon.ico -------------------------------------------------------------------------------- /PushNotificationCore/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/PushNotificationCore/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /PushNotificationCore/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/PushNotificationCore/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /PushNotificationCore/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/PushNotificationCore/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /PushNotificationCore/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/PushNotificationCore/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /PushNotificationCore/wwwroot/lib/bootstrap/dist/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /PushNotificationCore/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) .NET Foundation. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 4 | these files except in compliance with the License. You may obtain a copy of the 5 | License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software distributed 10 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 11 | CONDITIONS OF ANY KIND, either express or implied. See the License for the 12 | specific language governing permissions and limitations under the License. 13 | -------------------------------------------------------------------------------- /Razor-Component-Template/App.razor: -------------------------------------------------------------------------------- 1 | @* 2 | The Router component displays whichever component has a @page 3 | directive matching the current URI. 4 | *@ 5 | 6 | -------------------------------------------------------------------------------- /Razor-Component-Template/Data/WeatherForecast.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MyApp.Data 4 | { 5 | public class WeatherForecast 6 | { 7 | public DateTime Date { get; set; } 8 | 9 | public int TemperatureC { get; set; } 10 | 11 | public int TemperatureF { get; set; } 12 | 13 | public string Summary { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Razor-Component-Template/Pages/Counter.razor: -------------------------------------------------------------------------------- 1 | @page "/counter" 2 | 3 |

Counter

4 | 5 |

Current count: @currentCount

6 | 7 | 8 | 9 | @functions { 10 | int currentCount = 0; 11 | 12 | void IncrementCount() 13 | { 14 | currentCount++; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Razor-Component-Template/Pages/Index.razor: -------------------------------------------------------------------------------- 1 | @page "/" 2 | 3 |

Hello, world!

4 | 5 | Welcome to your new app. 6 | -------------------------------------------------------------------------------- /Razor-Component-Template/Pages/_Imports.razor: -------------------------------------------------------------------------------- 1 | @layout MainLayout 2 | -------------------------------------------------------------------------------- /Razor-Component-Template/Shared/MainLayout.razor: -------------------------------------------------------------------------------- 1 | @inherits LayoutComponentBase 2 |
3 | 4 |
5 |
6 |
7 | @Body 8 |
9 |
-------------------------------------------------------------------------------- /Razor-Component-Template/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using System.Net.Http 2 | @using Microsoft.AspNetCore.Components.Forms 3 | @using Microsoft.AspNetCore.Components.Layouts 4 | @using Microsoft.AspNetCore.Components.Routing 5 | @using Microsoft.JSInterop 6 | @using MyApp.Shared 7 | -------------------------------------------------------------------------------- /Razor-Component-Template/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Razor-Component-Template/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /Razor-Component-Template/wwwroot/css/open-iconic/font/fonts/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/Razor-Component-Template/wwwroot/css/open-iconic/font/fonts/open-iconic.eot -------------------------------------------------------------------------------- /Razor-Component-Template/wwwroot/css/open-iconic/font/fonts/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/Razor-Component-Template/wwwroot/css/open-iconic/font/fonts/open-iconic.otf -------------------------------------------------------------------------------- /Razor-Component-Template/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/Razor-Component-Template/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf -------------------------------------------------------------------------------- /Razor-Component-Template/wwwroot/css/open-iconic/font/fonts/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/Razor-Component-Template/wwwroot/css/open-iconic/font/fonts/open-iconic.woff -------------------------------------------------------------------------------- /Razor-Component-Template/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/Razor-Component-Template/wwwroot/favicon.ico -------------------------------------------------------------------------------- /RecurrentTask/demo/RecurrentTask.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp2.2 5 | InProcess 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /RecurrentTask/demo/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /RecurrentTask/demo/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "AllowedHosts": "*" 8 | } 9 | -------------------------------------------------------------------------------- /RoleBaseAuthorization/Areas/Identity/Pages/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "/Views/Shared/_Layout.cshtml"; 3 | } 4 | -------------------------------------------------------------------------------- /RoleBaseAuthorization/Data/ApplicationDbContext.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using Microsoft.AspNetCore.Identity.EntityFrameworkCore; 5 | using Microsoft.EntityFrameworkCore; 6 | 7 | namespace RolebaseAuthorization.Data 8 | { 9 | public class ApplicationDbContext : IdentityDbContext 10 | { 11 | public ApplicationDbContext(DbContextOptions options) 12 | : base(options) 13 | { 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /RoleBaseAuthorization/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace RolebaseAuthorization.Models 4 | { 5 | public class ErrorViewModel 6 | { 7 | public string RequestId { get; set; } 8 | 9 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 10 | } 11 | } -------------------------------------------------------------------------------- /RoleBaseAuthorization/Pages/Test1.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @model RolebaseAuthorization.Pages.Test1Model 3 | @{ 4 | ViewData["Title"] = "Test1"; 5 | Layout = "_Layout"; 6 | } 7 | 8 |

Test1

9 | 10 | -------------------------------------------------------------------------------- /RoleBaseAuthorization/Pages/Test1.cshtml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc; 6 | using Microsoft.AspNetCore.Mvc.RazorPages; 7 | 8 | namespace RolebaseAuthorization.Pages 9 | { 10 | public class Test1Model : PageModel 11 | { 12 | public void OnGet() 13 | { 14 | 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /RoleBaseAuthorization/RolebaseAuthorization.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.1 5 | aspnet-RolebaseAuthorization-B2B01CDF-EB6D-4C45-81C0-58223AED16A2 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | $(IncludeRazorContentInPack) 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /RoleBaseAuthorization/Views/Account/AccessDenied.cshtml: -------------------------------------------------------------------------------- 1 | 
2 |

3 | 401 ! Access Denied 4 | 5 |

6 | -------------------------------------------------------------------------------- /RoleBaseAuthorization/Views/Home/About.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "About"; 3 | } 4 |

@ViewData["Title"]

5 |

@ViewData["Message"]

6 | 7 |

Use this area to provide additional information.

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

@ViewData["Title"]

5 |

@ViewData["Message"]

6 | 7 |
8 | One Microsoft Way
9 | Redmond, WA 98052-6399
10 | P: 11 | 425.555.0100 12 |
13 | 14 |
15 | Support: Support@example.com
16 | Marketing: Marketing@example.com 17 |
18 | -------------------------------------------------------------------------------- /RoleBaseAuthorization/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Home Page"; 3 | } 4 | 5 |
6 | 23 | -------------------------------------------------------------------------------- /RoleBaseAuthorization/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 | -------------------------------------------------------------------------------- /RoleBaseAuthorization/Views/Shared/MyPage.cshtml: -------------------------------------------------------------------------------- 1 | 
2 |
3 |

4 | Hello @ViewData["role"] !!! 5 |

6 |
7 |
-------------------------------------------------------------------------------- /RoleBaseAuthorization/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using RolebaseAuthorization 2 | @using RolebaseAuthorization.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /RoleBaseAuthorization/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /RoleBaseAuthorization/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /RoleBaseAuthorization/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=IdentityTest;Trusted_Connection=True;MultipleActiveResultSets=true" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /RoleBaseAuthorization/wwwroot/css/site.min.css: -------------------------------------------------------------------------------- 1 | body{padding-top:50px;padding-bottom:20px}.body-content{padding-left:15px;padding-right:15px}.carousel-caption p{font-size:20px;line-height:1.4}.carousel-inner .item img[src$=".svg"]{width:100%}#qrCode{margin:15px}@media screen and (max-width:767px){.carousel-caption{display:none}} -------------------------------------------------------------------------------- /RoleBaseAuthorization/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/RoleBaseAuthorization/wwwroot/favicon.ico -------------------------------------------------------------------------------- /RoleBaseAuthorization/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 | -------------------------------------------------------------------------------- /RoleBaseAuthorization/wwwroot/js/site.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/RoleBaseAuthorization/wwwroot/js/site.min.js -------------------------------------------------------------------------------- /RoleBaseAuthorization/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/RoleBaseAuthorization/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /RoleBaseAuthorization/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/RoleBaseAuthorization/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /RoleBaseAuthorization/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/RoleBaseAuthorization/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /RoleBaseAuthorization/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/RoleBaseAuthorization/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /RoleBaseAuthorization/wwwroot/lib/bootstrap/dist/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /RoleBaseAuthorization/wwwroot/lib/jquery-validation-unobtrusive/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery-validation-unobtrusive", 3 | "homepage": "https://github.com/aspnet/jquery-validation-unobtrusive", 4 | "version": "3.2.9", 5 | "_release": "3.2.9", 6 | "_resolution": { 7 | "type": "version", 8 | "tag": "v3.2.9", 9 | "commit": "a91f5401898e125f10771c5f5f0909d8c4c82396" 10 | }, 11 | "_source": "https://github.com/aspnet/jquery-validation-unobtrusive.git", 12 | "_target": "^3.2.9", 13 | "_originalSource": "jquery-validation-unobtrusive", 14 | "_direct": true 15 | } -------------------------------------------------------------------------------- /RoleBaseAuthorization/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) .NET Foundation. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 4 | these files except in compliance with the License. You may obtain a copy of the 5 | License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software distributed 10 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 11 | CONDITIONS OF ANY KIND, either express or implied. See the License for the 12 | specific language governing permissions and limitations under the License. 13 | -------------------------------------------------------------------------------- /RoleBaseAuthorization/wwwroot/lib/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ], 14 | "homepage": "https://github.com/jquery/jquery-dist", 15 | "version": "3.3.1", 16 | "_release": "3.3.1", 17 | "_resolution": { 18 | "type": "version", 19 | "tag": "3.3.1", 20 | "commit": "9e8ec3d10fad04748176144f108d7355662ae75e" 21 | }, 22 | "_source": "https://github.com/jquery/jquery-dist.git", 23 | "_target": "^3.3.1", 24 | "_originalSource": "jquery", 25 | "_direct": true 26 | } -------------------------------------------------------------------------------- /SerilogLogging/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /SerilogLogging/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore.Mvc; 7 | using Microsoft.Extensions.Logging; 8 | using Serilog; 9 | using SerilogLogging.Models; 10 | 11 | namespace SerilogLogging.Controllers 12 | { 13 | public class HomeController : Controller 14 | { 15 | 16 | public HomeController() 17 | { 18 | 19 | } 20 | public IActionResult Index() 21 | { 22 | Log.Information("Index method called!!!"); 23 | return View(); 24 | } 25 | 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /SerilogLogging/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SerilogLogging.Models 4 | { 5 | public class ErrorViewModel 6 | { 7 | public string RequestId { get; set; } 8 | 9 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 10 | } 11 | } -------------------------------------------------------------------------------- /SerilogLogging/Views/Home/About.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "About"; 3 | } 4 |

@ViewData["Title"]

5 |

@ViewData["Message"]

6 | 7 |

Use this area to provide additional information.

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

@ViewData["Title"]

5 |

@ViewData["Message"]

6 | 7 |
8 | One Microsoft Way
9 | Redmond, WA 98052-6399
10 | P: 11 | 425.555.0100 12 |
13 | 14 |
15 | Support: Support@example.com
16 | Marketing: Marketing@example.com 17 |
18 | -------------------------------------------------------------------------------- /SerilogLogging/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using SerilogLogging 2 | @using SerilogLogging.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /SerilogLogging/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /SerilogLogging/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SerilogLogging/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Serilog": { 3 | "Using": [ "Serilog.Sinks.File" ], 4 | "MinimumLevel": "Information", 5 | "WriteTo": [ 6 | { 7 | "Name": "File", 8 | "Args": { 9 | "path": "Logs\\Example.txt", // log file path 10 | "rollingInterval": "Day", // Rolling Interval 11 | "outputTemplate": "{Timestamp:dd-MMM-yyyy HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}" 12 | } 13 | } 14 | ] 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SerilogLogging/bin/Debug/netcoreapp2.1/SerilogDemo.Views.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/bin/Debug/netcoreapp2.1/SerilogDemo.Views.dll -------------------------------------------------------------------------------- /SerilogLogging/bin/Debug/netcoreapp2.1/SerilogDemo.Views.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/bin/Debug/netcoreapp2.1/SerilogDemo.Views.pdb -------------------------------------------------------------------------------- /SerilogLogging/bin/Debug/netcoreapp2.1/SerilogDemo.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/bin/Debug/netcoreapp2.1/SerilogDemo.dll -------------------------------------------------------------------------------- /SerilogLogging/bin/Debug/netcoreapp2.1/SerilogDemo.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/bin/Debug/netcoreapp2.1/SerilogDemo.pdb -------------------------------------------------------------------------------- /SerilogLogging/bin/Debug/netcoreapp2.1/SerilogDemo.runtimeconfig.dev.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeOptions": { 3 | "additionalProbingPaths": [ 4 | "C:\\Users\\L\\.dotnet\\store\\|arch|\\|tfm|", 5 | "C:\\Users\\L\\.nuget\\packages", 6 | "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" 7 | ] 8 | } 9 | } -------------------------------------------------------------------------------- /SerilogLogging/bin/Debug/netcoreapp2.1/SerilogDemo.runtimeconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeOptions": { 3 | "tfm": "netcoreapp2.1", 4 | "framework": { 5 | "name": "Microsoft.AspNetCore.All", 6 | "version": "2.1.1" 7 | }, 8 | "configProperties": { 9 | "System.GC.Server": true 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /SerilogLogging/bin/Debug/netcoreapp2.1/SerilogLogging.Views.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/bin/Debug/netcoreapp2.1/SerilogLogging.Views.dll -------------------------------------------------------------------------------- /SerilogLogging/bin/Debug/netcoreapp2.1/SerilogLogging.Views.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/bin/Debug/netcoreapp2.1/SerilogLogging.Views.pdb -------------------------------------------------------------------------------- /SerilogLogging/bin/Debug/netcoreapp2.1/SerilogLogging.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/bin/Debug/netcoreapp2.1/SerilogLogging.dll -------------------------------------------------------------------------------- /SerilogLogging/bin/Debug/netcoreapp2.1/SerilogLogging.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/bin/Debug/netcoreapp2.1/SerilogLogging.pdb -------------------------------------------------------------------------------- /SerilogLogging/bin/Debug/netcoreapp2.1/SerilogLogging.runtimeconfig.dev.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeOptions": { 3 | "additionalProbingPaths": [ 4 | "C:\\Users\\L\\.dotnet\\store\\|arch|\\|tfm|", 5 | "C:\\Users\\L\\.nuget\\packages", 6 | "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" 7 | ] 8 | } 9 | } -------------------------------------------------------------------------------- /SerilogLogging/bin/Debug/netcoreapp2.1/SerilogLogging.runtimeconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeOptions": { 3 | "tfm": "netcoreapp2.1", 4 | "framework": { 5 | "name": "Microsoft.AspNetCore.All", 6 | "version": "2.1.1" 7 | }, 8 | "configProperties": { 9 | "System.GC.Server": true 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /SerilogLogging/bin/Debug/netcoreapp2.1/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Serilog": { 3 | "Using": [ "Serilog.Sinks.File" ], 4 | "MinimumLevel": "Information", 5 | "WriteTo": [ 6 | { 7 | "Name": "File", 8 | "Args": { 9 | "path": "Logs\\Example.txt", // log file path 10 | "rollingInterval": "Day", // Rolling Interval 11 | "outputTemplate": "{Timestamp:dd-MMM-yyyy HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}" 12 | } 13 | } 14 | ] 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SerilogLogging/img/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/img/1.png -------------------------------------------------------------------------------- /SerilogLogging/img/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/img/2.png -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | 992dd5ed383227015ee86aa534e17441fb4dda62 2 | -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.RazorAssemblyInfo.cache: -------------------------------------------------------------------------------- 1 | 4956bd673d0646961934a5fda40d6c0f9446cd6c 2 | -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.RazorCoreGenerate.cache: -------------------------------------------------------------------------------- 1 | b5c620e86cc981149042f53ef3f7aa05feb6a811 2 | -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.RazorTargetAssemblyInfo.cache: -------------------------------------------------------------------------------- 1 | 7b7f74dae176913e0dfeb978c746da170ca3e5f1 2 | -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.TagHelpers.input.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.TagHelpers.input.cache -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.Views.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.Views.dll -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.Views.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.Views.pdb -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.assets.cache -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.csproj.CopyComplete: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.csproj.CopyComplete -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 546be72b8f95f27d9366af8e13131a0bba2a104e 2 | -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.dll -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/obj/Debug/netcoreapp2.1/SerilogDemo.pdb -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | d7bfff8e45c3ee20312dc397045b2af54494c31c 2 | -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.RazorAssemblyInfo.cache: -------------------------------------------------------------------------------- 1 | 74f2bfcaf69e536800ae9a64e9f6a9dd9a81fb7b 2 | -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.RazorCoreGenerate.cache: -------------------------------------------------------------------------------- 1 | b5c620e86cc981149042f53ef3f7aa05feb6a811 2 | -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.RazorTargetAssemblyInfo.cache: -------------------------------------------------------------------------------- 1 | e57a74619b4a13e38ee312d12afd9f6aa04be841 2 | -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.TagHelpers.input.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.TagHelpers.input.cache -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.Views.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.Views.dll -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.Views.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.Views.pdb -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.assets.cache -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.csproj.CopyComplete: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.csproj.CopyComplete -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 546be72b8f95f27d9366af8e13131a0bba2a104e 2 | -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.dll -------------------------------------------------------------------------------- /SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/obj/Debug/netcoreapp2.1/SerilogLogging.pdb -------------------------------------------------------------------------------- /SerilogLogging/obj/SerilogDemo.csproj.nuget.cache: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "dgSpecHash": "kKjks0DfTvaHO/hpwRV/vKYBa+EinarGrbzQLBHy2sDHcV4tFlSvjYZh72jAUc1SGLZn77qMpiPyp7VuKL2JMw==", 4 | "success": true 5 | } -------------------------------------------------------------------------------- /SerilogLogging/obj/SerilogLogging.csproj.nuget.cache: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "dgSpecHash": "SzF4NLJfBaNerz/kWdk3uhKycEymOyu6Q1g2WbeOJbGjIeJGMg+wC5d6ya/OZ9sTRYeYb2cOidzSgB8Wvs7mnA==", 4 | "success": true 5 | } -------------------------------------------------------------------------------- /SerilogLogging/wwwroot/css/site.min.css: -------------------------------------------------------------------------------- 1 | body{padding-top:50px;padding-bottom:20px}.body-content{padding-left:15px;padding-right:15px}.carousel-caption p{font-size:20px;line-height:1.4}.carousel-inner .item img[src$=".svg"]{width:100%}#qrCode{margin:15px}@media screen and (max-width:767px){.carousel-caption{display:none}} -------------------------------------------------------------------------------- /SerilogLogging/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/wwwroot/favicon.ico -------------------------------------------------------------------------------- /SerilogLogging/wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Write your JavaScript code. 2 | -------------------------------------------------------------------------------- /SerilogLogging/wwwroot/js/site.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/wwwroot/js/site.min.js -------------------------------------------------------------------------------- /SerilogLogging/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /SerilogLogging/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /SerilogLogging/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /SerilogLogging/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/SerilogLogging/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /SerilogLogging/wwwroot/lib/bootstrap/dist/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /SerilogLogging/wwwroot/lib/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ], 14 | "homepage": "https://github.com/jquery/jquery-dist", 15 | "version": "2.2.0", 16 | "_release": "2.2.0", 17 | "_resolution": { 18 | "type": "version", 19 | "tag": "2.2.0", 20 | "commit": "6fc01e29bdad0964f62ef56d01297039cdcadbe5" 21 | }, 22 | "_source": "git://github.com/jquery/jquery-dist.git", 23 | "_target": "2.2.0", 24 | "_originalSource": "jquery" 25 | } -------------------------------------------------------------------------------- /UnitTesting/UnitTesting.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Vidly/README.md: -------------------------------------------------------------------------------- 1 | # Vidly 2 | -------------------------------------------------------------------------------- /Vidly/Vidly/App_Start/FilterConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web; 2 | using System.Web.Mvc; 3 | 4 | namespace Vidly 5 | { 6 | public class FilterConfig 7 | { 8 | public static void RegisterGlobalFilters(GlobalFilterCollection filters) 9 | { 10 | filters.Add(new HandleErrorAttribute()); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Vidly/Vidly/Content/Site.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 50px; 3 | padding-bottom: 20px; 4 | } 5 | 6 | /* Set padding to keep content from hitting the edges */ 7 | .body-content { 8 | padding-left: 15px; 9 | padding-right: 15px; 10 | } 11 | 12 | /* Override the default bootstrap behavior where horizontal description lists 13 | will truncate terms that are too long to fit in the left column 14 | */ 15 | .dl-horizontal dt { 16 | white-space: normal; 17 | } 18 | 19 | /* Set width on the form input elements since they're 100% wide by default */ 20 | input, 21 | select, 22 | textarea { 23 | max-width: 280px; 24 | } 25 | -------------------------------------------------------------------------------- /Vidly/Vidly/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="Vidly.MvcApplication" Language="C#" %> 2 | -------------------------------------------------------------------------------- /Vidly/Vidly/Global.asax.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Mvc; 6 | using System.Web.Optimization; 7 | using System.Web.Routing; 8 | 9 | namespace Vidly 10 | { 11 | public class MvcApplication : System.Web.HttpApplication 12 | { 13 | protected void Application_Start() 14 | { 15 | AreaRegistration.RegisterAllAreas(); 16 | FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 17 | RouteConfig.RegisterRoutes(RouteTable.Routes); 18 | BundleConfig.RegisterBundles(BundleTable.Bundles); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Vidly/Vidly/Migrations/201706230120196_Add IsSubscribed To Customer.cs: -------------------------------------------------------------------------------- 1 | namespace Vidly.Migrations 2 | { 3 | using System; 4 | using System.Data.Entity.Migrations; 5 | 6 | public partial class AddIsSubscribedToCustomer : DbMigration 7 | { 8 | public override void Up() 9 | { 10 | AddColumn("dbo.Customers", "IsSubscibedToNewsLetter", c => c.Boolean(nullable: false)); 11 | } 12 | 13 | public override void Down() 14 | { 15 | DropColumn("dbo.Customers", "IsSubscibedToNewsLetter"); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Vidly/Vidly/Migrations/201706230159138_PopulateMembeshipTypes1.cs: -------------------------------------------------------------------------------- 1 | namespace Vidly.Migrations 2 | { 3 | using System; 4 | using System.Data.Entity.Migrations; 5 | 6 | public partial class PopulateMembeshipTypes1 : DbMigration 7 | { 8 | public override void Up() 9 | { 10 | AlterColumn("dbo.Customers", "Name", c => c.String(nullable: false, maxLength: 255)); 11 | } 12 | 13 | public override void Down() 14 | { 15 | AlterColumn("dbo.Customers", "Name", c => c.String()); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Vidly/Vidly/Migrations/201706230200423_ApplyAnnotationsToCustomerName.cs: -------------------------------------------------------------------------------- 1 | namespace Vidly.Migrations 2 | { 3 | using System; 4 | using System.Data.Entity.Migrations; 5 | 6 | public partial class ApplyAnnotationsToCustomerName : DbMigration 7 | { 8 | public override void Up() 9 | { 10 | } 11 | 12 | public override void Down() 13 | { 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Vidly/Vidly/Models/Customer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Reflection; 6 | using System.Security.AccessControl; 7 | using System.Web; 8 | 9 | namespace Vidly.Models 10 | { 11 | public class Customer 12 | { 13 | public int Id { get; set; } 14 | [Required] 15 | [StringLength(255)] 16 | public string Name { get; set; } 17 | public bool IsSubscibedToNewsLetter { get; set; } 18 | public MembershipType MembershipType { get; set; } 19 | public byte MembershipTypeId { get; set; } 20 | 21 | } 22 | } -------------------------------------------------------------------------------- /Vidly/Vidly/Models/MembershipType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace Vidly.Models 7 | { 8 | public class MembershipType 9 | { 10 | public byte Id { get; set; } 11 | public short SignUpFee { get; set; } 12 | public byte DurationInMonths { get; set; } 13 | public byte DiscoutRate { get; set; } 14 | 15 | } 16 | } -------------------------------------------------------------------------------- /Vidly/Vidly/Models/Movie.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace Vidly.Models 7 | { 8 | public class Movie 9 | { 10 | public int Id { get; set; } 11 | public string Name { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /Vidly/Vidly/Scripts/_references.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/Vidly/Vidly/Scripts/_references.js -------------------------------------------------------------------------------- /Vidly/Vidly/Startup.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Owin; 2 | using Owin; 3 | 4 | [assembly: OwinStartupAttribute(typeof(Vidly.Startup))] 5 | namespace Vidly 6 | { 7 | public partial class Startup 8 | { 9 | public void Configuration(IAppBuilder app) 10 | { 11 | ConfigureAuth(app); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Vidly/Vidly/ViewModels/RandomMovieViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using Vidly.Models; 6 | 7 | namespace Vidly.ViewModels 8 | { 9 | // this class is to specify the types objects 10 | // we use like when using @Model. you can chouse 11 | // witch object to use 12 | public class RandomMovieViewModel 13 | { 14 | public Movie Movie { get; set; } 15 | public List Customers { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /Vidly/Vidly/Views/Account/ConfirmEmail.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Confirm Email"; 3 | } 4 | 5 |

@ViewBag.Title.

6 |
7 |

8 | Thank you for confirming your email. Please @Html.ActionLink("Click here to Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" }) 9 |

10 |
11 | -------------------------------------------------------------------------------- /Vidly/Vidly/Views/Account/ExternalLoginFailure.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Login Failure"; 3 | } 4 | 5 |
6 |

@ViewBag.Title.

7 |

Unsuccessful login with service.

8 |
9 | -------------------------------------------------------------------------------- /Vidly/Vidly/Views/Account/ForgotPasswordConfirmation.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Forgot Password Confirmation"; 3 | } 4 | 5 |
6 |

@ViewBag.Title.

7 |
8 |
9 |

10 | Please check your email to reset your password. 11 |

12 |
13 | 14 | -------------------------------------------------------------------------------- /Vidly/Vidly/Views/Account/ResetPasswordConfirmation.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Reset password confirmation"; 3 | } 4 | 5 |
6 |

@ViewBag.Title.

7 |
8 |
9 |

10 | Your password has been reset. Please @Html.ActionLink("click here to log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" }) 11 |

12 |
13 | -------------------------------------------------------------------------------- /Vidly/Vidly/Views/Customers/Details.cshtml: -------------------------------------------------------------------------------- 1 | @model Vidly.Models.Customer 2 | 3 | @{ 4 | ViewBag.Title = Model.Name; 5 | Layout = "~/Views/Shared/_Layout.cshtml"; 6 | } 7 | 8 |

@Model.Name

9 | -------------------------------------------------------------------------------- /Vidly/Vidly/Views/Home/About.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "About"; 3 | } 4 |

@ViewBag.Title.

5 |

@ViewBag.Message

6 | 7 |

Use this area to provide additional information.

8 | -------------------------------------------------------------------------------- /Vidly/Vidly/Views/Home/Contact.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Contact"; 3 | } 4 |

@ViewBag.Title.

5 |

@ViewBag.Message

6 | 7 |
8 | One Microsoft Way
9 | Redmond, WA 98052-6399
10 | P: 11 | 425.555.0100 12 |
13 | 14 |
15 | Support: Support@example.com
16 | Marketing: Marketing@example.com 17 |
-------------------------------------------------------------------------------- /Vidly/Vidly/Views/Movies/Details.cshtml: -------------------------------------------------------------------------------- 1 | @model Vidly.Models.Movie 2 | 3 | @{ 4 | ViewBag.Title = Model.Name; 5 | Layout = "~/Views/Shared/_Layout.cshtml"; 6 | } 7 | 8 |

@Model.Name

9 | -------------------------------------------------------------------------------- /Vidly/Vidly/Views/Movies/Random.cshtml: -------------------------------------------------------------------------------- 1 | @model Vidly.ViewModels.RandomMovieViewModel 2 | @{ 3 | ViewBag.Title = "Random"; 4 | Layout = "~/Views/Shared/_Layout.cshtml"; 5 | } 6 | 7 | @* 8 | This is a comment 9 | On multiple lines 10 | *@ 11 | 12 | 13 | @{ 14 | var className = Model.Customers.Count > 0 ? "popular" : null; 15 | } 16 | 17 |

@Model.Movie.Name

18 | 19 | @if (Model.Customers.Count == 0) 20 | { 21 | No one has rented this movie before. 22 | } 23 | else 24 | { 25 |
    26 | @foreach (var customer in Model.Customers) 27 | { 28 |
  • @customer.Name
  • 29 | } 30 |
31 | } 32 | 33 | -------------------------------------------------------------------------------- /Vidly/Vidly/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @model System.Web.Mvc.HandleErrorInfo 2 | 3 | @{ 4 | ViewBag.Title = "Error"; 5 | } 6 | 7 |

Error.

8 |

An error occurred while processing your request.

9 | 10 | -------------------------------------------------------------------------------- /Vidly/Vidly/Views/Shared/Lockout.cshtml: -------------------------------------------------------------------------------- 1 | @model System.Web.Mvc.HandleErrorInfo 2 | 3 | @{ 4 | ViewBag.Title = "Locked Out"; 5 | } 6 | 7 |
8 |

Locked out.

9 |

This account has been locked out, please try again later.

10 |
11 | -------------------------------------------------------------------------------- /Vidly/Vidly/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "~/Views/Shared/_Layout.cshtml"; 3 | } 4 | -------------------------------------------------------------------------------- /Vidly/Vidly/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/Vidly/Vidly/favicon.ico -------------------------------------------------------------------------------- /Vidly/Vidly/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/Vidly/Vidly/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /Vidly/Vidly/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/Vidly/Vidly/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /Vidly/Vidly/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/Vidly/Vidly/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /WeatherMicroservice/.dockerignore: -------------------------------------------------------------------------------- 1 | bin/* 2 | obj/* 3 | out/* -------------------------------------------------------------------------------- /WeatherMicroservice/.gitignore: -------------------------------------------------------------------------------- 1 | # User-specific files 2 | *.suo 3 | *.user 4 | 5 | # Build results 6 | bin/ 7 | obj/ 8 | out/ 9 | 10 | # Visual Studio cache/options directory 11 | .vs/ -------------------------------------------------------------------------------- /WeatherMicroservice/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/dotnet:2.1-sdk AS build 2 | WORKDIR /app 3 | 4 | # Copy csproj and restore as distinct layers 5 | COPY *.csproj ./ 6 | RUN dotnet restore 7 | 8 | # Copy everything else and build 9 | COPY . ./ 10 | RUN dotnet publish -c Release -o out 11 | 12 | # Build runtime image 13 | FROM microsoft/dotnet:2.1-aspnetcore-runtime 14 | WORKDIR /app 15 | COPY --from=build /app/out . 16 | ENTRYPOINT ["dotnet", "WeatherMicroservice.dll"] -------------------------------------------------------------------------------- /WeatherMicroservice/Extensions.cs: -------------------------------------------------------------------------------- 1 | namespace WeatherMicroservice { 2 | #region TryParseExtension 3 | public static class Extensions { 4 | public static double? TryParse (this string input) { 5 | if (double.TryParse (input, out var result)) { 6 | return result; 7 | } else { 8 | return null; 9 | } 10 | } 11 | } 12 | #endregion 13 | } -------------------------------------------------------------------------------- /WeatherMicroservice/WeatherMicroservice.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Authentication/Authentication.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.2 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Authentication/Models/User.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Authentication.Models 4 | { 5 | public class User 6 | { 7 | public Guid UserId { get; set; } 8 | 9 | public string FirstName { get; set; } 10 | 11 | public string LastName { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Authentication/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Authentication/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "Debug": { 5 | "LogLevel": { 6 | "Default": "Warning" 7 | } 8 | }, 9 | "Console": { 10 | "LogLevel": { 11 | "Default": "Warning" 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Authentication/wwwroot/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 19 | 20 | 21 |

Authentication Service

22 | 23 | 24 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Catalog/Catalog.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.2 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Catalog/Models/Product.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Catalog.Models 4 | { 5 | public class Product 6 | { 7 | public Guid ProductId { get; set; } 8 | 9 | public string Name { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Catalog/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Catalog/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "Debug": { 5 | "LogLevel": { 6 | "Default": "Warning" 7 | } 8 | }, 9 | "Console": { 10 | "LogLevel": { 11 | "Default": "Warning" 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Catalog/wwwroot/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 19 | 20 | 21 |

Catalog Service

22 | 23 | 24 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Gateway/Gateway.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.2 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Gateway/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Gateway/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "Debug": { 5 | "LogLevel": { 6 | "Default": "Warning" 7 | } 8 | }, 9 | "Console": { 10 | "LogLevel": { 11 | "Default": "Warning" 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Ledger/Ledger.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.2 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Ledger/Models/Transaction.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Ledger.Models 4 | { 5 | public class Transaction 6 | { 7 | public Guid ProductID { get; set; } 8 | 9 | public Guid UserID { get; set; } 10 | 11 | public double PriceAtPointInTime { get; set; } 12 | 13 | public DateTime OccuredAt { get; set; } 14 | 15 | public double Quantity { get; set; } 16 | 17 | public double Total { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Ledger/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Ledger/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "Debug": { 5 | "LogLevel": { 6 | "Default": "Warning" 7 | } 8 | }, 9 | "Console": { 10 | "LogLevel": { 11 | "Default": "Warning" 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /ocelot-api-gateway/Ledger/wwwroot/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 19 | 20 | 21 |

Ledger Service

22 | 23 | 24 | -------------------------------------------------------------------------------- /onePage-CRUD/README.md: -------------------------------------------------------------------------------- 1 | # onePage-CRUD 2 | Demo project that demonstrate handling crud operations in single page using partial views and tag helpers 3 | -------------------------------------------------------------------------------- /onePage-CRUD/src/Areas/Identity/Pages/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "/Views/Shared/_Layout.cshtml"; 3 | } 4 | -------------------------------------------------------------------------------- /onePage-CRUD/src/Data/ApplicationDbContext.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using Microsoft.AspNetCore.Identity.EntityFrameworkCore; 5 | using Microsoft.EntityFrameworkCore; 6 | using onePage_CRUD.Models; 7 | 8 | namespace onePage_CRUD.Data 9 | { 10 | public class ApplicationDbContext : IdentityDbContext 11 | { 12 | public ApplicationDbContext(DbContextOptions options) 13 | : base(options) 14 | { 15 | } 16 | public DbSet Todos { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /onePage-CRUD/src/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace onePage_CRUD.Models 4 | { 5 | public class ErrorViewModel 6 | { 7 | public string RequestId { get; set; } 8 | 9 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /onePage-CRUD/src/Models/Todo.cs: -------------------------------------------------------------------------------- 1 | namespace onePage_CRUD.Models 2 | { 3 | public class Todo 4 | { 5 | public int Id { get; set; } 6 | public string Title { get; set; } 7 | public bool IsDone { get; set; } 8 | } 9 | } -------------------------------------------------------------------------------- /onePage-CRUD/src/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Home Page"; 3 | } 4 | 5 |
6 |

Welcome

7 |

Learn about building Web apps with ASP.NET Core.

8 |
9 | -------------------------------------------------------------------------------- /onePage-CRUD/src/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 | -------------------------------------------------------------------------------- /onePage-CRUD/src/Views/Shared/_ValidationScriptsPartial.cshtml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /onePage-CRUD/src/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using onePage_CRUD 2 | @using onePage_CRUD.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /onePage-CRUD/src/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /onePage-CRUD/src/app.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/onePage-CRUD/src/app.db -------------------------------------------------------------------------------- /onePage-CRUD/src/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /onePage-CRUD/src/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "DefaultConnection": "DataSource=app.db" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /onePage-CRUD/src/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amine-Smahi/.NET-Core-Learning-Journey/3af12b996cccfcbe2ee641383d4c8bc4cc136b2f/onePage-CRUD/src/wwwroot/favicon.ico -------------------------------------------------------------------------------- /onePage-CRUD/src/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 | -------------------------------------------------------------------------------- /onePage-CRUD/src/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) .NET Foundation. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 4 | these files except in compliance with the License. You may obtain a copy of the 5 | License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software distributed 10 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 11 | CONDITIONS OF ANY KIND, either express or implied. See the License for the 12 | specific language governing permissions and limitations under the License. 13 | --------------------------------------------------------------------------------