├── CaWorkshop.WebUI ├── ClientApp │ ├── src │ │ ├── assets │ │ │ └── .gitkeep │ │ ├── api-authorization │ │ │ ├── login │ │ │ │ ├── login.component.css │ │ │ │ ├── login.component.html │ │ │ │ ├── login.component.spec.ts │ │ │ │ └── login.component.ts │ │ │ ├── logout │ │ │ │ ├── logout.component.css │ │ │ │ ├── logout.component.html │ │ │ │ ├── logout.component.spec.ts │ │ │ │ └── logout.component.ts │ │ │ ├── login-menu │ │ │ │ ├── login-menu.component.css │ │ │ │ ├── login-menu.component.spec.ts │ │ │ │ ├── login-menu.component.html │ │ │ │ └── login-menu.component.ts │ │ │ ├── api-authorization.module.spec.ts │ │ │ ├── authorize.guard.spec.ts │ │ │ ├── authorize.service.spec.ts │ │ │ ├── authorize.interceptor.spec.ts │ │ │ ├── authorize.guard.ts │ │ │ ├── api-authorization.module.ts │ │ │ ├── authorize.interceptor.ts │ │ │ ├── api-authorization.constants.ts │ │ │ └── authorize.service.ts │ │ ├── environments │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── app │ │ │ ├── app.component.html │ │ │ ├── home │ │ │ │ ├── home.component.ts │ │ │ │ └── home.component.html │ │ │ ├── app.component.ts │ │ │ ├── counter │ │ │ │ ├── counter.component.html │ │ │ │ ├── counter.component.ts │ │ │ │ └── counter.component.spec.ts │ │ │ ├── nav-menu │ │ │ │ ├── nav-menu.component.css │ │ │ │ ├── nav-menu.component.ts │ │ │ │ └── nav-menu.component.html │ │ │ ├── app.server.module.ts │ │ │ ├── todo │ │ │ │ ├── todo.component.css │ │ │ │ ├── todo.component.ts │ │ │ │ └── todo.component.html │ │ │ ├── fetch-data │ │ │ │ ├── fetch-data.component.ts │ │ │ │ └── fetch-data.component.html │ │ │ └── app.module.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.server.json │ │ ├── tsconfig.spec.json │ │ ├── styles.css │ │ ├── tslint.json │ │ ├── index.html │ │ ├── main.ts │ │ ├── test.ts │ │ ├── karma.conf.js │ │ └── polyfills.ts │ ├── e2e │ │ ├── src │ │ │ ├── app.po.ts │ │ │ └── app.e2e-spec.ts │ │ ├── tsconfig.e2e.json │ │ └── protractor.conf.js │ ├── .editorconfig │ ├── browserslist │ ├── tsconfig.json │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── tslint.json │ └── angular.json ├── wwwroot │ └── favicon.ico ├── Pages │ ├── _ViewImports.cshtml │ ├── Error.cshtml.cs │ ├── Error.cshtml │ └── Shared │ │ └── _LoginPartial.cshtml ├── appsettings.Development.json ├── WeatherForecast.cs ├── Services │ └── CurrentUserService.cs ├── appsettings.json ├── Properties │ └── launchSettings.json ├── Controllers │ ├── OidcConfigurationController.cs │ ├── WeatherForecastController.cs │ ├── TodoItemsController.cs │ └── TodoListsController.cs ├── Program.cs ├── Common │ └── CustomExceptionHandlerMiddleware.cs ├── Startup.cs ├── openapi.nswag ├── CaWorkshop.WebUI.csproj └── .gitignore ├── CaWorkshop.Domain ├── Entities │ ├── PriorityLevel.cs │ ├── TodoList.cs │ └── TodoItem.cs ├── CaWorkshop.Domain.csproj └── Common │ └── AuditableEntity.cs ├── CaWorkshop.Application ├── Common │ ├── Interfaces │ │ ├── ICurrentUserService.cs │ │ ├── IIdentityService.cs │ │ └── IApplicationDbContext.cs │ ├── Mappings │ │ ├── IMapFrom.cs │ │ └── MappingProfile.cs │ ├── Exceptions │ │ ├── NotFoundException.cs │ │ └── ValidationException.cs │ ├── Models │ │ └── Result.cs │ └── Behaviours │ │ ├── RequestLoggerBehaviour.cs │ │ ├── RequestValidationBehaviour.cs │ │ └── RequestPerformanceBehaviour.cs ├── TodoLists │ ├── Queries │ │ ├── GetTodoLists │ │ │ ├── PriorityDto.cs │ │ │ ├── TodoListDto.cs │ │ │ ├── TodosVm.cs │ │ │ ├── TodoItemDto.cs │ │ │ └── GetTodoListsQuery.cs │ │ └── package-lock.json │ └── Commands │ │ ├── CreateTodoList │ │ ├── CreateTodoListCommandValidator.cs │ │ └── CreateTodoListCommand.cs │ │ ├── DeleteTodoList │ │ └── DeleteTodoListCommand.cs │ │ └── UpdateTodoList │ │ └── UpdateTodoListCommand.cs ├── CaWorkshop.Application.csproj ├── TodoItems │ └── Commands │ │ ├── CreateTodoItem │ │ └── CreateTodoItemCommand.cs │ │ ├── DeleteTodoItem │ │ └── DeleteTodoItemCommand.cs │ │ └── UpdateTodoItem │ │ └── UpdateTodoItemCommand.cs └── DependencyInjection.cs ├── CaWorkshop.Application.UnitTests ├── QueryFixture.cs ├── MappingFixture.cs ├── MapperFactory.cs ├── TestBase.cs ├── CaWorkshop.Application.UnitTests.csproj ├── Common │ └── Mappings │ │ └── MappingTests.cs ├── TodoLists │ ├── Commands │ │ └── CreateTodoLists │ │ │ └── CreateTodoListCommandTests.cs │ └── Queries │ │ └── GetTodoLists │ │ └── GetTodoListsQueryTests.cs ├── TodoList │ └── Commands │ │ └── CreateTodoList │ │ └── CreateTodoListValidatorTests.cs └── DbContextFactory.cs ├── CaWorkshop.Infrastructure ├── Identity │ ├── ApplicationUser.cs │ └── IdentityService.cs ├── Persistence │ ├── Configurations │ │ ├── TodoListConfiguration.cs │ │ └── TodoItemConfiguration.cs │ ├── ApplicationDbContextSeeder.cs │ ├── ApplicationDbContext.cs │ └── Migrations │ │ ├── 20200225000904_Todo.cs │ │ ├── 20200225061624_Audit Todos.cs │ │ └── 00000000000000_CreateIdentitySchema.cs ├── CaWorkshop.Infrastructure.csproj └── DependencyInjection.cs ├── .editorconfig ├── CaWorkshop.sln └── .gitignore /CaWorkshop.WebUI/ClientApp/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /CaWorkshop.WebUI/ClientApp/src/api-authorization/login/login.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /CaWorkshop.WebUI/ClientApp/src/api-authorization/logout/logout.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /CaWorkshop.WebUI/ClientApp/src/api-authorization/login-menu/login-menu.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /CaWorkshop.WebUI/ClientApp/src/api-authorization/login/login.component.html: -------------------------------------------------------------------------------- 1 |
{{ message | async }}
-------------------------------------------------------------------------------- /CaWorkshop.WebUI/ClientApp/src/api-authorization/logout/logout.component.html: -------------------------------------------------------------------------------- 1 |{{ message | async }}
-------------------------------------------------------------------------------- /CaWorkshop.WebUI/ClientApp/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /CaWorkshop.WebUI/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SSWConsulting/CleanArchitectureSuperpowersFeb2020/HEAD/CaWorkshop.WebUI/wwwroot/favicon.ico -------------------------------------------------------------------------------- /CaWorkshop.WebUI/Pages/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using CaWorkshop.WebUI 2 | @namespace CaWorkshop.WebUI.Pages 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /CaWorkshop.WebUI/ClientApp/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 |This is a simple example of an Angular component.
4 | 5 |Current count: {{ currentCount }}
6 | 7 | 8 | -------------------------------------------------------------------------------- /CaWorkshop.Domain/CaWorkshop.Domain.csproj: -------------------------------------------------------------------------------- 1 |This component demonstrates fetching data from the server.
4 | 5 |Loading...
6 | 7 || Date | 11 |Temp. (C) | 12 |Temp. (F) | 13 |Summary | 14 |
|---|---|---|---|
| {{ forecast.date }} | 19 |{{ forecast.temperatureC }} | 20 |{{ forecast.temperatureF }} | 21 |{{ forecast.summary }} | 22 |
13 | Request ID: @Model.RequestId
14 |
19 | Swapping to the Development environment displays detailed information about the error that occurred. 20 |
21 |22 | The Development environment shouldn't be enabled for deployed applications. 23 | It can result in displaying sensitive information from exceptions to end users. 24 | For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development 25 | and restarting the app. 26 |
27 | -------------------------------------------------------------------------------- /CaWorkshop.Application.UnitTests/CaWorkshop.Application.UnitTests.csproj: -------------------------------------------------------------------------------- 1 |Welcome to your new single-page application, built with:
3 |To help you get started, we've also set up:
9 |ng serve. It runs in the background automatically, so your client-side resources are dynamically built on demand and the page refreshes when you modify any file.dotnet publish configuration automatically invokes ng build to produce minified, ahead-of-time compiled JavaScript files.The ClientApp subdirectory is a standard Angular CLI application. If you open a command prompt in that directory, you can run any ng command (e.g., ng test), or use npm to install extra packages into it.
This is a complex todo list component.
4 | 5 |Loading...
6 | 7 |{{ lists | json }}
106 | {{ listOptionsEditor | json }}
134 | {{ itemDetailsEditor | json }}
202 | All items will be permanently deleted.
240 |{{ selectedList | json }}
242 | {{ newListEditor | json }}
294 |