├── .gitignore ├── LICENSE ├── NoDuplicates.sln ├── NoDuplicatesDesigns ├── 01_Database │ ├── Product.cs │ ├── ProductRepository.cs │ └── ProductUpdateNameTests.cs ├── 02_DomainService │ ├── Product.cs │ ├── ProductRepository.cs │ ├── ProductService.cs │ └── ProductServiceUpdateNameTests.cs ├── 03_PassDataToMethod │ ├── Product.cs │ ├── ProductRepository.cs │ └── ProductUpdateNameTests.cs ├── 04_MethodInjectionService │ ├── IUniquenessChecker.cs │ ├── Product.cs │ ├── ProductRepository.cs │ ├── ProductUpdateNameTests.cs │ └── UniquessCheckerService.cs ├── 05_MethodInjectionFunction │ ├── Product.cs │ ├── ProductRepository.cs │ └── ProductUpdateNameTests.cs ├── 06_PassFilteredDataToMethod │ ├── Product.cs │ ├── ProductRepository.cs │ └── ProductUpdateNameTests.cs ├── 07_AggregateWithAnemicChildren │ ├── Catalog.cs │ ├── CatalogAddProductTests.cs │ ├── CatalogRepository.cs │ ├── CatalogUpdateProductNameTests.cs │ └── Product.cs ├── 08_AggregateWithDblDispatch │ ├── Catalog.cs │ ├── CatalogAddProductTests.cs │ ├── CatalogRepository.cs │ ├── CatalogUpdateProductNameTests.cs │ └── Product.cs ├── 09_AggregateWithEvents │ ├── Catalog.cs │ ├── CatalogAddProductTests.cs │ ├── CatalogRepository.cs │ ├── CatalogUpdateProductNameTests.cs │ └── Product.cs ├── 10_AggregateWithMediatR │ ├── Catalog.cs │ ├── CatalogAddProductTests.cs │ ├── CatalogRepository.cs │ ├── DomainEvents.cs │ ├── Product.cs │ ├── ProductNameChangeRequested.cs │ └── ProductUpdateNameTests.cs ├── 11_DomainEventsMediatR │ ├── AddProductTests.cs │ ├── DomainEvents.cs │ ├── Product.cs │ ├── ProductNameChangeHandler.cs │ ├── ProductNameChangeRequested.cs │ ├── ProductRepository.cs │ └── ProductUpdateNameTests.cs ├── IAggregateRoot.cs └── NoDuplicatesDesigns.csproj └── README.md /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/LICENSE -------------------------------------------------------------------------------- /NoDuplicates.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicates.sln -------------------------------------------------------------------------------- /NoDuplicatesDesigns/01_Database/Product.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/01_Database/Product.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/01_Database/ProductRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/01_Database/ProductRepository.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/01_Database/ProductUpdateNameTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/01_Database/ProductUpdateNameTests.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/02_DomainService/Product.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/02_DomainService/Product.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/02_DomainService/ProductRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/02_DomainService/ProductRepository.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/02_DomainService/ProductService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/02_DomainService/ProductService.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/02_DomainService/ProductServiceUpdateNameTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/02_DomainService/ProductServiceUpdateNameTests.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/03_PassDataToMethod/Product.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/03_PassDataToMethod/Product.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/03_PassDataToMethod/ProductRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/03_PassDataToMethod/ProductRepository.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/03_PassDataToMethod/ProductUpdateNameTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/03_PassDataToMethod/ProductUpdateNameTests.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/04_MethodInjectionService/IUniquenessChecker.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/04_MethodInjectionService/IUniquenessChecker.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/04_MethodInjectionService/Product.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/04_MethodInjectionService/Product.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/04_MethodInjectionService/ProductRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/04_MethodInjectionService/ProductRepository.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/04_MethodInjectionService/ProductUpdateNameTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/04_MethodInjectionService/ProductUpdateNameTests.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/04_MethodInjectionService/UniquessCheckerService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/04_MethodInjectionService/UniquessCheckerService.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/05_MethodInjectionFunction/Product.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/05_MethodInjectionFunction/Product.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/05_MethodInjectionFunction/ProductRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/05_MethodInjectionFunction/ProductRepository.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/05_MethodInjectionFunction/ProductUpdateNameTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/05_MethodInjectionFunction/ProductUpdateNameTests.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/06_PassFilteredDataToMethod/Product.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/06_PassFilteredDataToMethod/Product.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/06_PassFilteredDataToMethod/ProductRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/06_PassFilteredDataToMethod/ProductRepository.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/06_PassFilteredDataToMethod/ProductUpdateNameTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/06_PassFilteredDataToMethod/ProductUpdateNameTests.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/07_AggregateWithAnemicChildren/Catalog.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/07_AggregateWithAnemicChildren/Catalog.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/07_AggregateWithAnemicChildren/CatalogAddProductTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/07_AggregateWithAnemicChildren/CatalogAddProductTests.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/07_AggregateWithAnemicChildren/CatalogRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/07_AggregateWithAnemicChildren/CatalogRepository.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/07_AggregateWithAnemicChildren/CatalogUpdateProductNameTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/07_AggregateWithAnemicChildren/CatalogUpdateProductNameTests.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/07_AggregateWithAnemicChildren/Product.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/07_AggregateWithAnemicChildren/Product.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/08_AggregateWithDblDispatch/Catalog.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/08_AggregateWithDblDispatch/Catalog.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/08_AggregateWithDblDispatch/CatalogAddProductTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/08_AggregateWithDblDispatch/CatalogAddProductTests.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/08_AggregateWithDblDispatch/CatalogRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/08_AggregateWithDblDispatch/CatalogRepository.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/08_AggregateWithDblDispatch/CatalogUpdateProductNameTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/08_AggregateWithDblDispatch/CatalogUpdateProductNameTests.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/08_AggregateWithDblDispatch/Product.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/08_AggregateWithDblDispatch/Product.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/09_AggregateWithEvents/Catalog.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/09_AggregateWithEvents/Catalog.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/09_AggregateWithEvents/CatalogAddProductTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/09_AggregateWithEvents/CatalogAddProductTests.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/09_AggregateWithEvents/CatalogRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/09_AggregateWithEvents/CatalogRepository.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/09_AggregateWithEvents/CatalogUpdateProductNameTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/09_AggregateWithEvents/CatalogUpdateProductNameTests.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/09_AggregateWithEvents/Product.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/09_AggregateWithEvents/Product.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/10_AggregateWithMediatR/Catalog.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/10_AggregateWithMediatR/Catalog.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/10_AggregateWithMediatR/CatalogAddProductTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/10_AggregateWithMediatR/CatalogAddProductTests.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/10_AggregateWithMediatR/CatalogRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/10_AggregateWithMediatR/CatalogRepository.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/10_AggregateWithMediatR/DomainEvents.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/10_AggregateWithMediatR/DomainEvents.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/10_AggregateWithMediatR/Product.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/10_AggregateWithMediatR/Product.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/10_AggregateWithMediatR/ProductNameChangeRequested.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/10_AggregateWithMediatR/ProductNameChangeRequested.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/10_AggregateWithMediatR/ProductUpdateNameTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/10_AggregateWithMediatR/ProductUpdateNameTests.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/11_DomainEventsMediatR/AddProductTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/11_DomainEventsMediatR/AddProductTests.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/11_DomainEventsMediatR/DomainEvents.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/11_DomainEventsMediatR/DomainEvents.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/11_DomainEventsMediatR/Product.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/11_DomainEventsMediatR/Product.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/11_DomainEventsMediatR/ProductNameChangeHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/11_DomainEventsMediatR/ProductNameChangeHandler.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/11_DomainEventsMediatR/ProductNameChangeRequested.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/11_DomainEventsMediatR/ProductNameChangeRequested.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/11_DomainEventsMediatR/ProductRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/11_DomainEventsMediatR/ProductRepository.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/11_DomainEventsMediatR/ProductUpdateNameTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/11_DomainEventsMediatR/ProductUpdateNameTests.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/IAggregateRoot.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/IAggregateRoot.cs -------------------------------------------------------------------------------- /NoDuplicatesDesigns/NoDuplicatesDesigns.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/NoDuplicatesDesigns/NoDuplicatesDesigns.csproj -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ardalis/DDD-NoDuplicates/HEAD/README.md --------------------------------------------------------------------------------