├── CleanLike ├── .gitignore ├── CommonLibrary │ ├── CommonLibrary.csproj │ └── Objects │ │ └── ObjectValueStringBuilder.cs ├── EFInfrastructure │ ├── Contexts │ │ └── ItdddDbContext.cs │ ├── EFInfrastructure.csproj │ ├── Migrations │ │ ├── 20191210072139_Initialize.Designer.cs │ │ ├── 20191210072139_Initialize.cs │ │ └── ItdddDbContextModelSnapshot.cs │ ├── Persistence │ │ ├── Circles │ │ │ ├── EFCircleFactory.cs │ │ │ └── EFCircleRepository.cs │ │ ├── DataModels │ │ │ ├── CircleDataModel.cs │ │ │ ├── OwnerCircle.cs │ │ │ ├── UserCircle.cs │ │ │ └── UserDataModel.cs │ │ ├── Shared │ │ │ └── Factory │ │ │ │ └── SimpleIncrementalFactory.cs │ │ └── Users │ │ │ ├── EFUserFactory.cs │ │ │ └── EFUserRepository.cs │ └── QueryService │ │ └── Circles │ │ ├── EFCircleGetCandidatesInteractor.cs │ │ └── EFMemoryCircleGetSummariesInteractor.cs ├── InMemoryInfrastructure │ ├── Foundation │ │ ├── Factory │ │ │ └── SerialNumberAssigner.cs │ │ └── Repository │ │ │ └── InMemoryCrudRepository.cs │ ├── InMemoryInfrastructure.csproj │ ├── Persistence │ │ ├── Circles │ │ │ ├── InMemoryCircleFactory.cs │ │ │ └── InMemoryCircleRepository.cs │ │ └── Users │ │ │ ├── InMemoryUserFactory.cs │ │ │ └── InMemoryUserRepository.cs │ └── QueryService │ │ └── Circles │ │ ├── InMemoryCircleGetCandidatesInteractor.cs │ │ └── InMemoryCircleGetSummariesInteractor.cs ├── IntroductionToDomainDrivenDesign.sln ├── README.md ├── SQLInfrastructure │ ├── Persistence │ │ ├── Circles │ │ │ ├── SqlCircleBuilder.cs │ │ │ ├── SqlCircleFactory.cs │ │ │ └── SqlCircleRepository.cs │ │ └── Users │ │ │ ├── SqlUserFactory.cs │ │ │ └── SqlUserRepository.cs │ ├── Provider │ │ └── DatabaseConnectionProvider.cs │ ├── QueryService │ │ └── Circles │ │ │ ├── SqlCircleGetCandidatesInteractor.cs │ │ │ └── SqlCircleGetSummariesInteractor.cs │ └── SQLInfrastructure.csproj ├── SnsApplication.Tests │ ├── SnsApplication.Tests.csproj │ └── Users │ │ └── UserRegisterTest.cs ├── SnsApplication │ ├── Circles │ │ ├── CanNotRegisterCircleException.cs │ │ ├── CircleNotFoundException.cs │ │ └── Interactors │ │ │ ├── CircleCreateInteractor.cs │ │ │ ├── CircleDeleteInteractor.cs │ │ │ ├── CircleGetAllInteractor.cs │ │ │ ├── CircleGetInteractor.cs │ │ │ ├── CircleJoinInteractor.cs │ │ │ └── CircleUpdateInteractor.cs │ ├── SnsApplication.csproj │ └── Users │ │ ├── CanNotRegisterUserException.cs │ │ ├── Interactors │ │ ├── UserDeleteInteractor.cs │ │ ├── UserGetAllInteractor.cs │ │ ├── UserGetInteractor.cs │ │ ├── UserRegisterInteractor.cs │ │ └── UserUpdateInteractor.cs │ │ └── UserNotFoundException.cs ├── SnsApplicationPort │ ├── Circles │ │ ├── Commons │ │ │ └── CircleData.cs │ │ ├── Create │ │ │ ├── CircleCreateInputData.cs │ │ │ ├── CircleCreateOutputData.cs │ │ │ └── ICircleCreateInputPort.cs │ │ ├── Delete │ │ │ ├── CircleDeleteInputData.cs │ │ │ ├── CircleDeleteOutputData.cs │ │ │ └── ICircleDeleteInputPort.cs │ │ ├── Get │ │ │ ├── CircleGetInputData.cs │ │ │ ├── CircleGetOutputData.cs │ │ │ └── ICIrcleGetInputPort.cs │ │ ├── GetAll │ │ │ ├── CircleGetAllInputData.cs │ │ │ ├── CircleGetAllOutputData.cs │ │ │ └── ICIrcleGetAllInputPort.cs │ │ ├── GetCandidates │ │ │ ├── CircleGetCandidatesInputData.cs │ │ │ ├── CircleGetCandidatesOutputData.cs │ │ │ └── ICircleGetCandidatesInputPort.cs │ │ ├── GetSummaries │ │ │ ├── CircleGetSummariesInputData.cs │ │ │ ├── CircleGetSummariesOutputData.cs │ │ │ ├── CircleSummaryData.cs │ │ │ └── ICircleGetSummariesInputPort.cs │ │ ├── Join │ │ │ ├── CircleJoinInputData.cs │ │ │ ├── CircleJoinOutputData.cs │ │ │ └── ICircleJoinInputPort.cs │ │ └── Update │ │ │ ├── CircleUpdateInputData.cs │ │ │ ├── CircleUpdateOutputData.cs │ │ │ └── ICircleUpdateInputPort.cs │ ├── SnsApplicationPort.csproj │ └── Users │ │ ├── Commons │ │ └── UserData.cs │ │ ├── Delete │ │ ├── IUserDeleteInputPort.cs │ │ ├── UserDeleteInputData.cs │ │ └── UserDeleteOutputData.cs │ │ ├── Get │ │ ├── IUserGetInputPort.cs │ │ ├── UserGetInputData.cs │ │ └── UserGetOutputData.cs │ │ ├── GetAll │ │ ├── IUserGetAllInputPort.cs │ │ ├── UserGetAllInputData.cs │ │ └── UserGetAllOutputData.cs │ │ ├── Register │ │ ├── IUserRegisterInputPort.cs │ │ ├── UserRegisterInputData.cs │ │ └── UserRegisterOutputData.cs │ │ └── Update │ │ ├── IUserUpdateInputPort.cs │ │ ├── UserUpdateInputData.cs │ │ └── UserUpdateOutputData.cs ├── SnsDomain │ ├── Library │ │ └── Models │ │ │ └── Identity.cs │ ├── Models │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleFullSpecification.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserType.cs │ ├── Services │ │ ├── CircleService.cs │ │ └── UserService.cs │ └── SnsDomain.csproj └── WebApplication │ ├── .gitignore │ ├── ClientApp │ ├── .gitignore │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ └── manifest.json │ ├── src │ │ ├── App.js │ │ ├── App.test.js │ │ ├── App.tsx │ │ ├── components │ │ │ ├── Home.js │ │ │ ├── Home.tsx │ │ │ ├── Layout.js │ │ │ ├── Layout.tsx │ │ │ ├── NavMenu.css │ │ │ ├── NavMenu.js │ │ │ ├── NavMenu.tsx │ │ │ ├── models │ │ │ │ ├── circles │ │ │ │ │ └── CircleResponse.ts │ │ │ │ └── users │ │ │ │ │ └── UserResponse.ts │ │ │ └── pages │ │ │ │ ├── circle │ │ │ │ ├── add │ │ │ │ │ ├── CircleAdd.js │ │ │ │ │ └── CircleAdd.tsx │ │ │ │ ├── detail │ │ │ │ │ └── CircleDetail.tsx │ │ │ │ ├── index │ │ │ │ │ ├── CircleIndex.js │ │ │ │ │ └── CircleIndex.tsx │ │ │ │ ├── member │ │ │ │ │ └── add │ │ │ │ │ │ └── CircleMemberAdd.tsx │ │ │ │ └── update │ │ │ │ │ └── CircleUpdate.tsx │ │ │ │ └── user │ │ │ │ ├── add │ │ │ │ ├── UserAdd.js │ │ │ │ └── UserAdd.tsx │ │ │ │ ├── detail │ │ │ │ └── UserDetail.tsx │ │ │ │ ├── index │ │ │ │ ├── UserIndex.js │ │ │ │ └── UserIndex.tsx │ │ │ │ └── update │ │ │ │ └── UserUpdate.tsx │ │ ├── custom.css │ │ ├── index.js │ │ ├── index.tsx │ │ ├── react-app-env.d.ts │ │ └── registerServiceWorker.js │ └── tsconfig.json │ ├── Config │ └── Dependency │ │ ├── DependencySetupFactory.cs │ │ ├── EFDependencySetup.cs │ │ ├── IDependencySetup.cs │ │ ├── InMemoryModuleDependencySetup.cs │ │ ├── ProductionDepencencySetup.cs │ │ └── SqlConnectionDependencySetup.cs │ ├── Controllers │ ├── CircleController.cs │ ├── HomeController.cs │ ├── SampleDataController.cs │ ├── UserController.cs │ └── WeatherForecastController.cs │ ├── Models │ ├── Circles │ │ ├── Commons │ │ │ └── CircleResponseModel.cs │ │ ├── Get │ │ │ └── CircleGetResponseModel.cs │ │ ├── GetCandidates │ │ │ ├── CircleGetCandidatesRequestModel.cs │ │ │ └── CircleGetCandidatesResponseModel.cs │ │ ├── Index │ │ │ └── CircleIndexResponseModel.cs │ │ ├── JoinMember │ │ │ └── CircleJoinMemberRequestModel.cs │ │ ├── Post │ │ │ ├── CirclePostRequestModel.cs │ │ │ └── CirclePostResponseModel.cs │ │ └── Put │ │ │ └── CirclePutRequestModel.cs │ └── Users │ │ ├── Commons │ │ └── UserResponseModel.cs │ │ ├── Get │ │ └── UserGetResponseModel.cs │ │ ├── Index │ │ └── UserIndexResponseModel.cs │ │ ├── Post │ │ ├── UserPostRequestModel.cs │ │ └── UserPostResponseModel.cs │ │ └── Put │ │ └── UserPutRequestModel.cs │ ├── Pages │ ├── Error.cshtml │ ├── Error.cshtml.cs │ └── _ViewImports.cshtml │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── Startup.cs │ ├── WeatherForecast.cs │ ├── WebApplication.csproj │ ├── appsettings.Development.json │ ├── appsettings.Development.json.bak │ └── appsettings.json ├── Layered ├── .gitignore ├── CommonLibrary │ ├── CommonLibrary.csproj │ └── Objects │ │ └── ObjectValueStringBuilder.cs ├── EFInfrastructure │ ├── Contexts │ │ └── ItdddDbContext.cs │ ├── EFInfrastructure.csproj │ ├── Migrations │ │ ├── 20191210072139_Initialize.Designer.cs │ │ ├── 20191210072139_Initialize.cs │ │ └── ItdddDbContextModelSnapshot.cs │ ├── Persistence │ │ ├── Circles │ │ │ ├── EFCircleFactory.cs │ │ │ └── EFCircleRepository.cs │ │ ├── DataModels │ │ │ ├── CircleDataModel.cs │ │ │ ├── OwnerCircle.cs │ │ │ ├── UserCircle.cs │ │ │ └── UserDataModel.cs │ │ ├── Shared │ │ │ └── Factory │ │ │ │ └── SimpleIncrementalFactory.cs │ │ └── Users │ │ │ ├── EFUserFactory.cs │ │ │ └── EFUserRepository.cs │ └── QueryService │ │ └── EFQueryService │ │ └── EFCircleQueryService.cs ├── InMemoryInfrastructure │ ├── Foundation │ │ ├── Factory │ │ │ └── SerialNumberAssigner.cs │ │ └── Repository │ │ │ └── InMemoryCrudRepository.cs │ ├── InMemoryInfrastructure.csproj │ ├── Persistence │ │ ├── Circles │ │ │ ├── InMemoryCircleFactory.cs │ │ │ └── InMemoryCircleRepository.cs │ │ └── Users │ │ │ ├── InMemoryUserFactory.cs │ │ │ └── InMemoryUserRepository.cs │ └── QueryService │ │ └── InMemoryCircleQueryService.cs ├── IntroductionToDomainDrivenDesign.sln ├── README.md ├── SQLInfrastructure │ ├── Persistence │ │ ├── Circles │ │ │ ├── SqlCircleBuilder.cs │ │ │ ├── SqlCircleFactory.cs │ │ │ └── SqlCircleRepository.cs │ │ └── Users │ │ │ ├── SqlUserFactory.cs │ │ │ └── SqlUserRepository.cs │ ├── Provider │ │ └── DatabaseConnectionProvider.cs │ ├── QueryService │ │ └── SqlCircleQueryService.cs │ └── SQLInfrastructure.csproj ├── SnsApplication.Tests │ ├── SnsApplication.Tests.csproj │ └── Users │ │ └── UserRegisterTest.cs ├── SnsApplication │ ├── Circles │ │ ├── CanNotRegisterCircleException.cs │ │ ├── CircleApplicationService.cs │ │ ├── CircleNotFoundException.cs │ │ ├── Commons │ │ │ └── CircleData.cs │ │ ├── Create │ │ │ ├── CircleCreateCommand.cs │ │ │ └── CircleCreateResult.cs │ │ ├── Delete │ │ │ └── CircleDeleteCommand.cs │ │ ├── Get │ │ │ ├── CircleGetCommand.cs │ │ │ └── CircleGetResult.cs │ │ ├── GetAll │ │ │ └── CircleGetAllResult.cs │ │ ├── GetCandidates │ │ │ ├── CircleGetCandidatesCommand.cs │ │ │ └── CircleGetCandidatesResult.cs │ │ ├── GetSummaries │ │ │ ├── CircleGetSummariesCommand.cs │ │ │ ├── CircleGetSummariesResult.cs │ │ │ └── CircleSummaryData.cs │ │ ├── ICircleQueryService.cs │ │ ├── Join │ │ │ └── CircleJoinCommand.cs │ │ └── Update │ │ │ └── CircleUpdateCommand.cs │ ├── SnsApplication.csproj │ └── Users │ │ ├── CanNotRegisterUserException.cs │ │ ├── Commons │ │ └── UserData.cs │ │ ├── Delete │ │ └── UserDeleteCommand.cs │ │ ├── Get │ │ ├── UserGetCommand.cs │ │ └── UserGetResult.cs │ │ ├── GetAll │ │ └── UserGetAllResult.cs │ │ ├── Register │ │ ├── UserRegisterCommand.cs │ │ └── UserRegisterResult.cs │ │ ├── Update │ │ └── UserUpdateCommand.cs │ │ ├── UserApplicationService.cs │ │ └── UserNotFoundException.cs ├── SnsDomain │ ├── Library │ │ └── Models │ │ │ └── Identity.cs │ ├── Models │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleFullSpecification.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserType.cs │ ├── Services │ │ ├── CircleService.cs │ │ └── UserService.cs │ └── SnsDomain.csproj └── WebApplication │ ├── .gitignore │ ├── ClientApp │ ├── .gitignore │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ └── manifest.json │ ├── src │ │ ├── App.js │ │ ├── App.test.js │ │ ├── App.tsx │ │ ├── components │ │ │ ├── Home.js │ │ │ ├── Home.tsx │ │ │ ├── Layout.js │ │ │ ├── Layout.tsx │ │ │ ├── NavMenu.css │ │ │ ├── NavMenu.js │ │ │ ├── NavMenu.tsx │ │ │ ├── models │ │ │ │ ├── circles │ │ │ │ │ └── CircleResponse.ts │ │ │ │ └── users │ │ │ │ │ └── UserResponse.ts │ │ │ └── pages │ │ │ │ ├── circle │ │ │ │ ├── add │ │ │ │ │ ├── CircleAdd.js │ │ │ │ │ └── CircleAdd.tsx │ │ │ │ ├── detail │ │ │ │ │ └── CircleDetail.tsx │ │ │ │ ├── index │ │ │ │ │ ├── CircleIndex.js │ │ │ │ │ └── CircleIndex.tsx │ │ │ │ ├── member │ │ │ │ │ └── add │ │ │ │ │ │ └── CircleMemberAdd.tsx │ │ │ │ └── update │ │ │ │ │ └── CircleUpdate.tsx │ │ │ │ └── user │ │ │ │ ├── add │ │ │ │ ├── UserAdd.js │ │ │ │ └── UserAdd.tsx │ │ │ │ ├── detail │ │ │ │ └── UserDetail.tsx │ │ │ │ ├── index │ │ │ │ ├── UserIndex.js │ │ │ │ └── UserIndex.tsx │ │ │ │ └── update │ │ │ │ └── UserUpdate.tsx │ │ ├── custom.css │ │ ├── index.js │ │ ├── index.tsx │ │ ├── react-app-env.d.ts │ │ └── registerServiceWorker.js │ └── tsconfig.json │ ├── Config │ └── Dependency │ │ ├── DependencySetupFactory.cs │ │ ├── EFDependencySetup.cs │ │ ├── IDependencySetup.cs │ │ ├── InMemoryModuleDependencySetup.cs │ │ ├── ProductionDepencencySetup.cs │ │ └── SqlConnectionDependencySetup.cs │ ├── Controllers │ ├── CircleController.cs │ ├── HomeController.cs │ ├── SampleDataController.cs │ ├── UserController.cs │ └── WeatherForecastController.cs │ ├── Models │ ├── Circles │ │ ├── Commons │ │ │ └── CircleResponseModel.cs │ │ ├── Get │ │ │ └── CircleGetResponseModel.cs │ │ ├── GetCandidates │ │ │ ├── CircleGetCandidatesRequestModel.cs │ │ │ └── CircleGetCandidatesResponseModel.cs │ │ ├── Index │ │ │ └── CircleIndexResponseModel.cs │ │ ├── JoinMember │ │ │ └── CircleJoinMemberRequestModel.cs │ │ ├── Post │ │ │ ├── CirclePostRequestModel.cs │ │ │ └── CirclePostResponseModel.cs │ │ └── Put │ │ │ └── CirclePutRequestModel.cs │ └── Users │ │ ├── Commons │ │ └── UserResponseModel.cs │ │ ├── Get │ │ └── UserGetResponseModel.cs │ │ ├── Index │ │ └── UserIndexResponseModel.cs │ │ ├── Post │ │ ├── UserPostRequestModel.cs │ │ └── UserPostResponseModel.cs │ │ └── Put │ │ └── UserPutRequestModel.cs │ ├── Pages │ ├── Error.cshtml │ ├── Error.cshtml.cs │ └── _ViewImports.cshtml │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── Startup.cs │ ├── WeatherForecast.cs │ ├── WebApplication.csproj │ ├── appsettings.Development.json │ ├── appsettings.Development.json.bak │ └── appsettings.json ├── Layered_UsingInternal ├── .gitignore ├── CommonLibrary │ ├── CommonLibrary.csproj │ └── Objects │ │ └── ObjectValueStringBuilder.cs ├── EFInfrastructure │ ├── Contexts │ │ └── ItdddDbContext.cs │ ├── EFInfrastructure.csproj │ ├── Migrations │ │ ├── 20191210072139_Initialize.Designer.cs │ │ ├── 20191210072139_Initialize.cs │ │ └── ItdddDbContextModelSnapshot.cs │ ├── Persistence │ │ ├── Circles │ │ │ ├── EFCircleFactory.cs │ │ │ └── EFCircleRepository.cs │ │ ├── DataModels │ │ │ ├── CircleDataModel.cs │ │ │ ├── OwnerCircle.cs │ │ │ ├── UserCircle.cs │ │ │ └── UserDataModel.cs │ │ ├── Shared │ │ │ └── Factory │ │ │ │ └── SimpleIncrementalFactory.cs │ │ └── Users │ │ │ ├── EFUserFactory.cs │ │ │ └── EFUserRepository.cs │ └── QueryService │ │ └── EFQueryService │ │ └── EFCircleQueryService.cs ├── InMemoryInfrastructure │ ├── Foundation │ │ ├── Factory │ │ │ └── SerialNumberAssigner.cs │ │ └── Repository │ │ │ └── InMemoryCrudRepository.cs │ ├── InMemoryInfrastructure.csproj │ ├── Persistence │ │ ├── Circles │ │ │ ├── InMemoryCircleFactory.cs │ │ │ └── InMemoryCircleRepository.cs │ │ └── Users │ │ │ ├── InMemoryUserFactory.cs │ │ │ └── InMemoryUserRepository.cs │ └── QueryService │ │ └── InMemoryCircleQueryService.cs ├── IntroductionToDomainDrivenDesign.sln ├── README.md ├── SQLInfrastructure │ ├── Persistence │ │ ├── Circles │ │ │ ├── SqlCircleBuilder.cs │ │ │ ├── SqlCircleFactory.cs │ │ │ └── SqlCircleRepository.cs │ │ └── Users │ │ │ ├── SqlUserFactory.cs │ │ │ └── SqlUserRepository.cs │ ├── Provider │ │ └── DatabaseConnectionProvider.cs │ ├── QueryService │ │ └── SqlCircleQueryService.cs │ └── SQLInfrastructure.csproj ├── SnsApplication.Tests │ ├── SnsApplication.Tests.csproj │ └── Users │ │ └── UserRegisterTest.cs ├── SnsApplication │ ├── Application │ │ ├── Circles │ │ │ ├── CanNotRegisterCircleException.cs │ │ │ ├── CircleApplicationService.cs │ │ │ ├── CircleNotFoundException.cs │ │ │ ├── Commons │ │ │ │ └── CircleData.cs │ │ │ ├── Create │ │ │ │ ├── CircleCreateCommand.cs │ │ │ │ └── CircleCreateResult.cs │ │ │ ├── Delete │ │ │ │ └── CircleDeleteCommand.cs │ │ │ ├── Get │ │ │ │ ├── CircleGetCommand.cs │ │ │ │ └── CircleGetResult.cs │ │ │ ├── GetAll │ │ │ │ └── CircleGetAllResult.cs │ │ │ ├── GetCandidates │ │ │ │ ├── CircleGetCandidatesCommand.cs │ │ │ │ └── CircleGetCandidatesResult.cs │ │ │ ├── GetSummaries │ │ │ │ ├── CircleGetSummariesCommand.cs │ │ │ │ ├── CircleGetSummariesResult.cs │ │ │ │ └── CircleSummaryData.cs │ │ │ ├── ICircleQueryService.cs │ │ │ ├── Join │ │ │ │ └── CircleJoinCommand.cs │ │ │ └── Update │ │ │ │ └── CircleUpdateCommand.cs │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ ├── UserRegisterCommand.cs │ │ │ └── UserRegisterResult.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── Domain │ │ ├── Library │ │ │ └── Models │ │ │ │ └── Identity.cs │ │ ├── Models │ │ │ ├── Circles │ │ │ │ ├── Circle.cs │ │ │ │ ├── CircleFullException.cs │ │ │ │ ├── CircleFullSpecification.cs │ │ │ │ ├── CircleId.cs │ │ │ │ ├── CircleName.cs │ │ │ │ ├── ICircleFactory.cs │ │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ │ ├── IUserFactory.cs │ │ │ │ ├── IUserRepository.cs │ │ │ │ ├── User.cs │ │ │ │ ├── UserId.cs │ │ │ │ ├── UserName.cs │ │ │ │ └── UserType.cs │ │ └── Services │ │ │ ├── CircleService.cs │ │ │ └── UserService.cs │ └── SnsApplication.csproj └── WebApplication │ ├── .gitignore │ ├── ClientApp │ ├── .gitignore │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ └── manifest.json │ ├── src │ │ ├── App.js │ │ ├── App.test.js │ │ ├── App.tsx │ │ ├── components │ │ │ ├── Home.js │ │ │ ├── Home.tsx │ │ │ ├── Layout.js │ │ │ ├── Layout.tsx │ │ │ ├── NavMenu.css │ │ │ ├── NavMenu.js │ │ │ ├── NavMenu.tsx │ │ │ ├── models │ │ │ │ ├── circles │ │ │ │ │ └── CircleResponse.ts │ │ │ │ └── users │ │ │ │ │ └── UserResponse.ts │ │ │ └── pages │ │ │ │ ├── circle │ │ │ │ ├── add │ │ │ │ │ ├── CircleAdd.js │ │ │ │ │ └── CircleAdd.tsx │ │ │ │ ├── detail │ │ │ │ │ └── CircleDetail.tsx │ │ │ │ ├── index │ │ │ │ │ ├── CircleIndex.js │ │ │ │ │ └── CircleIndex.tsx │ │ │ │ ├── member │ │ │ │ │ └── add │ │ │ │ │ │ └── CircleMemberAdd.tsx │ │ │ │ └── update │ │ │ │ │ └── CircleUpdate.tsx │ │ │ │ └── user │ │ │ │ ├── add │ │ │ │ ├── UserAdd.js │ │ │ │ └── UserAdd.tsx │ │ │ │ ├── detail │ │ │ │ └── UserDetail.tsx │ │ │ │ ├── index │ │ │ │ ├── UserIndex.js │ │ │ │ └── UserIndex.tsx │ │ │ │ └── update │ │ │ │ └── UserUpdate.tsx │ │ ├── custom.css │ │ ├── index.js │ │ ├── index.tsx │ │ ├── react-app-env.d.ts │ │ └── registerServiceWorker.js │ └── tsconfig.json │ ├── Config │ └── Dependency │ │ ├── DependencySetupFactory.cs │ │ ├── EFDependencySetup.cs │ │ ├── IDependencySetup.cs │ │ ├── InMemoryModuleDependencySetup.cs │ │ ├── ProductionDepencencySetup.cs │ │ └── SqlConnectionDependencySetup.cs │ ├── Controllers │ ├── CircleController.cs │ ├── HomeController.cs │ ├── SampleDataController.cs │ ├── UserController.cs │ └── WeatherForecastController.cs │ ├── Models │ ├── Circles │ │ ├── Commons │ │ │ └── CircleResponseModel.cs │ │ ├── Get │ │ │ └── CircleGetResponseModel.cs │ │ ├── GetCandidates │ │ │ ├── CircleGetCandidatesRequestModel.cs │ │ │ └── CircleGetCandidatesResponseModel.cs │ │ ├── Index │ │ │ └── CircleIndexResponseModel.cs │ │ ├── JoinMember │ │ │ └── CircleJoinMemberRequestModel.cs │ │ ├── Post │ │ │ ├── CirclePostRequestModel.cs │ │ │ └── CirclePostResponseModel.cs │ │ └── Put │ │ │ └── CirclePutRequestModel.cs │ └── Users │ │ ├── Commons │ │ └── UserResponseModel.cs │ │ ├── Get │ │ └── UserGetResponseModel.cs │ │ ├── Index │ │ └── UserIndexResponseModel.cs │ │ ├── Post │ │ ├── UserPostRequestModel.cs │ │ └── UserPostResponseModel.cs │ │ └── Put │ │ └── UserPutRequestModel.cs │ ├── Pages │ ├── Error.cshtml │ ├── Error.cshtml.cs │ └── _ViewImports.cshtml │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── Startup.cs │ ├── WeatherForecast.cs │ ├── WebApplication.csproj │ ├── appsettings.Development.json │ ├── appsettings.Development.json.bak │ └── appsettings.json ├── README.md └── SampleCodes ├── Chapter10 ├── .gitignore ├── Chapter10.sln ├── _01 │ ├── Application │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── Domain │ │ └── Models │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _01.csproj ├── _02 │ ├── Application │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── Domain │ │ └── Models │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _02.csproj ├── _03 │ ├── IUserRepository.cs │ ├── MailAddress.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ └── _03.csproj ├── _04 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserRepository.cs │ └── _04.csproj ├── _05 │ ├── Application │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── Domain │ │ └── Models │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _05.csproj ├── _06 │ ├── Application │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── Domain │ │ └── Models │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _06.csproj ├── _07 │ ├── Application │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── Domain │ │ └── Models │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _07.csproj ├── _09 │ ├── UnitOfWork.cs │ └── _09.csproj ├── _10 │ ├── Entity.cs │ ├── UnitOfWork.cs │ └── _10.csproj ├── _11 │ ├── Domain │ │ ├── Models │ │ │ └── Users │ │ │ │ ├── IUserFactory.cs │ │ │ │ ├── IUserRepository.cs │ │ │ │ ├── User.cs │ │ │ │ ├── UserId.cs │ │ │ │ ├── UserName.cs │ │ │ │ └── UserService.cs │ │ └── Shared │ │ │ ├── Entity.cs │ │ │ └── UnitOfWork.cs │ └── _11.csproj ├── _12 │ ├── Application │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── Domain │ │ ├── Models │ │ │ └── Users │ │ │ │ ├── IUserFactory.cs │ │ │ │ ├── IUserRepository.cs │ │ │ │ ├── User.cs │ │ │ │ ├── UserId.cs │ │ │ │ ├── UserName.cs │ │ │ │ └── UserService.cs │ │ └── Shared │ │ │ ├── Entity.cs │ │ │ └── UnitOfWork.cs │ └── _12.csproj ├── _13 │ ├── Domain │ │ ├── Models │ │ │ └── Users │ │ │ │ ├── IUserFactory.cs │ │ │ │ ├── IUserRepository.cs │ │ │ │ ├── User.cs │ │ │ │ ├── UserId.cs │ │ │ │ ├── UserName.cs │ │ │ │ └── UserService.cs │ │ └── Shared │ │ │ └── IUnitOfWork.cs │ ├── Infrastructure │ │ ├── UnitOfWork.cs │ │ └── UserRepository.cs │ └── _13.csproj ├── _14 │ ├── Domain │ │ ├── Models │ │ │ └── Users │ │ │ │ ├── IUserFactory.cs │ │ │ │ ├── IUserRepository.cs │ │ │ │ ├── User.cs │ │ │ │ ├── UserId.cs │ │ │ │ ├── UserName.cs │ │ │ │ └── UserService.cs │ │ └── Shared │ │ │ └── IUnitOfWork.cs │ ├── Infrastructure │ │ ├── UnitOfWork.cs │ │ └── UserRepository.cs │ └── _14.csproj ├── _15 │ ├── Application │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── Domain │ │ ├── Models │ │ │ └── Users │ │ │ │ ├── IUserFactory.cs │ │ │ │ ├── IUserRepository.cs │ │ │ │ ├── User.cs │ │ │ │ ├── UserId.cs │ │ │ │ ├── UserName.cs │ │ │ │ └── UserService.cs │ │ └── Shared │ │ │ └── IUnitOfWork.cs │ └── _15.csproj ├── _16 │ ├── Domain │ │ ├── Models │ │ │ └── Users │ │ │ │ ├── IUserFactory.cs │ │ │ │ ├── IUserRepository.cs │ │ │ │ ├── User.cs │ │ │ │ ├── UserId.cs │ │ │ │ ├── UserName.cs │ │ │ │ └── UserService.cs │ │ └── Shared │ │ │ └── IUnitOfWork.cs │ ├── InMemoryUnitOfWork.cs │ ├── InMemoryUserRepository.cs │ └── _16.csproj └── _17 │ ├── Class1.cs │ ├── InMemoryRepository.cs │ └── _17.csproj ├── Chapter11 ├── .gitignore ├── Chapter11.sln ├── _01 │ ├── CircleId.cs │ └── _01.csproj ├── _02 │ ├── CircleName.cs │ └── _02.csproj ├── _03 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleId.cs │ │ │ └── CircleName.cs │ │ │ └── Users │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ └── UserName.cs │ └── _03.csproj ├── _04 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ └── UserName.cs │ └── _04.csproj ├── _05 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ └── UserName.cs │ └── _05.csproj ├── _06 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ └── UserName.cs │ └── _06.csproj ├── _07 │ ├── SnsApplication │ │ └── Circles │ │ │ └── Create │ │ │ └── CircleCreateCommand.cs │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ └── UserName.cs │ └── _07.csproj ├── _08 │ ├── SnsApplication │ │ ├── Circles │ │ │ ├── CanNotRegisterCircleException.cs │ │ │ ├── CircleApplicationService.cs │ │ │ └── Create │ │ │ │ └── CircleCreateCommand.cs │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _08.csproj ├── _09 │ ├── CircleJoinCommand.cs │ └── _09.csproj ├── _10 │ ├── SnsApplication │ │ ├── Circles │ │ │ ├── CanNotRegisterCircleException.cs │ │ │ ├── CircleApplicationService.cs │ │ │ ├── CircleNotFoundException.cs │ │ │ ├── Create │ │ │ │ └── CircleCreateCommand.cs │ │ │ └── Join │ │ │ │ └── CircleJoinCommand.cs │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _10.csproj ├── _11 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _11.csproj └── _12 │ ├── SnsApplication │ ├── Circles │ │ ├── CanNotRegisterCircleException.cs │ │ ├── CircleApplicationService.cs │ │ ├── CircleNotFoundException.cs │ │ ├── Create │ │ │ └── CircleCreateCommand.cs │ │ ├── Invite │ │ │ └── CircleInviteCommand.cs │ │ └── Join │ │ │ └── CircleJoinCommand.cs │ └── Users │ │ ├── CanNotRegisterUserException.cs │ │ ├── Commons │ │ └── UserData.cs │ │ ├── Delete │ │ └── UserDeleteCommand.cs │ │ ├── Get │ │ ├── UserGetCommand.cs │ │ └── UserGetResult.cs │ │ ├── GetAll │ │ └── UserGetAllResult.cs │ │ ├── Register │ │ └── UserRegisterCommand.cs │ │ ├── Update │ │ └── UserUpdateCommand.cs │ │ ├── UserApplicationService.cs │ │ └── UserNotFoundException.cs │ ├── SnsDomain │ └── Models │ │ ├── CircleInvitations │ │ ├── CircleInvitation.cs │ │ └── ICircleInvitationRepository.cs │ │ ├── Circles │ │ ├── Circle.cs │ │ ├── CircleFullException.cs │ │ ├── CircleId.cs │ │ ├── CircleName.cs │ │ ├── CircleService.cs │ │ ├── ICircleFactory.cs │ │ └── ICircleRepository.cs │ │ └── Users │ │ ├── IUserFactory.cs │ │ ├── IUserRepository.cs │ │ ├── User.cs │ │ ├── UserId.cs │ │ ├── UserName.cs │ │ └── UserService.cs │ └── _12.csproj ├── Chapter12 ├── .gitignore ├── Chapter12.sln ├── _01 │ ├── Program.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _01.csproj ├── _02 │ ├── SnsApplication │ │ ├── Circles │ │ │ ├── CanNotRegisterCircleException.cs │ │ │ ├── CircleApplicationService.cs │ │ │ ├── CircleNotFoundException.cs │ │ │ ├── Create │ │ │ │ └── CircleCreateCommand.cs │ │ │ └── Join │ │ │ │ └── CircleJoinCommand.cs │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _02.csproj ├── _03 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _03.csproj ├── _04 │ ├── Program.cs │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _04.csproj ├── _06 │ ├── SnsApplication │ │ ├── Circles │ │ │ ├── CanNotRegisterCircleException.cs │ │ │ ├── CircleApplicationService.cs │ │ │ ├── CircleNotFoundException.cs │ │ │ ├── Create │ │ │ │ └── CircleCreateCommand.cs │ │ │ └── Join │ │ │ │ └── CircleJoinCommand.cs │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _06.csproj ├── _07 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _07.csproj ├── _08 │ ├── SnsApplication │ │ ├── Circles │ │ │ ├── CanNotRegisterCircleException.cs │ │ │ ├── CircleApplicationService.cs │ │ │ ├── CircleNotFoundException.cs │ │ │ ├── Create │ │ │ │ └── CircleCreateCommand.cs │ │ │ └── Join │ │ │ │ └── CircleJoinCommand.cs │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _08.csproj ├── _09 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _09.csproj ├── _10 │ ├── EFInfrastructure │ │ ├── Contexts │ │ │ └── MyDbContext.cs │ │ └── Persistence │ │ │ ├── DataModels │ │ │ └── UserDataModel.cs │ │ │ └── Users │ │ │ └── EFUserRepository.cs │ ├── SnsDomain │ │ └── Models │ │ │ └── Users │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ └── UserName.cs │ ├── _10.csproj │ └── app.config ├── _11 │ ├── SnsDomain │ │ └── Models │ │ │ └── Users │ │ │ ├── IUserNotification.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ └── UserName.cs │ └── _11.csproj ├── _12 │ ├── EFInfrastructure │ │ ├── Contexts │ │ │ └── MyDbContext.cs │ │ └── Persistence │ │ │ ├── DataModels │ │ │ └── UserDataModel.cs │ │ │ └── Users │ │ │ ├── EFUserRepository.cs │ │ │ └── UserDataModelBuilder.cs │ ├── SnsDomain │ │ └── Models │ │ │ └── Users │ │ │ ├── IUserNotification.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ └── UserName.cs │ ├── _12.csproj │ └── app.config ├── _13 │ ├── SnsDomain │ │ └── Models │ │ │ └── Users │ │ │ ├── IUserNotification.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ └── UserName.cs │ └── _13.csproj ├── _14 │ ├── EFInfrastructure │ │ ├── Contexts │ │ │ └── MyDbContext.cs │ │ └── Persistence │ │ │ ├── DataModels │ │ │ └── UserDataModel.cs │ │ │ └── Users │ │ │ ├── EFUserRepository.cs │ │ │ └── UserDataModelBuilder.cs │ ├── SnsDomain │ │ └── Models │ │ │ └── Users │ │ │ ├── IUserNotification.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ └── UserName.cs │ ├── _14.csproj │ └── app.config ├── _16 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _16.csproj ├── _17 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ ├── SqlInfrastructure │ │ └── Persistence │ │ │ └── Circles │ │ │ └── CircleRepository.cs │ └── _17.csproj ├── _18 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ ├── SqlInfrastructure │ │ └── Persistence │ │ │ └── Circles │ │ │ └── CircleRepository.cs │ └── _18.csproj ├── _19 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _19.csproj ├── _20 │ ├── SnsApplication │ │ ├── Circles │ │ │ ├── CanNotRegisterCircleException.cs │ │ │ ├── CircleApplicationService.cs │ │ │ ├── CircleNotFoundException.cs │ │ │ ├── Create │ │ │ │ └── CircleCreateCommand.cs │ │ │ ├── Join │ │ │ │ └── CircleJoinCommand.cs │ │ │ └── Update │ │ │ │ └── CircleUpdateCommand.cs │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _20.csproj ├── _22 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _22.csproj └── _23 │ ├── SnsDomain │ └── Models │ │ ├── Circles │ │ ├── Circle.cs │ │ ├── CircleFullException.cs │ │ ├── CircleId.cs │ │ ├── CircleName.cs │ │ ├── CircleService.cs │ │ ├── ICircleFactory.cs │ │ └── ICircleRepository.cs │ │ └── Users │ │ ├── IUserFactory.cs │ │ ├── IUserRepository.cs │ │ ├── User.cs │ │ ├── UserId.cs │ │ ├── UserName.cs │ │ └── UserService.cs │ └── _23.csproj ├── Chapter13 ├── .gitignore ├── Chapter13.sln ├── _01 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _01.csproj ├── _02 │ ├── SnsApplication │ │ ├── Circles │ │ │ ├── CanNotRegisterCircleException.cs │ │ │ ├── CircleApplicationService.cs │ │ │ ├── CircleNotFoundException.cs │ │ │ └── Join │ │ │ │ └── CircleJoinCommand.cs │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _02.csproj ├── _03 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _03.csproj ├── _04 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleFullSpecification.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _04.csproj ├── _05 │ ├── SnsApplication │ │ ├── Circles │ │ │ ├── CanNotRegisterCircleException.cs │ │ │ ├── CircleApplicationService.cs │ │ │ ├── CircleNotFoundException.cs │ │ │ └── Join │ │ │ │ └── CircleJoinCommand.cs │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleFullSpecification.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _05.csproj ├── _07 │ ├── SnsDomain │ │ └── Models │ │ │ ├── CircleMembers │ │ │ └── CircleMembers.cs │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleFullSpecification.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _07.csproj ├── _08 │ ├── SnsDomain │ │ └── Models │ │ │ ├── CircleMembers │ │ │ ├── CircleMembers.cs │ │ │ └── CircleMembersFullSpecification.cs │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _08.csproj ├── _09 │ ├── SnsApplication │ │ ├── Circles │ │ │ ├── CanNotRegisterCircleException.cs │ │ │ ├── CircleApplicationService.cs │ │ │ ├── CircleNotFoundException.cs │ │ │ └── Join │ │ │ │ └── CircleJoinCommand.cs │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── SnsDomain │ │ └── Models │ │ │ ├── CircleMembers │ │ │ ├── CircleMembers.cs │ │ │ └── CircleMembersFullSpecification.cs │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _09.csproj ├── _10 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleFullSpecification.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _10.csproj ├── _11 │ ├── SnsApplication │ │ ├── Circles │ │ │ ├── CanNotRegisterCircleException.cs │ │ │ ├── CircleApplicationService.cs │ │ │ ├── CircleNotFoundException.cs │ │ │ ├── GetRecommend │ │ │ │ ├── CircleGetRecommendRequest.cs │ │ │ │ ├── CircleGetRecommendResult.cs │ │ │ │ └── CircleSummaryData.cs │ │ │ └── Join │ │ │ │ └── CircleJoinCommand.cs │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleFullSpecification.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _11.csproj ├── _12 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleFullSpecification.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleRecommendSpecification.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _12.csproj ├── _13 │ ├── SnsApplication │ │ ├── Circles │ │ │ ├── CanNotRegisterCircleException.cs │ │ │ ├── CircleApplicationService.cs │ │ │ ├── CircleNotFoundException.cs │ │ │ └── GetRecommend │ │ │ │ ├── CircleGetRecommendRequest.cs │ │ │ │ ├── CircleGetRecommendResult.cs │ │ │ │ └── CircleSummaryData.cs │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleFullSpecification.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleRecommendSpecification.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _13.csproj ├── _14 │ ├── SnsDomain │ │ ├── Library │ │ │ └── Specifications │ │ │ │ └── ISpecification.cs │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleFullSpecification.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleRecommendSpecification.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _14.csproj ├── _15 │ ├── SnsDomain │ │ ├── Library │ │ │ └── Specifications │ │ │ │ └── ISpecification.cs │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleFullSpecification.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleRecommendSpecification.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _15.csproj ├── _16 │ ├── SnsApplication │ │ ├── Circles │ │ │ ├── CanNotRegisterCircleException.cs │ │ │ ├── CircleApplicationService.cs │ │ │ ├── CircleNotFoundException.cs │ │ │ └── GetRecommend │ │ │ │ ├── CircleGetRecommendRequest.cs │ │ │ │ ├── CircleGetRecommendResult.cs │ │ │ │ └── CircleSummaryData.cs │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── SnsDomain │ │ ├── Library │ │ │ └── Specifications │ │ │ │ └── ISpecification.cs │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleFullSpecification.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleRecommendSpecification.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _16.csproj ├── _17 │ ├── SnsDomain │ │ ├── Library │ │ │ └── Specifications │ │ │ │ └── ISpecification.cs │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleFullSpecification.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ ├── SqlInfrastructure │ │ └── Persistence │ │ │ └── CircleRepository.cs │ └── _17.csproj ├── _18 │ ├── SnsApplication │ │ ├── Circles │ │ │ ├── CanNotRegisterCircleException.cs │ │ │ ├── CircleApplicationService.cs │ │ │ ├── CircleNotFoundException.cs │ │ │ └── GetSummaries │ │ │ │ ├── CircleGetSummariesCommand.cs │ │ │ │ ├── CircleGetSummariesResult.cs │ │ │ │ └── CircleSummaryData.cs │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── SnsDomain │ │ ├── Library │ │ │ └── Specifications │ │ │ │ └── ISpecification.cs │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleFullSpecification.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _18.csproj ├── _19 │ ├── SnsDomain │ │ ├── Library │ │ │ └── Specifications │ │ │ │ └── ISpecification.cs │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleFullSpecification.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ ├── SqlInfrastructure │ │ ├── Provider │ │ │ └── DatabaseConnectionProvider.cs │ │ └── Services │ │ │ └── Circles │ │ │ ├── CircleQueryService.cs │ │ │ └── GetSummaries │ │ │ ├── CircleGetSummariesCommand.cs │ │ │ ├── CircleGetSummariesResult.cs │ │ │ └── CircleSummaryData.cs │ └── _19.csproj ├── _20 │ ├── EFInfrastructure │ │ ├── Contexts │ │ │ └── MyDbContext.cs │ │ ├── Persistence │ │ │ └── DataModels │ │ │ │ ├── CircleDataModel.cs │ │ │ │ ├── OwnerCircle.cs │ │ │ │ ├── UserCircle.cs │ │ │ │ └── UserDataModel.cs │ │ └── Services │ │ │ └── Circles │ │ │ ├── EFCircleQueryService.cs │ │ │ └── GetSummaries │ │ │ ├── CircleGetSummariesCommand.cs │ │ │ ├── CircleGetSummariesResult.cs │ │ │ └── CircleSummaryData.cs │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleFullSpecification.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _20.csproj ├── _21 │ ├── SnsDomain │ │ └── Models │ │ │ ├── Circles │ │ │ ├── Circle.cs │ │ │ ├── CircleFullException.cs │ │ │ ├── CircleFullSpecification.cs │ │ │ ├── CircleId.cs │ │ │ ├── CircleName.cs │ │ │ ├── CircleService.cs │ │ │ ├── ICircleFactory.cs │ │ │ └── ICircleRepository.cs │ │ │ └── Users │ │ │ ├── IUserFactory.cs │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _21.csproj └── _22 │ ├── SnsApplication │ ├── Circles │ │ ├── CanNotRegisterCircleException.cs │ │ ├── CircleApplicationService.cs │ │ ├── CircleNotFoundException.cs │ │ └── GetSummaries │ │ │ ├── CircleGetSummariesCommand.cs │ │ │ ├── CircleGetSummariesResult.cs │ │ │ └── CircleSummaryData.cs │ └── Users │ │ ├── CanNotRegisterUserException.cs │ │ ├── Commons │ │ └── UserData.cs │ │ ├── Delete │ │ └── UserDeleteCommand.cs │ │ ├── Get │ │ ├── UserGetCommand.cs │ │ └── UserGetResult.cs │ │ ├── GetAll │ │ └── UserGetAllResult.cs │ │ ├── Register │ │ └── UserRegisterCommand.cs │ │ ├── Update │ │ └── UserUpdateCommand.cs │ │ ├── UserApplicationService.cs │ │ └── UserNotFoundException.cs │ ├── SnsDomain │ └── Models │ │ ├── Circles │ │ ├── Circle.cs │ │ ├── CircleFullException.cs │ │ ├── CircleFullSpecification.cs │ │ ├── CircleId.cs │ │ ├── CircleName.cs │ │ ├── CircleService.cs │ │ ├── ICircleFactory.cs │ │ └── ICircleRepository.cs │ │ └── Users │ │ ├── IUserFactory.cs │ │ ├── IUserRepository.cs │ │ ├── User.cs │ │ ├── UserId.cs │ │ ├── UserName.cs │ │ └── UserService.cs │ └── _22.csproj ├── Chapter15 ├── .gitignore ├── Chapter15.sln ├── _04 │ ├── _04.csproj │ ├── ユーザ.cs │ └── ユーザ名.cs ├── _05 │ ├── Password.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _05.csproj ├── _06 │ ├── Authenticate │ │ └── Model │ │ │ └── Users │ │ │ ├── Password.cs │ │ │ ├── User.cs │ │ │ └── UserId.cs │ ├── Core │ │ └── Model │ │ │ └── Users │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ └── UserName.cs │ └── _06.csproj ├── _07 │ ├── Authenticate │ │ └── Model │ │ │ └── Users │ │ │ ├── Password.cs │ │ │ ├── User.cs │ │ │ └── UserName.cs │ ├── Core │ │ └── Model │ │ │ └── Users │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ └── UserName.cs │ └── _07.csproj └── _08 │ ├── Authenticate │ └── Model │ │ └── Users │ │ ├── Password.cs │ │ ├── User.cs │ │ └── UserName.cs │ ├── Core │ └── Model │ │ └── Users │ │ ├── User.cs │ │ ├── UserId.cs │ │ └── UserName.cs │ └── _08.csproj ├── Chapter2 ├── .gitignore ├── Chapter2.sln ├── _01 │ ├── Program.cs │ └── _01.csproj ├── _02 │ ├── Program.cs │ └── _02.csproj ├── _03 │ ├── Program.cs │ └── _03.csproj ├── _04 │ ├── FullName.cs │ └── _04.csproj ├── _05 │ ├── FullName.cs │ ├── Program.cs │ └── _05.csproj ├── _06 │ ├── FullName.cs │ ├── Program.cs │ └── _06.csproj ├── _07 │ ├── Program.cs │ └── _07.csproj ├── _08 │ ├── Program.cs │ └── _08.csproj ├── _09 │ ├── Program.cs │ └── _09.csproj ├── _10 │ ├── FullName.cs │ ├── Program.cs │ └── _10.csproj ├── _11 │ ├── Program.cs │ └── _11.csproj ├── _12 │ ├── FullName.cs │ ├── Program.cs │ └── _12.csproj ├── _13 │ ├── Program.cs │ └── _13.csproj ├── _14 │ ├── FullName.cs │ ├── Program.cs │ └── _14.csproj ├── _15 │ ├── FullName.cs │ ├── Program.cs │ └── _15.csproj ├── _16 │ ├── Program.cs │ └── _16.csproj ├── _17 │ ├── FullName.cs │ ├── Program.cs │ └── _17.csproj ├── _18 │ ├── FullName.cs │ └── _18.csproj ├── _19 │ ├── FullName.cs │ ├── Program.cs │ └── _19.csproj ├── _20 │ ├── FullName.cs │ └── _20.csproj ├── _21 │ ├── FirstName.cs │ ├── FullName.cs │ ├── LastName.cs │ └── _21.csproj ├── _22 │ ├── FirstName.cs │ ├── FullName.cs │ ├── LastName.cs │ └── _22.csproj ├── _23 │ ├── FirstName.cs │ ├── FullName.cs │ ├── LastName.cs │ └── _23.csproj ├── _24 │ ├── FullName.cs │ └── _24.csproj ├── _25 │ ├── Name.cs │ └── _25.csproj ├── _26 │ ├── FullName.cs │ ├── Name.cs │ ├── Program.cs │ └── _26.csproj ├── _27 │ ├── Money.cs │ └── _27.csproj ├── _28 │ ├── Money.cs │ └── _28.csproj ├── _29 │ ├── Money.cs │ ├── Program.cs │ └── _29.csproj ├── _30 │ ├── Program.cs │ └── _30.csproj ├── _31 │ ├── Money.cs │ ├── Program.cs │ └── _31.csproj ├── _32 │ ├── Money.cs │ ├── Rate.cs │ └── _32.csproj ├── _33 │ ├── Program.cs │ └── _33.csproj ├── _34 │ ├── AnyClass.cs │ └── _34.csproj ├── _35 │ ├── ModelNumber.cs │ └── _35.csproj ├── _36 │ ├── Program.cs │ └── _36.csproj ├── _37 │ ├── Program.cs │ └── _37.csproj ├── _38 │ ├── UserName.cs │ └── _38.csproj ├── _39 │ ├── UserName.cs │ └── _39.csproj ├── _40 │ ├── UserId.cs │ └── _40.csproj ├── _41 │ ├── UserName.cs │ └── _41.csproj ├── _42 │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _42.csproj ├── _43 │ ├── Program.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _43.csproj ├── _44 │ ├── Program.cs │ ├── User.cs │ └── _44.csproj ├── _45 │ ├── Program.cs │ ├── User.cs │ └── _45.csproj ├── _46 │ ├── UserName.cs │ └── _46.csproj └── _47 │ ├── Program.cs │ ├── User.cs │ ├── UserName.cs │ └── _47.csproj ├── Chapter3 ├── .gitignore ├── Chapter3.sln ├── _01 │ ├── User.cs │ └── _01.csproj ├── _02 │ ├── User.cs │ └── _02.csproj ├── _03 │ ├── MyProgram.cs │ ├── Program.cs │ ├── User.cs │ ├── UserChangeNameRequest.cs │ └── _03.csproj ├── _04 │ ├── User.cs │ ├── UserId.cs │ └── _04.csproj ├── _05 │ ├── User.cs │ ├── UserId.cs │ └── _05.csproj ├── _06 │ ├── User.cs │ ├── UserId.cs │ └── _06.csproj ├── _07 │ ├── MyProgram.cs │ ├── Program.cs │ ├── User.cs │ ├── UserId.cs │ └── _07.csproj ├── _08 │ ├── User.cs │ └── _08.csproj └── _09 │ ├── UserName.cs │ └── _09.csproj ├── Chapter4 ├── .gitignore ├── Chapter4.sln ├── _01 │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _01.csproj ├── _02 │ ├── Program.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _02.csproj ├── _03 │ ├── Program.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _03.csproj ├── _04 │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ ├── _04.csproj │ └── app.config ├── _05 │ ├── Program.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ ├── _05.csproj │ └── app.config ├── _06 │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ └── _06.csproj ├── _07 │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _07.csproj ├── _08 │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _08.csproj ├── _09 │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _09.csproj ├── _10 │ ├── UserId.cs │ ├── UserName.cs │ └── _10.csproj ├── _11 │ ├── EntryPoint.cs │ ├── Program.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ ├── _11.csproj │ └── app.config ├── _12 │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ └── _12.csproj ├── _13 │ ├── Baggage.cs │ ├── BaggageId.cs │ ├── PhysicalDistributionBase.cs │ └── _13.csproj ├── _14 │ ├── Baggage.cs │ ├── BaggageId.cs │ ├── PhysicalDistributionBase.cs │ └── _14.csproj └── _15 │ ├── Baggage.cs │ ├── BaggageId.cs │ ├── PhysicalDistributionBase.cs │ ├── TransportService.cs │ └── _15.csproj ├── Chapter5 ├── .gitignore ├── Chapter5.sln ├── _01 │ ├── Program.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ ├── _01.csproj │ └── app.config ├── _02 │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ └── _02.csproj ├── _03 │ ├── IUserRepository.cs │ ├── Program.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ └── _03.csproj ├── _04 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ └── _04.csproj ├── _05 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _05.csproj ├── _06 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _06.csproj ├── _07 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ └── _07.csproj ├── _08 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _08.csproj ├── _09 │ ├── IUserRepository.cs │ ├── None.cs │ ├── Option.cs │ ├── Some.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _09.csproj ├── _10 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserRepository.cs │ ├── _10.csproj │ └── app.config ├── _11 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserRepository.cs │ ├── _11.csproj │ └── app.config ├── _12 │ ├── EntryPoint.cs │ ├── IUserRepository.cs │ ├── Program.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserRepository.cs │ ├── UserService.cs │ ├── _12.csproj │ └── app.config ├── _13 │ ├── IUserRepository.cs │ ├── InMemoryUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _13.csproj ├── _14 │ ├── IUserRepository.cs │ ├── InMemoryUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _14.csproj ├── _15 │ ├── IUserRepository.cs │ ├── InMemoryUserRepository.cs │ ├── Program.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _15.csproj ├── _16 │ ├── IUserRepository.cs │ ├── InMemoryUserRepository.cs │ ├── Program.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _16.csproj ├── _17 │ ├── EntryPoint.cs │ ├── IUserRepository.cs │ ├── InMemoryUserRepository.cs │ ├── Program.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ └── _17.csproj ├── _18 │ ├── EFUserRepository.cs │ ├── IUserRepository.cs │ ├── MyDbContext.cs │ ├── User.cs │ ├── UserDataModel.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── _18.csproj │ └── app.config ├── _19 │ ├── UserDataModel.cs │ └── _19.csproj ├── _20 │ ├── User.cs │ └── _20.csproj ├── _21 │ ├── EFUserRepository.cs │ ├── EntryPoint.cs │ ├── IUserRepository.cs │ ├── MyDbContext.cs │ ├── Program.cs │ ├── User.cs │ ├── UserDataModel.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ ├── _21.csproj │ └── app.config ├── _22 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _22.csproj ├── _23 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _23.csproj ├── _24 │ ├── Address.cs │ ├── Email.cs │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _24.csproj ├── _25 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _25.csproj ├── _26 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _26.csproj ├── _27 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _27.csproj └── _28 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _28.csproj ├── Chapter6 ├── .gitignore ├── Chapter6.sln ├── _01 │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _01.csproj ├── _02 │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _02.csproj ├── _03 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ └── _03.csproj ├── _04 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _04.csproj ├── _05 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ └── _05.csproj ├── _06 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ └── _06.csproj ├── _07 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ └── _07.csproj ├── _08 │ ├── UserData.cs │ └── _08.csproj ├── _09 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ └── _09.csproj ├── _10 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── MailAddress.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ └── _10.csproj ├── _11 │ ├── User.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _11.csproj ├── _12 │ ├── App.config │ ├── Program.cs │ ├── User.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _12.csproj ├── _13 │ ├── MailAddress.cs │ ├── User.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _13.csproj ├── _14 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── MailAddress.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ └── _14.csproj ├── _15 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserNotFoundException.cs │ ├── UserService.cs │ └── _15.csproj ├── _16 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── MailAddress.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserNotFoundException.cs │ ├── UserService.cs │ └── _16.csproj ├── _17 │ ├── UserUpdateCommand.cs │ └── _17.csproj ├── _18 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── MailAddress.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserNotFoundException.cs │ ├── UserService.cs │ ├── UserUpdateCommand.cs │ └── _18.csproj ├── _19 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── InMemoryUserRepository.cs │ ├── MailAddress.cs │ ├── Program.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserNotFoundException.cs │ ├── UserService.cs │ ├── UserUpdateCommand.cs │ └── _19.csproj ├── _20 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserDeleteCommand.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserNotFoundException.cs │ ├── UserService.cs │ ├── UserUpdateCommand.cs │ └── _20.csproj ├── _21 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserDeleteCommand.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserNotFoundException.cs │ ├── UserService.cs │ ├── UserUpdateCommand.cs │ └── _21.csproj ├── _22 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── MailAddress.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserDeleteCommand.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserNotFoundException.cs │ ├── UserService.cs │ ├── UserUpdateCommand.cs │ └── _22.csproj ├── _23 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── MailAddress.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserDeleteCommand.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserNotFoundException.cs │ ├── UserUpdateCommand.cs │ └── _23.csproj ├── _24 │ ├── IUserRepository.cs │ ├── MailAddress.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _24.csproj ├── _25 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── MailAddress.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserDeleteCommand.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserNotFoundException.cs │ ├── UserUpdateCommand.cs │ └── _25.csproj ├── _26 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── MailAddress.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserDeleteCommand.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserNotFoundException.cs │ ├── UserUpdateCommand.cs │ └── _26.csproj ├── _27 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── MailAddress.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserDeleteCommand.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserNotFoundException.cs │ ├── UserService.cs │ ├── UserUpdateCommand.cs │ └── _27.csproj ├── _28 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── MailAddress.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserDeleteCommand.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserNotFoundException.cs │ ├── UserService.cs │ ├── UserUpdateCommand.cs │ └── _28.csproj ├── _29 │ ├── Class1.cs │ ├── IUserRepository.cs │ ├── MailAddress.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserService.cs │ └── _29.csproj ├── _30 │ ├── LowCohesion.cs │ └── _30.csproj ├── _31 │ ├── HighCohesionA.cs │ ├── HighCohesionB.cs │ └── _31.csproj ├── _32 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserDeleteCommand.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserNotFoundException.cs │ ├── UserRegisterCommand.cs │ ├── UserService.cs │ └── _32.csproj ├── _33 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserRegisterCommand.cs │ ├── UserRegisterService.cs │ ├── UserService.cs │ └── _33.csproj ├── _34 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserDeleteCommand.cs │ ├── UserDeleteService.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserNotFoundException.cs │ ├── UserService.cs │ └── _34.csproj ├── _35 │ ├── IUserRegisterService.cs │ ├── UserRegisterCommand.cs │ └── _35.csproj ├── _36 │ ├── Client.cs │ ├── IUserRegisterService.cs │ ├── UserRegisterCommand.cs │ └── _36.csproj ├── _37 │ ├── IUserRegisterService.cs │ ├── MockUserRegisterService.cs │ ├── UserRegisterCommand.cs │ └── _37.csproj ├── _38 │ ├── ComplexException.cs │ ├── ExceptionUserRegisterService.cs │ ├── IUserRegisterService.cs │ ├── UserRegisterCommand.cs │ └── _38.csproj ├── _39 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserRegisterCommand.cs │ ├── UserService.cs │ └── _39.csproj └── _40 │ ├── CanNotRegisterUserException.cs │ ├── IUserRepository.cs │ ├── MailUtility.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserRegisterCommand.cs │ ├── UserService.cs │ └── _40.csproj ├── Chapter7 ├── .gitignore ├── Chapter7.sln ├── _01 │ ├── ObjectA.cs │ ├── ObjectB.cs │ └── _01.csproj ├── _02 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserRepository.cs │ ├── _02.csproj │ └── app.config ├── _03 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserRepository.cs │ ├── _03.csproj │ └── app.config ├── _04 │ ├── IUserRepository.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _04.csproj ├── _05 │ ├── IUserRepository.cs │ ├── InMemoryUserRepository.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _05.csproj ├── _06 │ ├── IUserRepository.cs │ ├── InMemoryUserRepository.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserRepository.cs │ ├── _06.csproj │ └── app.config ├── _07 │ ├── IUserRepository.cs │ ├── InMemoryUserRepository.cs │ ├── ServiceLocator.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserRepository.cs │ ├── _07.csproj │ └── app.config ├── _08 │ ├── IUserRepository.cs │ ├── InMemoryUserRepository.cs │ ├── Program.cs │ ├── ServiceLocator.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserRepository.cs │ └── _08.csproj ├── _09 │ ├── IUserRepository.cs │ ├── InMemoryUserRepository.cs │ ├── Program.cs │ ├── ServiceLocator.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ ├── UserRepository.cs │ └── _09.csproj ├── _10 │ ├── IUserRepository.cs │ ├── ServiceLocator.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _10.csproj ├── _11 │ ├── IUserRepository.cs │ ├── ServiceLocator.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _11.csproj ├── _12 │ ├── IUserRepository.cs │ ├── InMemoryUserRepository.cs │ ├── Program.cs │ ├── ServiceLocator.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _12.csproj ├── _13 │ ├── IFooRepository.cs │ ├── IUserRepository.cs │ ├── InMemoryUserRepository.cs │ ├── Program.cs │ ├── ServiceLocator.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _13.csproj ├── _14 │ ├── IUserRepository.cs │ ├── InMemoryUserRepository.cs │ ├── Program.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _14.csproj ├── _15 │ ├── IFooRepository.cs │ ├── IUserRepository.cs │ ├── InMemoryUserRepository.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _15.csproj ├── _16 │ ├── IFooRepository.cs │ ├── IUserRepository.cs │ ├── InMemoryUserRepository.cs │ ├── Program.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _16.csproj └── _17 │ ├── IUserRepository.cs │ ├── InMemoryUserRepository.cs │ ├── Program.cs │ ├── ServiceLocator.cs │ ├── User.cs │ ├── UserApplicationService.cs │ ├── UserData.cs │ ├── UserId.cs │ ├── UserName.cs │ └── _17.csproj ├── Chapter8 ├── .gitignore ├── Chapter8.sln ├── _01_to_03 │ ├── Application │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── InMemoryInfrastructure │ │ └── Users │ │ │ └── InMemoryUserRepository.cs │ ├── Library │ │ └── Objects │ │ │ └── ObjectValueStringBuilder.cs │ ├── Models │ │ └── Users │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ ├── Program.cs │ └── _01_to_03.csproj ├── _04_to_12 │ ├── Application │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ ├── UserRegisterCommand.cs │ │ │ └── UserRegisterResult.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── Config │ │ └── Dependency │ │ │ ├── DependencySetupFactory.cs │ │ │ ├── IDependencySetup.cs │ │ │ ├── InMemoryModuleDependencySetup.cs │ │ │ └── SqlConnectionDependencySetup.cs │ ├── Controllers │ │ └── UserController.cs │ ├── InMemoryInfrastructure │ │ └── InMemoryUserRepository.cs │ ├── Library │ │ └── Objects │ │ │ └── ObjectValueStringBuilder.cs │ ├── Models │ │ └── Users │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── SqlInfrastructure │ │ ├── DatabaseConnectionProvider.cs │ │ └── SqlUserRepository.cs │ ├── Startup.cs │ ├── ViewModels │ │ └── Users │ │ │ ├── Commons │ │ │ └── UserResponseModel.cs │ │ │ ├── Get │ │ │ └── UserGetResponseModel.cs │ │ │ ├── Index │ │ │ └── UserIndexResponseModel.cs │ │ │ ├── Post │ │ │ ├── UserPostRequestModel.cs │ │ │ └── UserPostResponseModel.cs │ │ │ └── Put │ │ │ └── UserPutRequestModel.cs │ ├── _04_to_12.csproj │ ├── appsettings.Development.json │ └── appsettings.json ├── _13_to_17.App │ ├── Application │ │ └── Users │ │ │ ├── CanNotRegisterUserException.cs │ │ │ ├── Commons │ │ │ └── UserData.cs │ │ │ ├── Delete │ │ │ └── UserDeleteCommand.cs │ │ │ ├── Get │ │ │ ├── UserGetCommand.cs │ │ │ └── UserGetResult.cs │ │ │ ├── GetAll │ │ │ └── UserGetAllResult.cs │ │ │ ├── Register │ │ │ └── UserRegisterCommand.cs │ │ │ ├── Update │ │ │ └── UserUpdateCommand.cs │ │ │ ├── UserApplicationService.cs │ │ │ └── UserNotFoundException.cs │ ├── InMemoryInfrastructure │ │ └── Users │ │ │ └── InMemoryUserRepository.cs │ ├── Library │ │ └── Objects │ │ │ └── ObjectValueStringBuilder.cs │ ├── Models │ │ └── Users │ │ │ ├── IUserRepository.cs │ │ │ ├── User.cs │ │ │ ├── UserId.cs │ │ │ ├── UserName.cs │ │ │ └── UserService.cs │ └── _13_to_17.App.csproj └── _13_to_17.Tests │ ├── Users │ └── UserRegisterTest.cs │ └── _13_to_17.Tests.csproj └── Chapter9 ├── .gitignore ├── Chapter9.sln ├── _01 ├── User.cs ├── UserId.cs ├── UserName.cs └── _01.csproj ├── _02 ├── User.cs ├── UserId.cs ├── UserName.cs ├── _02.csproj └── app.config ├── _03 ├── IUserFactory.cs ├── User.cs ├── UserId.cs ├── UserName.cs └── _03.csproj ├── _04 ├── IUserFactory.cs ├── User.cs ├── UserFactory.cs ├── UserId.cs ├── UserName.cs ├── _04.csproj └── app.config ├── _05 ├── User.cs ├── UserId.cs ├── UserName.cs └── _05.csproj ├── _06 ├── CanNotRegisterUserException.cs ├── IUserFactory.cs ├── IUserRepository.cs ├── User.cs ├── UserApplicationService.cs ├── UserId.cs ├── UserName.cs ├── UserRegisterCommand.cs ├── UserService.cs └── _06.csproj ├── _07 ├── IUserFactory.cs ├── InMemoryUserFactory.cs ├── User.cs ├── UserId.cs ├── UserName.cs └── _07.csproj ├── _08 ├── SnsDomain │ └── Models │ │ └── Users │ │ ├── IUserFactory.cs │ │ ├── User.cs │ │ ├── UserId.cs │ │ └── UserName.cs └── _08.csproj ├── _09 ├── User.cs ├── UserId.cs ├── UserName.cs └── _09.csproj ├── _10 ├── IUserRepository.cs ├── User.cs ├── UserId.cs ├── UserName.cs └── _10.csproj ├── _11 ├── CanNotRegisterUserException.cs ├── IUserRepository.cs ├── User.cs ├── UserApplicationService.cs ├── UserId.cs ├── UserName.cs ├── UserRegisterCommand.cs ├── UserService.cs └── _11.csproj ├── _12 ├── ApiResponse.cs ├── IUserRepository.cs ├── NumberingApi.cs ├── User.cs ├── UserId.cs ├── UserName.cs ├── UserRepository.cs └── _12.csproj ├── _13 ├── Circle.cs ├── CircleName.cs ├── Program.cs ├── User.cs ├── UserId.cs ├── UserName.cs └── _13.csproj └── _14 ├── Circle.cs ├── CircleName.cs ├── User.cs ├── UserId.cs ├── UserName.cs └── _14.csproj /CleanLike/CommonLibrary/CommonLibrary.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Circles/Create/ICircleCreateInputPort.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Circles.Create 4 | { 5 | public interface ICircleCreateInputPort: IInputPort 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Circles/Delete/CircleDeleteOutputData.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Circles.Delete 4 | { 5 | public class CircleDeleteOutputData : IOutputData 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Circles/Delete/ICircleDeleteInputPort.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Circles.Delete 4 | { 5 | public interface ICircleDeleteInputPort : IInputPort 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Circles/Get/ICIrcleGetInputPort.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Circles.Get 4 | { 5 | public interface ICIrcleGetInputPort : IInputPort 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Circles/GetAll/CircleGetAllInputData.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Circles.GetAll 4 | { 5 | public class CircleGetAllInputData : IInputData 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Circles/GetAll/ICIrcleGetAllInputPort.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Circles.GetAll 4 | { 5 | public interface ICIrcleGetAllInputPort : IInputPort 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Circles/GetCandidates/ICircleGetCandidatesInputPort.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Circles.GetCandidates 4 | { 5 | public interface ICircleGetCandidatesInputPort : IInputPort 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Circles/GetSummaries/ICircleGetSummariesInputPort.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Circles.GetSummaries 4 | { 5 | public interface ICircleGetSummariesInputPort : IInputPort 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Circles/Join/CircleJoinOutputData.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Circles.Join 4 | { 5 | public class CircleJoinOutputData : IOutputData 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Circles/Join/ICircleJoinInputPort.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Circles.Join 4 | { 5 | public interface ICircleJoinInputPort : IInputPort 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Circles/Update/CircleUpdateOutputData.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Circles.Update 4 | { 5 | public class CircleUpdateOutputData : IOutputData 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Circles/Update/ICircleUpdateInputPort.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Circles.Update 4 | { 5 | public interface ICircleUpdateInputPort : IInputPort 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/SnsApplicationPort.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Users/Delete/IUserDeleteInputPort.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Users.Delete 4 | { 5 | public interface IUserDeleteInputPort : IInputPort 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Users/Delete/UserDeleteOutputData.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Users.Delete 4 | { 5 | public class UserDeleteOutputData : IOutputData 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Users/Get/IUserGetInputPort.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Users.Get 4 | { 5 | public interface IUserGetInputPort : IInputPort 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Users/GetAll/IUserGetAllInputPort.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Users.GetAll 4 | { 5 | public interface IUserGetAllInputPort : IInputPort 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Users/GetAll/UserGetAllInputData.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Users.GetAll 4 | { 5 | public class UserGetAllInputData : IInputData 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Users/Register/IUserRegisterInputPort.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Users.Register 4 | { 5 | public interface IUserRegisterInputPort : IInputPort 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Users/Update/IUserUpdateInputPort.cs: -------------------------------------------------------------------------------- 1 |  2 | using ClArc.Sync.Core; 3 | 4 | namespace SnsApplicationPort.Users.Update 5 | { 6 | public interface IUserUpdateInputPort : IInputPort 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /CleanLike/SnsApplicationPort/Users/Update/UserUpdateOutputData.cs: -------------------------------------------------------------------------------- 1 | using ClArc.Sync.Core; 2 | 3 | namespace SnsApplicationPort.Users.Update 4 | { 5 | public class UserUpdateOutputData : IOutputData 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/SnsDomain/Models/Circles/CircleId.cs: -------------------------------------------------------------------------------- 1 | using SnsDomain.Library.Models; 2 | 3 | namespace SnsDomain.Models.Circles 4 | { 5 | public class CircleId : Identity 6 | { 7 | public CircleId(string value) : base(value) 8 | { 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /CleanLike/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using SnsDomain.Models.Users; 2 | 3 | namespace SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /CleanLike/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /CleanLike/SnsDomain/Models/Users/UserType.cs: -------------------------------------------------------------------------------- 1 | namespace SnsDomain.Models.Users 2 | { 3 | public enum UserType 4 | { 5 | Normal, 6 | Premium 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/WebApplication/ClientApp/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nrslib/itddd/37f2e9339337c6d264a5025fd35597b4dfdd61de/CleanLike/WebApplication/ClientApp/public/favicon.ico -------------------------------------------------------------------------------- /CleanLike/WebApplication/ClientApp/src/components/models/circles/CircleResponse.ts: -------------------------------------------------------------------------------- 1 | export default class CircleResponse { 2 | id: string = ''; 3 | name: string = ''; 4 | ownerId: string = ''; 5 | memberIds: string[] = []; 6 | } 7 | -------------------------------------------------------------------------------- /CleanLike/WebApplication/ClientApp/src/components/models/users/UserResponse.ts: -------------------------------------------------------------------------------- 1 | export default class UserResponse { 2 | public id: string = ''; 3 | public name: string = ''; 4 | } 5 | -------------------------------------------------------------------------------- /CleanLike/WebApplication/ClientApp/src/custom.css: -------------------------------------------------------------------------------- 1 | /* Provide sufficient contrast against white background */ 2 | a { 3 | color: #0366d6; 4 | } 5 | 6 | code { 7 | color: #E01A76; 8 | } 9 | 10 | .btn-primary { 11 | color: #fff; 12 | background-color: #1b6ec2; 13 | border-color: #1861ac; 14 | } 15 | -------------------------------------------------------------------------------- /CleanLike/WebApplication/ClientApp/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /CleanLike/WebApplication/Config/Dependency/IDependencySetup.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.DependencyInjection; 2 | 3 | namespace WebApplication.Config.Dependency 4 | { 5 | public interface IDependencySetup 6 | { 7 | void Run(IServiceCollection services); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /CleanLike/WebApplication/Config/Dependency/ProductionDepencencySetup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApplication.Config.Dependency 7 | { 8 | public class ProductionDepencencySetup 9 | { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /CleanLike/WebApplication/Models/Circles/GetCandidates/CircleGetCandidatesRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Circles.GetCandidates 2 | { 3 | public class CircleGetCandidatesRequestModel 4 | { 5 | public int Page { get; set; } 6 | public int Size { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/WebApplication/Models/Circles/JoinMember/CircleJoinMemberRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Circles.JoinMember 2 | { 3 | public class CircleJoinMemberRequestModel 4 | { 5 | public string AddUserId { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /CleanLike/WebApplication/Models/Circles/Post/CirclePostRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Circles.Post 2 | { 3 | public class CirclePostRequestModel 4 | { 5 | public string CircleName { get; set; } 6 | public string OwnerId { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /CleanLike/WebApplication/Models/Circles/Put/CirclePutRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Circles.Put 2 | { 3 | public class CirclePutRequestModel 4 | { 5 | public string Name { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /CleanLike/WebApplication/Models/Users/Post/UserPostRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Users.Post 2 | { 3 | public class UserPostRequestModel 4 | { 5 | public string UserName { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /CleanLike/WebApplication/Models/Users/Put/UserPutRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Users.Put 2 | { 3 | public class UserPutRequestModel 4 | { 5 | public string Name { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /CleanLike/WebApplication/Pages/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using WebApplication 2 | @namespace WebApplication.Pages 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /CleanLike/WebApplication/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "Dependency": { 10 | "SetupName": "InMemoryModuleDependencySetup" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /CleanLike/WebApplication/appsettings.Development.json.bak: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Layered/CommonLibrary/CommonLibrary.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Layered/SnsApplication/Circles/Get/CircleGetCommand.cs: -------------------------------------------------------------------------------- 1 | namespace SnsApplication.Circles.Get 2 | { 3 | public class CircleGetCommand 4 | { 5 | public CircleGetCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Layered/SnsApplication/SnsApplication.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Layered/SnsApplication/Users/Delete/UserDeleteCommand.cs: -------------------------------------------------------------------------------- 1 | namespace SnsApplication.Users.Delete 2 | { 3 | public class UserDeleteCommand 4 | { 5 | public UserDeleteCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Layered/SnsApplication/Users/Get/UserGetCommand.cs: -------------------------------------------------------------------------------- 1 | namespace SnsApplication.Users.Get 2 | { 3 | public class UserGetCommand 4 | { 5 | public UserGetCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Layered/SnsDomain/Models/Circles/CircleId.cs: -------------------------------------------------------------------------------- 1 | using SnsDomain.Library.Models; 2 | 3 | namespace SnsDomain.Models.Circles 4 | { 5 | public class CircleId : Identity 6 | { 7 | public CircleId(string value) : base(value) 8 | { 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Layered/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using SnsDomain.Models.Users; 2 | 3 | namespace SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Layered/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Layered/SnsDomain/Models/Users/UserType.cs: -------------------------------------------------------------------------------- 1 | namespace SnsDomain.Models.Users 2 | { 3 | public enum UserType 4 | { 5 | Normal, 6 | Premium 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Layered/WebApplication/ClientApp/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nrslib/itddd/37f2e9339337c6d264a5025fd35597b4dfdd61de/Layered/WebApplication/ClientApp/public/favicon.ico -------------------------------------------------------------------------------- /Layered/WebApplication/ClientApp/src/components/models/circles/CircleResponse.ts: -------------------------------------------------------------------------------- 1 | export default class CircleResponse { 2 | id: string = ''; 3 | name: string = ''; 4 | ownerId: string = ''; 5 | memberIds: string[] = []; 6 | } 7 | -------------------------------------------------------------------------------- /Layered/WebApplication/ClientApp/src/components/models/users/UserResponse.ts: -------------------------------------------------------------------------------- 1 | export default class UserResponse { 2 | public id: string = ''; 3 | public name: string = ''; 4 | } 5 | -------------------------------------------------------------------------------- /Layered/WebApplication/ClientApp/src/custom.css: -------------------------------------------------------------------------------- 1 | /* Provide sufficient contrast against white background */ 2 | a { 3 | color: #0366d6; 4 | } 5 | 6 | code { 7 | color: #E01A76; 8 | } 9 | 10 | .btn-primary { 11 | color: #fff; 12 | background-color: #1b6ec2; 13 | border-color: #1861ac; 14 | } 15 | -------------------------------------------------------------------------------- /Layered/WebApplication/ClientApp/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /Layered/WebApplication/Config/Dependency/IDependencySetup.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.DependencyInjection; 2 | 3 | namespace WebApplication.Config.Dependency 4 | { 5 | public interface IDependencySetup 6 | { 7 | void Run(IServiceCollection services); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Layered/WebApplication/Config/Dependency/ProductionDepencencySetup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApplication.Config.Dependency 7 | { 8 | public class ProductionDepencencySetup 9 | { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Layered/WebApplication/Models/Circles/GetCandidates/CircleGetCandidatesRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Circles.GetCandidates 2 | { 3 | public class CircleGetCandidatesRequestModel 4 | { 5 | public int Page { get; set; } 6 | public int Size { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Layered/WebApplication/Models/Circles/JoinMember/CircleJoinMemberRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Circles.JoinMember 2 | { 3 | public class CircleJoinMemberRequestModel 4 | { 5 | public string AddUserId { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Layered/WebApplication/Models/Circles/Post/CirclePostRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Circles.Post 2 | { 3 | public class CirclePostRequestModel 4 | { 5 | public string CircleName { get; set; } 6 | public string OwnerId { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Layered/WebApplication/Models/Circles/Put/CirclePutRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Circles.Put 2 | { 3 | public class CirclePutRequestModel 4 | { 5 | public string Name { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Layered/WebApplication/Models/Users/Post/UserPostRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Users.Post 2 | { 3 | public class UserPostRequestModel 4 | { 5 | public string UserName { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Layered/WebApplication/Models/Users/Put/UserPutRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Users.Put 2 | { 3 | public class UserPutRequestModel 4 | { 5 | public string Name { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Layered/WebApplication/Pages/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using WebApplication 2 | @namespace WebApplication.Pages 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /Layered/WebApplication/appsettings.Development.json.bak: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Layered_UsingInternal/CommonLibrary/CommonLibrary.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Layered_UsingInternal/SnsApplication/Domain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using SnsApplication.Domain.Models.Users; 2 | 3 | namespace SnsApplication.Domain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Layered_UsingInternal/SnsApplication/Domain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace SnsApplication.Domain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Layered_UsingInternal/SnsApplication/Domain/Models/Users/UserType.cs: -------------------------------------------------------------------------------- 1 | namespace SnsApplication.Domain.Models.Users 2 | { 3 | public enum UserType 4 | { 5 | Normal, 6 | Premium 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Layered_UsingInternal/WebApplication/ClientApp/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nrslib/itddd/37f2e9339337c6d264a5025fd35597b4dfdd61de/Layered_UsingInternal/WebApplication/ClientApp/public/favicon.ico -------------------------------------------------------------------------------- /Layered_UsingInternal/WebApplication/ClientApp/src/components/models/circles/CircleResponse.ts: -------------------------------------------------------------------------------- 1 | export default class CircleResponse { 2 | id: string = ''; 3 | name: string = ''; 4 | ownerId: string = ''; 5 | memberIds: string[] = []; 6 | } 7 | -------------------------------------------------------------------------------- /Layered_UsingInternal/WebApplication/ClientApp/src/components/models/users/UserResponse.ts: -------------------------------------------------------------------------------- 1 | export default class UserResponse { 2 | public id: string = ''; 3 | public name: string = ''; 4 | } 5 | -------------------------------------------------------------------------------- /Layered_UsingInternal/WebApplication/ClientApp/src/custom.css: -------------------------------------------------------------------------------- 1 | /* Provide sufficient contrast against white background */ 2 | a { 3 | color: #0366d6; 4 | } 5 | 6 | code { 7 | color: #E01A76; 8 | } 9 | 10 | .btn-primary { 11 | color: #fff; 12 | background-color: #1b6ec2; 13 | border-color: #1861ac; 14 | } 15 | -------------------------------------------------------------------------------- /Layered_UsingInternal/WebApplication/ClientApp/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /Layered_UsingInternal/WebApplication/Config/Dependency/IDependencySetup.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.DependencyInjection; 2 | 3 | namespace WebApplication.Config.Dependency 4 | { 5 | public interface IDependencySetup 6 | { 7 | void Run(IServiceCollection services); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Layered_UsingInternal/WebApplication/Models/Circles/GetCandidates/CircleGetCandidatesRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Circles.GetCandidates 2 | { 3 | public class CircleGetCandidatesRequestModel 4 | { 5 | public int Page { get; set; } 6 | public int Size { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Layered_UsingInternal/WebApplication/Models/Circles/JoinMember/CircleJoinMemberRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Circles.JoinMember 2 | { 3 | public class CircleJoinMemberRequestModel 4 | { 5 | public string AddUserId { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Layered_UsingInternal/WebApplication/Models/Circles/Post/CirclePostRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Circles.Post 2 | { 3 | public class CirclePostRequestModel 4 | { 5 | public string CircleName { get; set; } 6 | public string OwnerId { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Layered_UsingInternal/WebApplication/Models/Circles/Put/CirclePutRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Circles.Put 2 | { 3 | public class CirclePutRequestModel 4 | { 5 | public string Name { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Layered_UsingInternal/WebApplication/Models/Users/Post/UserPostRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Users.Post 2 | { 3 | public class UserPostRequestModel 4 | { 5 | public string UserName { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Layered_UsingInternal/WebApplication/Models/Users/Put/UserPutRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace WebApplication.Models.Users.Put 2 | { 3 | public class UserPutRequestModel 4 | { 5 | public string Name { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Layered_UsingInternal/WebApplication/Pages/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using WebApplication 2 | @namespace WebApplication.Pages 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /Layered_UsingInternal/WebApplication/appsettings.Development.json.bak: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_01/Application/Users/Get/UserGetCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _01.Application.Users.Get 2 | { 3 | public class UserGetCommand 4 | { 5 | public UserGetCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_01/Domain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _01.Domain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_01/_01.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_02/Application/Users/Get/UserGetCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _02.Application.Users.Get 2 | { 3 | public class UserGetCommand 4 | { 5 | public UserGetCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_02/Domain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _02.Domain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_02/_02.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_03/_03.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_04/_04.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_05/Application/Users/Get/UserGetCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _05.Application.Users.Get 2 | { 3 | public class UserGetCommand 4 | { 5 | public UserGetCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_05/Domain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _05.Domain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_05/_05.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_06/Application/Users/Get/UserGetCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _06.Application.Users.Get 2 | { 3 | public class UserGetCommand 4 | { 5 | public UserGetCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_06/Domain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _06.Domain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_06/_06.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_07/Application/Users/Get/UserGetCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _07.Application.Users.Get 2 | { 3 | public class UserGetCommand 4 | { 5 | public UserGetCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_07/Domain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _07.Domain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_07/_07.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_09/_09.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_10/_10.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_11/Domain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _11.Domain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_11/_11.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_12/Application/Users/Get/UserGetCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _12.Application.Users.Get 2 | { 3 | public class UserGetCommand 4 | { 5 | public UserGetCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_12/Domain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _12.Domain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_12/_12.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_13/Domain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _13.Domain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_13/Domain/Shared/IUnitOfWork.cs: -------------------------------------------------------------------------------- 1 | using _13.Domain.Models.Users; 2 | 3 | namespace _13.Domain.Shared 4 | { 5 | public interface IUnitOfWork 6 | { 7 | IUserRepository UserRepository { get; } 8 | void Commit(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_13/_13.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_14/Domain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _14.Domain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_14/Domain/Shared/IUnitOfWork.cs: -------------------------------------------------------------------------------- 1 | using _14.Domain.Models.Users; 2 | 3 | namespace _14.Domain.Shared 4 | { 5 | public interface IUnitOfWork 6 | { 7 | IUserRepository UserRepository { get; } 8 | void Commit(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_14/_14.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_15/Application/Users/Get/UserGetCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _15.Application.Users.Get 2 | { 3 | public class UserGetCommand 4 | { 5 | public UserGetCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_15/Domain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _15.Domain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_15/Domain/Shared/IUnitOfWork.cs: -------------------------------------------------------------------------------- 1 | using _15.Domain.Models.Users; 2 | 3 | namespace _15.Domain.Shared 4 | { 5 | public interface IUnitOfWork 6 | { 7 | IUserRepository UserRepository { get; } 8 | void Commit(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_15/_15.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_16/Domain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _16.Domain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_16/Domain/Shared/IUnitOfWork.cs: -------------------------------------------------------------------------------- 1 | using _16.Domain.Models.Users; 2 | 3 | namespace _16.Domain.Shared 4 | { 5 | public interface IUnitOfWork 6 | { 7 | IUserRepository UserRepository { get; } 8 | void Commit(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_16/_16.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_17/Class1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace _17 4 | { 5 | public class Class1 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter10/_17/_17.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_01/_01.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_02/_02.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_03/_03.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_04/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _04.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_04/_04.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_05/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _05.SnsDomain.Models.Users; 2 | 3 | namespace _05.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_05/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _05.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_05/_05.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_06/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _06.SnsDomain.Models.Users; 2 | 3 | namespace _06.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_06/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _06.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_06/_06.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_07/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _07.SnsDomain.Models.Users; 2 | 3 | namespace _07.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_07/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _07.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_07/_07.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_08/SnsApplication/Users/Get/UserGetCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _08.SnsApplication.Users.Get 2 | { 3 | public class UserGetCommand 4 | { 5 | public UserGetCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_08/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _08.SnsDomain.Models.Users; 2 | 3 | namespace _08.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_08/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _08.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_08/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _08.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_08/_08.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_09/_09.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_10/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _10.SnsDomain.Models.Users; 2 | 3 | namespace _10.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_10/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _10.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_10/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _10.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_10/_10.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_11/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _11.SnsDomain.Models.Users; 2 | 3 | namespace _11.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_11/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _11.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_11/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _11.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_11/_11.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_12/SnsDomain/Models/CircleInvitations/ICircleInvitationRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _12.SnsDomain.Models.CircleInvitations 2 | { 3 | public interface ICircleInvitationRepository 4 | { 5 | void Save(CircleInvitation circleInvitation); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_12/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _12.SnsDomain.Models.Users; 2 | 3 | namespace _12.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_12/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _12.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_12/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _12.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter11/_12/_12.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_01/_01.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_02/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _02.SnsDomain.Models.Users; 2 | 3 | namespace _02.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_02/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _02.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_02/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _02.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_02/_02.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_03/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _03.SnsDomain.Models.Users; 2 | 3 | namespace _03.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_03/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _03.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_03/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _03.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_03/_03.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_04/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _04.SnsDomain.Models.Users; 2 | 3 | namespace _04.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_04/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _04.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_04/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _04.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_04/_04.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_06/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _06.SnsDomain.Models.Users; 2 | 3 | namespace _06.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_06/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _06.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_06/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _06.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_06/_06.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_07/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _07.SnsDomain.Models.Users; 2 | 3 | namespace _07.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_07/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _07.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_07/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _07.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_07/_07.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_08/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _08.SnsDomain.Models.Users; 2 | 3 | namespace _08.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_08/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _08.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_08/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _08.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_08/_08.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_09/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _09.SnsDomain.Models.Users; 2 | 3 | namespace _09.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_09/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _09.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_09/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _09.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_09/_09.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_11/SnsDomain/Models/Users/IUserNotification.cs: -------------------------------------------------------------------------------- 1 | namespace _11.SnsDomain.Models.Users 2 | { 3 | public interface IUserNotification 4 | { 5 | void Id(UserId id); 6 | void Name(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_11/_11.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_12/SnsDomain/Models/Users/IUserNotification.cs: -------------------------------------------------------------------------------- 1 | namespace _12.SnsDomain.Models.Users 2 | { 3 | public interface IUserNotification 4 | { 5 | void Id(UserId id); 6 | void Name(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_13/SnsDomain/Models/Users/IUserNotification.cs: -------------------------------------------------------------------------------- 1 | namespace _13.SnsDomain.Models.Users 2 | { 3 | public interface IUserNotification 4 | { 5 | void Id(UserId id); 6 | void Name(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_13/_13.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_14/SnsDomain/Models/Users/IUserNotification.cs: -------------------------------------------------------------------------------- 1 | namespace _14.SnsDomain.Models.Users 2 | { 3 | public interface IUserNotification 4 | { 5 | void Id(UserId id); 6 | void Name(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_16/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _08.SnsDomain.Models.Users; 2 | 3 | namespace _08.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_16/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _08.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_16/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _08.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_16/_16.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_17/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _17.SnsDomain.Models.Users; 2 | 3 | namespace _17.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_17/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _17.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_17/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _17.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_18/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _18.SnsDomain.Models.Users; 2 | 3 | namespace _18.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_18/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _18.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_18/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _18.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_18/_18.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_19/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _18.SnsDomain.Models.Users; 2 | 3 | namespace _18.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_19/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _18.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_19/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _18.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_19/_19.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_20/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _20.SnsDomain.Models.Users; 2 | 3 | namespace _20.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_20/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _20.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_20/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _20.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_20/_20.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_22/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _22.SnsDomain.Models.Users; 2 | 3 | namespace _22.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_22/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _22.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_22/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _22.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_22/_22.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_23/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _22.SnsDomain.Models.Users; 2 | 3 | namespace _22.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_23/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _22.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_23/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _22.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter12/_23/_23.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_01/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _01.SnsDomain.Models.Users; 2 | 3 | namespace _01.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_01/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _01.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_01/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _01.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_01/_01.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_02/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _02.SnsDomain.Models.Users; 2 | 3 | namespace _02.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_02/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _02.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_02/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _02.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_02/_02.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_03/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _03.SnsDomain.Models.Users; 2 | 3 | namespace _03.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_03/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _03.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_03/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _03.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_03/_03.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_04/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _04.SnsDomain.Models.Users; 2 | 3 | namespace _04.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_04/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _04.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_04/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _04.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_04/_04.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_05/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _05.SnsDomain.Models.Users; 2 | 3 | namespace _05.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_05/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _05.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_05/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _05.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_05/_05.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_07/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _07.SnsDomain.Models.Users; 2 | 3 | namespace _07.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_07/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _07.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_07/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _07.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_07/_07.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_08/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _08.SnsDomain.Models.Users; 2 | 3 | namespace _08.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_08/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _08.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_08/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _08.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_08/_08.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_09/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _09.SnsDomain.Models.Users; 2 | 3 | namespace _09.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_09/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _09.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_09/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _09.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_09/_09.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_10/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _10.SnsDomain.Models.Users; 2 | 3 | namespace _10.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_10/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _10.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_10/_10.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_11/SnsApplication/Circles/GetRecommend/CircleGetRecommendRequest.cs: -------------------------------------------------------------------------------- 1 | namespace _11.SnsApplication.Circles.GetRecommend 2 | { 3 | public class CircleGetRecommendRequest 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_11/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _11.SnsDomain.Models.Users; 2 | 3 | namespace _11.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_11/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _11.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_11/_11.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_12/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _12.SnsDomain.Models.Users; 2 | 3 | namespace _12.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_12/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _12.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_12/_12.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_13/SnsApplication/Circles/GetRecommend/CircleGetRecommendRequest.cs: -------------------------------------------------------------------------------- 1 | namespace _13.SnsApplication.Circles.GetRecommend 2 | { 3 | public class CircleGetRecommendRequest 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_13/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _13.SnsDomain.Models.Users; 2 | 3 | namespace _13.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_13/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _13.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_13/_13.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_14/SnsDomain/Library/Specifications/ISpecification.cs: -------------------------------------------------------------------------------- 1 | namespace _14.SnsDomain.Library.Specifications 2 | { 3 | public interface ISpecification 4 | { 5 | public bool IsSatisfiedBy(T value); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_14/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _14.SnsDomain.Models.Users; 2 | 3 | namespace _14.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_14/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _14.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_14/_14.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_15/SnsDomain/Library/Specifications/ISpecification.cs: -------------------------------------------------------------------------------- 1 | namespace _15.SnsDomain.Library.Specifications 2 | { 3 | public interface ISpecification 4 | { 5 | public bool IsSatisfiedBy(T value); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_15/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _15.SnsDomain.Models.Users; 2 | 3 | namespace _15.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_15/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _15.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_15/_15.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_16/SnsApplication/Circles/GetRecommend/CircleGetRecommendRequest.cs: -------------------------------------------------------------------------------- 1 | namespace _16.SnsApplication.Circles.GetRecommend 2 | { 3 | public class CircleGetRecommendRequest 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_16/SnsDomain/Library/Specifications/ISpecification.cs: -------------------------------------------------------------------------------- 1 | namespace _16.SnsDomain.Library.Specifications 2 | { 3 | public interface ISpecification 4 | { 5 | public bool IsSatisfiedBy(T value); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_16/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _16.SnsDomain.Models.Users; 2 | 3 | namespace _16.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_16/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _16.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_16/_16.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_17/SnsDomain/Library/Specifications/ISpecification.cs: -------------------------------------------------------------------------------- 1 | namespace _17.SnsDomain.Library.Specifications 2 | { 3 | public interface ISpecification 4 | { 5 | public bool IsSatisfiedBy(T value); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_17/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _17.SnsDomain.Models.Users; 2 | 3 | namespace _17.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_17/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _17.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_18/SnsDomain/Library/Specifications/ISpecification.cs: -------------------------------------------------------------------------------- 1 | namespace _18.SnsDomain.Library.Specifications 2 | { 3 | public interface ISpecification 4 | { 5 | public bool IsSatisfiedBy(T value); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_18/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _18.SnsDomain.Models.Users; 2 | 3 | namespace _18.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_18/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _18.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_18/_18.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_19/SnsDomain/Library/Specifications/ISpecification.cs: -------------------------------------------------------------------------------- 1 | namespace _19.SnsDomain.Library.Specifications 2 | { 3 | public interface ISpecification 4 | { 5 | public bool IsSatisfiedBy(T value); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_19/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _19.SnsDomain.Models.Users; 2 | 3 | namespace _19.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_19/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _19.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_20/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _20.SnsDomain.Models.Users; 2 | 3 | namespace _20.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_20/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _20.SnsDomain.Models.Circles 2 | { 3 | public interface ICircleRepository 4 | { 5 | void Save(Circle circle); 6 | Circle Find(CircleId id); 7 | Circle Find(CircleName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_20/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _20.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_21/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _20.SnsDomain.Models.Users; 2 | 3 | namespace _20.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_21/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace _20.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleRepository 6 | { 7 | IEnumerable FindAll(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_21/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _20.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_21/_21.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_22/SnsDomain/Models/Circles/ICircleFactory.cs: -------------------------------------------------------------------------------- 1 | using _22.SnsDomain.Models.Users; 2 | 3 | namespace _22.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleFactory 6 | { 7 | Circle Create(CircleName name, User owner); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_22/SnsDomain/Models/Circles/ICircleRepository.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace _22.SnsDomain.Models.Circles 4 | { 5 | public interface ICircleRepository 6 | { 7 | IEnumerable FindAll(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_22/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _22.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter13/_22/_22.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter15/_04/_04.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter15/_04/ユーザ名.cs: -------------------------------------------------------------------------------- 1 | namespace _04 2 | { 3 | public class ユーザ名 4 | { 5 | public ユーザ名(string value) 6 | { 7 | Value = value; 8 | } 9 | 10 | public string Value { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter15/_05/_05.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter15/_06/_06.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter15/_07/_07.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter15/_08/_08.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Library 5 | netcoreapp3.1 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_01/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace _01 4 | { 5 | class Program 6 | { 7 | static void Main(string[] args) 8 | { 9 | var fullName = "naruse masanobu"; 10 | Console.WriteLine(fullName); // naruse masanobu が表示される 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_01/_01.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_02/_02.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_03/_03.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_04/_04.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_05/_05.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_06/_06.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_07/_07.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_08/_08.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_09/_09.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_10/Program.cs: -------------------------------------------------------------------------------- 1 | namespace _10 2 | { 3 | class Program 4 | { 5 | static void Main(string[] args) 6 | { 7 | var fullName = new FullName("masanobu", "naruse"); 8 | fullName.ChangeLastName("sato"); 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_10/_10.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_11/_11.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_12/Program.cs: -------------------------------------------------------------------------------- 1 | namespace _12 2 | { 3 | class Program 4 | { 5 | static void Main(string[] args) 6 | { 7 | var fullName = new FullName("masanobu", "naruse"); 8 | fullName = new FullName("masanobu", "sato"); 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_12/_12.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_13/_13.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_14/_14.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_15/_15.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_16/Program.cs: -------------------------------------------------------------------------------- 1 | namespace _16 2 | { 3 | class Program 4 | { 5 | static void Main(string[] args) 6 | { 7 | // Console.WriteLine(1.Value == 0.Value); // false ? 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_16/_16.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_17/_17.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_18/_18.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_19/_19.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_20/_20.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_21/_21.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_22/_22.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_23/_23.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_24/_24.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_25/_25.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_26/_26.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_27/_27.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_28/_28.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_29/_29.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_30/Program.cs: -------------------------------------------------------------------------------- 1 | namespace _30 2 | { 3 | class Program 4 | { 5 | static void Main(string[] args) 6 | { 7 | var myMoney = 1000m; 8 | var allowance = 3000m; 9 | var result = myMoney + allowance; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_30/_30.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_31/_31.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_32/Rate.cs: -------------------------------------------------------------------------------- 1 | namespace _32 2 | { 3 | class Rate 4 | { 5 | public Rate(decimal value) 6 | { 7 | Value = value; 8 | } 9 | 10 | public decimal Value { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_32/_32.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_33/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace _33 4 | { 5 | class Program 6 | { 7 | static void Main(string[] args) 8 | { 9 | var modelNumber = "a20421-100-1"; 10 | 11 | Console.WriteLine("ModelNumber: " + modelNumber); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_33/_33.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_34/AnyClass.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace _34 4 | { 5 | public class AnyClass 6 | { 7 | void Method(string modelNumber) // かろうじて文字列であることはわかる 8 | { 9 | Console.WriteLine("ModelNumber:" + modelNumber); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_34/_34.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_35/_35.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_36/_36.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_37/_37.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_38/_38.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_39/_39.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_40/_40.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_41/_41.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_42/User.cs: -------------------------------------------------------------------------------- 1 | namespace _42 2 | { 3 | class User 4 | { 5 | public UserId Id { get; set; } 6 | public UserName Name { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_42/_42.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_43/Program.cs: -------------------------------------------------------------------------------- 1 | namespace _43 2 | { 3 | class Program 4 | { 5 | private User CreateUser(UserName name) 6 | { 7 | var user = new User(); 8 | // user.Id = name; // コンパイルエラー! 9 | return user; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_43/User.cs: -------------------------------------------------------------------------------- 1 | namespace _43 2 | { 3 | class User 4 | { 5 | public UserId Id { get; set; } 6 | public UserName Name { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_43/_43.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_44/User.cs: -------------------------------------------------------------------------------- 1 | namespace _44 2 | { 3 | class User 4 | { 5 | public User(string name) 6 | { 7 | Name = name; 8 | } 9 | 10 | public string Name { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_44/_44.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_45/User.cs: -------------------------------------------------------------------------------- 1 | namespace _45 2 | { 3 | class User 4 | { 5 | public User(string name) 6 | { 7 | Name = name; 8 | } 9 | 10 | public string Name { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_45/_45.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_46/_46.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter2/_47/_47.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter3/_01/_01.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter3/_02/_02.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter3/_03/UserChangeNameRequest.cs: -------------------------------------------------------------------------------- 1 | namespace _03 2 | { 3 | class UserChangeNameRequest 4 | { 5 | public string Name { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter3/_03/_03.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter3/_04/_04.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter3/_05/_05.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter3/_06/_06.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter3/_07/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace _07 4 | { 5 | class Program 6 | { 7 | static void Main(string[] args) 8 | { 9 | var program = new MyProgram(); 10 | program.Main(); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /SampleCodes/Chapter3/_07/_07.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter3/_08/User.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace _08 4 | { 5 | class User 6 | { 7 | public string Name { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter3/_08/_08.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter3/_09/_09.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_01/_01.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_02/_02.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_03/_03.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_06/_06.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_07/_07.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_08/_08.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_09/_09.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_10/_10.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_11/EntryPoint.cs: -------------------------------------------------------------------------------- 1 | namespace _11 2 | { 3 | class EntryPoint 4 | { 5 | public static void Main(string[] args) 6 | { 7 | var program = new Program(); 8 | program.CreateUser("test-user"); 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_13/Baggage.cs: -------------------------------------------------------------------------------- 1 | namespace _13 2 | { 3 | class Baggage 4 | { 5 | public Baggage(BaggageId id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public BaggageId Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_13/BaggageId.cs: -------------------------------------------------------------------------------- 1 | namespace _13 2 | { 3 | class BaggageId 4 | { 5 | private readonly string id; 6 | 7 | public BaggageId(string id) 8 | { 9 | this.id = id; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_13/_13.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_14/Baggage.cs: -------------------------------------------------------------------------------- 1 | namespace _14 2 | { 3 | class Baggage 4 | { 5 | public Baggage(BaggageId id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public BaggageId Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_14/BaggageId.cs: -------------------------------------------------------------------------------- 1 | namespace _14 2 | { 3 | class BaggageId 4 | { 5 | private readonly string id; 6 | 7 | public BaggageId(string id) 8 | { 9 | this.id = id; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_14/_14.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_15/Baggage.cs: -------------------------------------------------------------------------------- 1 | namespace _15 2 | { 3 | class Baggage 4 | { 5 | public Baggage(BaggageId id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public BaggageId Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_15/BaggageId.cs: -------------------------------------------------------------------------------- 1 | namespace _15 2 | { 3 | class BaggageId 4 | { 5 | private readonly string id; 6 | 7 | public BaggageId(string id) 8 | { 9 | this.id = id; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter4/_15/_15.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_03/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _03 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | User Find(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_03/_03.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_04/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _04 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | User Find(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_04/_04.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_05/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _05 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | User Find(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_05/_05.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_06/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _05 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | User Find(UserName name); 7 | bool Exists(User user); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_06/_06.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_07/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _07 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | User Find(UserName name); 7 | bool Exists(User user); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_07/_07.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_08/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _08 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | User Find(UserName name); 7 | public bool Exists(UserName name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_08/_08.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_09/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _09 2 | { 3 | public interface IUserRepository 4 | { 5 | void Save(User user); 6 | Option Find(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_09/_09.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_10/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _10 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | User Find(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_11/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _11 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | User Find(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_12/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _12 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | User Find(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_13/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _13 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | User Find(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_13/_13.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Library 5 | netcoreapp3.1 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_14/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _14 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | User Find(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_14/_14.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Library 5 | netcoreapp3.1 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_15/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _15 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | User Find(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_15/_15.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_16/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _16 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | User Find(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_16/_16.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_17/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _17 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | User Find(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_18/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _18 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | User Find(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_19/_19.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_20/_20.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_21/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _21 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | User Find(UserName name); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_22/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _21 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | void Delete(User user); 7 | User Find(UserId id); 8 | User Find(UserName name); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_22/_22.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_23/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _23 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | void UpdateName(UserId id, UserName name); 7 | void Delete(User user); 8 | User Find(UserId id); 9 | User Find(UserName name); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_23/_23.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_24/Address.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace _24 6 | { 7 | class Address 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_24/Email.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace _24 6 | { 7 | class Email 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_24/_24.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_25/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _25 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | void Delete(User user); 7 | User Find(UserId id); 8 | User Find(UserName name); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_25/_25.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_26/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _26 2 | { 3 | interface IUserRepository 4 | { 5 | void Save(User user); 6 | void Delete(User user); 7 | User Find(UserId id); 8 | User Find(UserName name); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_26/_26.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_27/_27.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter5/_28/_28.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_01/_01.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_02/_02.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_03/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _03 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_03/_03.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_04/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _04 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_04/_04.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_05/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _05 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_05/_05.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_06/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _06 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_06/_06.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_07/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _07 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_07/_07.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_08/_08.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_09/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _09 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_09/_09.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_10/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _10 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_10/_10.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | Library 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_11/_11.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_12/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_13/_13.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_14/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _14 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_14/_14.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_15/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _15 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_15/_15.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_16/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _16 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_16/_16.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_17/_17.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_18/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _18 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_18/_18.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_19/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _19 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_19/_19.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_20/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _20 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_20/UserDeleteCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _20 2 | { 3 | public class UserDeleteCommand 4 | { 5 | public UserDeleteCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_20/_20.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Library 5 | netcoreapp3.1 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_21/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _21 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_21/UserDeleteCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _21 2 | { 3 | public class UserDeleteCommand 4 | { 5 | public UserDeleteCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_21/_21.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Library 5 | netcoreapp3.1 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_22/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _22 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_22/UserDeleteCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _22 2 | { 3 | public class UserDeleteCommand 4 | { 5 | public UserDeleteCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_22/_22.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_23/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _23 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_23/UserDeleteCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _23 2 | { 3 | public class UserDeleteCommand 4 | { 5 | public UserDeleteCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_23/_23.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_24/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _24 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | User Find(MailAddress mailAddress); 8 | void Save(User user); 9 | void Delete(User user); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_24/_24.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_25/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _25 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | User Find(MailAddress mailAddress); 8 | void Save(User user); 9 | void Delete(User user); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_25/UserDeleteCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _25 2 | { 3 | public class UserDeleteCommand 4 | { 5 | public UserDeleteCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_25/_25.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_26/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _26 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | User Find(MailAddress mailAddress); 8 | void Save(User user); 9 | void Delete(User user); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_26/UserDeleteCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _26 2 | { 3 | public class UserDeleteCommand 4 | { 5 | public UserDeleteCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_26/_26.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_27/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _27 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | User Find(MailAddress mailAddress); 8 | void Save(User user); 9 | void Delete(User user); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_27/UserDeleteCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _27 2 | { 3 | public class UserDeleteCommand 4 | { 5 | public UserDeleteCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_27/_27.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_28/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _28 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | User Find(MailAddress mailAddress); 8 | void Save(User user); 9 | void Delete(User user); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_28/UserDeleteCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _28 2 | { 3 | public class UserDeleteCommand 4 | { 5 | public UserDeleteCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_28/_28.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_29/Class1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace _29 4 | { 5 | public class Class1 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_29/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _29 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | User Find(MailAddress mailAddress); 8 | void Save(User user); 9 | void Delete(User user); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_29/_29.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_30/_30.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_31/HighCohesionA.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace _31 4 | { 5 | public class HighCohesionA 6 | { 7 | private int value1; 8 | private int value2; 9 | 10 | public int MethodA() 11 | { 12 | return value1 + value2; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_31/_31.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_32/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _32 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_32/UserDeleteCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _32 2 | { 3 | public class UserDeleteCommand 4 | { 5 | public UserDeleteCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_32/UserRegisterCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _32 2 | { 3 | public class UserRegisterCommand 4 | { 5 | public UserRegisterCommand(string name) 6 | { 7 | Name = name; 8 | } 9 | 10 | public string Name { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_32/_32.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_33/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _33 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_33/UserRegisterCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _33 2 | { 3 | public class UserRegisterCommand 4 | { 5 | public UserRegisterCommand(string name) 6 | { 7 | Name = name; 8 | } 9 | 10 | public string Name { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_33/_33.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_34/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _34 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_34/UserDeleteCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _34 2 | { 3 | public class UserDeleteCommand 4 | { 5 | public UserDeleteCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_34/_34.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_35/IUserRegisterService.cs: -------------------------------------------------------------------------------- 1 | namespace _35 2 | { 3 | public interface IUserRegisterService 4 | { 5 | void Handle(UserRegisterCommand command); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_35/UserRegisterCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _35 2 | { 3 | public class UserRegisterCommand 4 | { 5 | public UserRegisterCommand(string name) 6 | { 7 | Name = name; 8 | } 9 | 10 | public string Name { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_35/_35.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_36/IUserRegisterService.cs: -------------------------------------------------------------------------------- 1 | namespace _36 2 | { 3 | public interface IUserRegisterService 4 | { 5 | void Handle(UserRegisterCommand command); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_36/UserRegisterCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _36 2 | { 3 | public class UserRegisterCommand 4 | { 5 | public UserRegisterCommand(string name) 6 | { 7 | Name = name; 8 | } 9 | 10 | public string Name { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_36/_36.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_37/IUserRegisterService.cs: -------------------------------------------------------------------------------- 1 | namespace _37 2 | { 3 | public interface IUserRegisterService 4 | { 5 | void Handle(UserRegisterCommand command); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_37/MockUserRegisterService.cs: -------------------------------------------------------------------------------- 1 | namespace _37 2 | { 3 | public class MockUserRegisterService : IUserRegisterService 4 | { 5 | public void Handle(UserRegisterCommand command) 6 | { 7 | // nop 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_37/UserRegisterCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _37 2 | { 3 | public class UserRegisterCommand 4 | { 5 | public UserRegisterCommand(string name) 6 | { 7 | Name = name; 8 | } 9 | 10 | public string Name { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_37/_37.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_38/ComplexException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace _38 4 | { 5 | public class ComplexException : Exception 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_38/ExceptionUserRegisterService.cs: -------------------------------------------------------------------------------- 1 | namespace _38 2 | { 3 | public class ExceptionUserRegisterService : IUserRegisterService 4 | { 5 | public void Handle(UserRegisterCommand command) 6 | { 7 | throw new ComplexException(); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_38/IUserRegisterService.cs: -------------------------------------------------------------------------------- 1 | namespace _38 2 | { 3 | public interface IUserRegisterService 4 | { 5 | void Handle(UserRegisterCommand command); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_38/UserRegisterCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _38 2 | { 3 | public class UserRegisterCommand 4 | { 5 | public UserRegisterCommand(string name) 6 | { 7 | Name = name; 8 | } 9 | 10 | public string Name { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_38/_38.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_39/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _39 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_39/UserRegisterCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _39 2 | { 3 | public class UserRegisterCommand 4 | { 5 | public UserRegisterCommand(string name) 6 | { 7 | Name = name; 8 | } 9 | 10 | public string Name { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_39/_39.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_40/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _40 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | User Find(UserName name); 7 | void Save(User user); 8 | void Delete(User user); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_40/MailUtility.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace _40 4 | { 5 | public class MailUtility 6 | { 7 | public static void Send(string message) 8 | { 9 | Console.WriteLine(message); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_40/UserRegisterCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _40 2 | { 3 | public class UserRegisterCommand 4 | { 5 | public UserRegisterCommand(string name) 6 | { 7 | Name = name; 8 | } 9 | 10 | public string Name { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter6/_40/_40.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_01/ObjectA.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace _1 4 | { 5 | public class ObjectA 6 | { 7 | private ObjectB objectB; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_01/ObjectB.cs: -------------------------------------------------------------------------------- 1 | namespace _1 2 | { 3 | class ObjectB 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_01/_01.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_02/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _2 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_03/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _3 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_04/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _4 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_04/_04.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_05/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _5 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_05/_05.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_06/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _6 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_07/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _7 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_08/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _8 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_09/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _9 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_10/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _10 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_10/_10.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_11/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _11 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_11/_11.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_12/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _12 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_12/_12.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | Exe 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_13/IFooRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _13 2 | { 3 | public interface IFooRepository 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_13/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _13 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_13/_13.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | Exe 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_14/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _14 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_14/_14.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_15/IFooRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _15 2 | { 3 | public interface IFooRepository 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_15/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _15 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_15/_15.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_16/IFooRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _16 2 | { 3 | public interface IFooRepository 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_16/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _16 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_16/_16.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter7/_17/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _17 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter8/_01_to_03/Application/Users/Get/UserGetCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _01_to_03.Application.Users.Get 2 | { 3 | public class UserGetCommand 4 | { 5 | public UserGetCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter8/_04_to_12/Application/Users/Get/UserGetCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _04_to_12.Application.Users.Get 2 | { 3 | public class UserGetCommand 4 | { 5 | public UserGetCommand(string id) 6 | { 7 | Id = id; 8 | } 9 | 10 | public string Id { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter8/_04_to_12/Config/Dependency/IDependencySetup.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.DependencyInjection; 2 | 3 | namespace _04_to_12.Config.Dependency 4 | { 5 | public interface IDependencySetup 6 | { 7 | void Run(IServiceCollection services); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter8/_04_to_12/ViewModels/Users/Post/UserPostRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace _04_to_12.ViewModels.Users.Post 2 | { 3 | public class UserPostRequestModel 4 | { 5 | public string UserName { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter8/_04_to_12/ViewModels/Users/Put/UserPutRequestModel.cs: -------------------------------------------------------------------------------- 1 | namespace _04_to_12.ViewModels.Users.Put 2 | { 3 | public class UserPutRequestModel 4 | { 5 | public string Name { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter8/_13_to_17.App/_13_to_17.App.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_01/_01.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_03/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _03 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_03/_03.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_04/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _04 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_05/_05.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_06/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _06 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_06/UserRegisterCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _06 2 | { 3 | public class UserRegisterCommand 4 | { 5 | public UserRegisterCommand(string name) 6 | { 7 | Name = name; 8 | } 9 | 10 | public string Name { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_06/_06.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_07/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _07 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_07/_07.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_08/SnsDomain/Models/Users/IUserFactory.cs: -------------------------------------------------------------------------------- 1 | namespace _08.SnsDomain.Models.Users 2 | { 3 | public interface IUserFactory 4 | { 5 | User Create(UserName name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_08/_08.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_09/_09.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_10/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace _10 4 | { 5 | public interface IUserRepository 6 | { 7 | User Find(UserId id); 8 | void Save(User user); 9 | UserId NextIdentity(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_10/_10.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_11/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _11 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | void Save(User user); 7 | UserId NextIdentity(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_11/UserRegisterCommand.cs: -------------------------------------------------------------------------------- 1 | namespace _11 2 | { 3 | public class UserRegisterCommand 4 | { 5 | public UserRegisterCommand(string name) 6 | { 7 | Name = name; 8 | } 9 | 10 | public string Name { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_11/_11.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_12/ApiResponse.cs: -------------------------------------------------------------------------------- 1 | namespace _12 2 | { 3 | class ApiResponse 4 | { 5 | public string NextId 6 | { 7 | get { return "1"; } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_12/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | namespace _12 2 | { 3 | public interface IUserRepository 4 | { 5 | User Find(UserId id); 6 | void Save(User user); 7 | UserId NextIdentity(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_12/NumberingApi.cs: -------------------------------------------------------------------------------- 1 | namespace _12 2 | { 3 | public class NumberingApi 4 | { 5 | public ApiResponse Request() 6 | { 7 | return new ApiResponse(); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_13/_13.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | _13 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleCodes/Chapter9/_14/_14.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | --------------------------------------------------------------------------------