├── UserManagement.API ├── ClientApp │ ├── src │ │ ├── assets │ │ │ └── .gitkeep │ │ ├── app │ │ │ ├── app.component.css │ │ │ ├── usermanagement │ │ │ │ ├── manage-user │ │ │ │ │ ├── manage-user.component.css │ │ │ │ │ ├── manage-user.component.spec.ts │ │ │ │ │ ├── manage-user.component.ts │ │ │ │ │ └── manage-user.component.html │ │ │ │ └── list-users │ │ │ │ │ ├── list-users.component.spec.ts │ │ │ │ │ ├── list-users.component.css │ │ │ │ │ ├── list-users.component.ts │ │ │ │ │ └── list-users.component.html │ │ │ ├── shared │ │ │ │ ├── enum.ts │ │ │ │ └── util.service.ts │ │ │ ├── app.component.html │ │ │ ├── app.component.ts │ │ │ ├── app-routing.module.ts │ │ │ ├── app.component.spec.ts │ │ │ ├── app.module.ts │ │ │ ├── material-module.ts │ │ │ └── user-management-api.ts │ │ ├── environments │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── favicon.ico │ │ ├── main.ts │ │ ├── index.html │ │ ├── test.ts │ │ ├── polyfills.ts │ │ └── styles.css │ ├── .editorconfig │ ├── e2e │ │ ├── src │ │ │ ├── app.po.ts │ │ │ └── app.e2e-spec.ts │ │ ├── tsconfig.json │ │ └── protractor.conf.js │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ ├── tsconfig.json │ ├── .gitignore │ ├── .browserslistrc │ ├── README.md │ ├── karma.conf.js │ ├── package.json │ ├── tslint.json │ └── angular.json ├── wwwroot │ ├── favicon.ico │ └── api │ │ └── specification.json ├── Pages │ ├── _ViewImports.cshtml │ ├── Error.cshtml.cs │ └── Error.cshtml ├── appsettings.Development.json ├── Controllers │ ├── BaseController.cs │ └── UserController.cs ├── Properties │ └── launchSettings.json ├── Program.cs ├── appsettings.json ├── Common │ └── CustomExceptionHandlerMiddleware.cs ├── Filters │ └── ApiExceptionFilterAttribute.cs ├── Startup.cs ├── UserManagement.API.csproj └── nswag.json ├── .gitattributes ├── UserManagement.Application ├── Common │ ├── Mappings │ │ ├── IMapFrom.cs │ │ └── MappingProfile.cs │ ├── BaseClass │ │ └── ApplicationBase.cs │ ├── Exceptions │ │ ├── NotFoundException.cs │ │ └── ValidationException.cs │ ├── Interfaces │ │ └── IConfigConstants.cs │ └── Behaviors │ │ ├── LoggingBehaviour.cs │ │ ├── UnhandledExceptionBehaviour.cs │ │ ├── ValidationBehaviour.cs │ │ └── PerformanceBehaviour.cs ├── User │ ├── VM │ │ └── UserVM.cs │ ├── Commands │ │ ├── DeleteUserCommandValidator.cs │ │ ├── UpdateUserCommandValidator.cs │ │ ├── DeleteUserCommand.cs │ │ ├── AddUserCommandValidator.cs │ │ ├── UpdateUserCommand.cs │ │ └── AddUserCommand.cs │ ├── Queries │ │ ├── GetSingleUserQueryValidator.cs │ │ ├── GetAllUserQuery.cs │ │ └── GetSingleUserQuery.cs │ └── DTO │ │ └── UserDTO.cs ├── UserManagement.Application.csproj └── DependencyInjection.cs ├── UserManagement.Domain ├── UnitOfWork │ └── IUnitOfWork.cs ├── UserManagement.Domain.csproj ├── Repositories │ └── IUserRepository.cs └── Entities │ └── User.cs ├── UserManagement.Persistence ├── Repositories │ ├── Repository.cs │ └── UserRepository.cs ├── UserManagement.Persistence.csproj ├── DependencyInjection.cs ├── UnitOfWork │ └── UnitOfWork.cs └── Constant │ └── ConfigConstants.cs ├── UserManagement.Application.UnitTests ├── BaseFixture.cs ├── UserManagement.Application.UnitTests.csproj └── User │ ├── Commands │ ├── DeleteUserCommandValidatorTest.cs │ ├── DeleteUserCommandTest.cs │ ├── UpdateUserCommandTest.cs │ ├── AddUserCommandTest.cs │ ├── UpdateUserCommandValidatorTest.cs │ └── AddUserCommandValidatorTest.cs │ ├── Queries │ ├── GetAllUserQueryTest.cs │ ├── GetSingleUserQueryValidator.cs │ └── GetSingleUserQueryTest.cs │ └── UserFixture.cs ├── UserManagement.Persistence.IntegrationTests ├── UserFixture.cs ├── UserManagement.Persistence.IntegrationTests.csproj └── User │ └── UserRepositoryTest.cs ├── README.md ├── LICENSE ├── UserManagement.API.IntegrationTests ├── UserManagement.API.IntegrationTests.csproj ├── IntegrationTestHelper.cs ├── CustomWebApplicationFactory.cs └── User │ └── UserAPI.cs ├── UserManagement.sln └── .gitignore /UserManagement.API/ClientApp/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /UserManagement.API/ClientApp/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /UserManagement.API/ClientApp/src/app/usermanagement/manage-user/manage-user.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /UserManagement.API/ClientApp/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /UserManagement.API/ClientApp/src/app/shared/enum.ts: -------------------------------------------------------------------------------- 1 | export enum DBOperation { 2 | create, 3 | update, 4 | delete 5 | } -------------------------------------------------------------------------------- /UserManagement.API/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fullstackhub-io/UserManagement/HEAD/UserManagement.API/wwwroot/favicon.ico -------------------------------------------------------------------------------- /UserManagement.API/ClientApp/src/app/app.component.html: -------------------------------------------------------------------------------- 1 |
2 |
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 | -------------------------------------------------------------------------------- /UserManagement.API/ClientApp/e2e/protractor.conf.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | // Protractor configuration file, see link for more information 3 | // https://github.com/angular/protractor/blob/master/lib/config.ts 4 | 5 | const { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter'); 6 | 7 | /** 8 | * @type { import("protractor").Config } 9 | */ 10 | exports.config = { 11 | allScriptsTimeout: 11000, 12 | specs: [ 13 | './src/**/*.e2e-spec.ts' 14 | ], 15 | capabilities: { 16 | browserName: 'chrome' 17 | }, 18 | directConnect: true, 19 | baseUrl: 'http://localhost:4200/', 20 | framework: 'jasmine', 21 | jasmineNodeOpts: { 22 | showColors: true, 23 | defaultTimeoutInterval: 30000, 24 | print: function() {} 25 | }, 26 | onPrepare() { 27 | require('ts-node').register({ 28 | project: require('path').join(__dirname, './tsconfig.json') 29 | }); 30 | jasmine.getEnv().addReporter(new SpecReporter({ 31 | spec: { 32 | displayStacktrace: StacktraceOption.PRETTY 33 | } 34 | })); 35 | } 36 | }; -------------------------------------------------------------------------------- /UserManagement.Application/UserManagement.Application.csproj: -------------------------------------------------------------------------------- 1 || 28 | First Name 29 | | 30 |{{ row.firstName }} | 31 |35 | Last Name 36 | | 37 |{{ row.lastName }} | 38 |42 | Age 43 | | 44 |{{ row.age }} | 45 |49 | Gender 50 | | 51 |{{ row.gender }} | 52 |56 | Email Address 57 | | 58 |{{ row.emailAddress }} | 59 |63 | Phone Number 64 | | 65 |{{ row.phoneNumber }} | 66 |70 | City 71 | | 72 |{{ row.city }} | 73 |77 | State 78 | | 79 |{{ row.state }} | 80 |84 | Zip 85 | | 86 |{{ row.zip }} | 87 |91 | Country 92 | | 93 |{{ row.country }} | 94 |97 | | 98 | 101 | | 102 |106 | | 107 | 110 | | 111 |
|---|