├── .gitignore ├── .travis.yml ├── .vscode ├── launch.json ├── settings.json └── tasks.json ├── LICENSE ├── README.md ├── appveyor.yml ├── linqpad └── SimpleTest.linq └── src ├── .axoCover └── settings.json ├── .vscode ├── launch.json ├── settings.json └── tasks.json ├── SpecificationDemo.sln ├── SpecificationDemo ├── Data │ ├── BloggingContext.cs │ ├── BloggingContextSeed.cs │ ├── DbContextLoggingExtensions.cs │ ├── EfReadRepository.cs │ ├── IReadRepository.cs │ ├── ISpecification.cs │ ├── ISpecificationFactory.cs │ ├── InvalidSpecificationException.cs │ ├── SpecificationBuilder.cs │ ├── SpecificationFactory.cs │ └── SpecificationQueryableExtensions.cs ├── Entities │ ├── Blog.cs │ └── Post.cs ├── Services │ ├── BlogService.cs │ └── BlogSpecificationExtensions.cs └── SpecificationDemo.csproj ├── SpecificationDemoBddTest ├── Context │ └── MockDbContext.cs ├── Features │ └── Blogs │ │ └── SearchBlogs.feature ├── SpecificationDemoBddTest.csproj ├── Steps │ ├── Blogs │ │ ├── BlogSteps.cs │ │ └── SearchBlogsSteps.cs │ └── Posts │ │ └── PostSteps.cs └── app.config ├── SpecificationDemoConsole ├── DesignTimeDbContextFactory.cs ├── IEnumerableConversionExtensions.cs ├── Program.cs ├── SpecificationDemoConsole.csproj └── appsettings.json └── SpecificationDemoXunitTest ├── Blogs ├── SearchBlogsMockDbContext.cs └── SearchBlogsTest.cs └── SpecificationDemoXunitTest.csproj /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/.travis.yml -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/.vscode/launch.json -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/.vscode/tasks.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/README.md -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/appveyor.yml -------------------------------------------------------------------------------- /linqpad/SimpleTest.linq: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/linqpad/SimpleTest.linq -------------------------------------------------------------------------------- /src/.axoCover/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/.axoCover/settings.json -------------------------------------------------------------------------------- /src/.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/.vscode/launch.json -------------------------------------------------------------------------------- /src/.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/.vscode/settings.json -------------------------------------------------------------------------------- /src/.vscode/tasks.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/.vscode/tasks.json -------------------------------------------------------------------------------- /src/SpecificationDemo.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemo.sln -------------------------------------------------------------------------------- /src/SpecificationDemo/Data/BloggingContext.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemo/Data/BloggingContext.cs -------------------------------------------------------------------------------- /src/SpecificationDemo/Data/BloggingContextSeed.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemo/Data/BloggingContextSeed.cs -------------------------------------------------------------------------------- /src/SpecificationDemo/Data/DbContextLoggingExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemo/Data/DbContextLoggingExtensions.cs -------------------------------------------------------------------------------- /src/SpecificationDemo/Data/EfReadRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemo/Data/EfReadRepository.cs -------------------------------------------------------------------------------- /src/SpecificationDemo/Data/IReadRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemo/Data/IReadRepository.cs -------------------------------------------------------------------------------- /src/SpecificationDemo/Data/ISpecification.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemo/Data/ISpecification.cs -------------------------------------------------------------------------------- /src/SpecificationDemo/Data/ISpecificationFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemo/Data/ISpecificationFactory.cs -------------------------------------------------------------------------------- /src/SpecificationDemo/Data/InvalidSpecificationException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemo/Data/InvalidSpecificationException.cs -------------------------------------------------------------------------------- /src/SpecificationDemo/Data/SpecificationBuilder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemo/Data/SpecificationBuilder.cs -------------------------------------------------------------------------------- /src/SpecificationDemo/Data/SpecificationFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemo/Data/SpecificationFactory.cs -------------------------------------------------------------------------------- /src/SpecificationDemo/Data/SpecificationQueryableExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemo/Data/SpecificationQueryableExtensions.cs -------------------------------------------------------------------------------- /src/SpecificationDemo/Entities/Blog.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemo/Entities/Blog.cs -------------------------------------------------------------------------------- /src/SpecificationDemo/Entities/Post.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemo/Entities/Post.cs -------------------------------------------------------------------------------- /src/SpecificationDemo/Services/BlogService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemo/Services/BlogService.cs -------------------------------------------------------------------------------- /src/SpecificationDemo/Services/BlogSpecificationExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemo/Services/BlogSpecificationExtensions.cs -------------------------------------------------------------------------------- /src/SpecificationDemo/SpecificationDemo.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemo/SpecificationDemo.csproj -------------------------------------------------------------------------------- /src/SpecificationDemoBddTest/Context/MockDbContext.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemoBddTest/Context/MockDbContext.cs -------------------------------------------------------------------------------- /src/SpecificationDemoBddTest/Features/Blogs/SearchBlogs.feature: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemoBddTest/Features/Blogs/SearchBlogs.feature -------------------------------------------------------------------------------- /src/SpecificationDemoBddTest/SpecificationDemoBddTest.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemoBddTest/SpecificationDemoBddTest.csproj -------------------------------------------------------------------------------- /src/SpecificationDemoBddTest/Steps/Blogs/BlogSteps.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemoBddTest/Steps/Blogs/BlogSteps.cs -------------------------------------------------------------------------------- /src/SpecificationDemoBddTest/Steps/Blogs/SearchBlogsSteps.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemoBddTest/Steps/Blogs/SearchBlogsSteps.cs -------------------------------------------------------------------------------- /src/SpecificationDemoBddTest/Steps/Posts/PostSteps.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemoBddTest/Steps/Posts/PostSteps.cs -------------------------------------------------------------------------------- /src/SpecificationDemoBddTest/app.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemoBddTest/app.config -------------------------------------------------------------------------------- /src/SpecificationDemoConsole/DesignTimeDbContextFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemoConsole/DesignTimeDbContextFactory.cs -------------------------------------------------------------------------------- /src/SpecificationDemoConsole/IEnumerableConversionExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemoConsole/IEnumerableConversionExtensions.cs -------------------------------------------------------------------------------- /src/SpecificationDemoConsole/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemoConsole/Program.cs -------------------------------------------------------------------------------- /src/SpecificationDemoConsole/SpecificationDemoConsole.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemoConsole/SpecificationDemoConsole.csproj -------------------------------------------------------------------------------- /src/SpecificationDemoConsole/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemoConsole/appsettings.json -------------------------------------------------------------------------------- /src/SpecificationDemoXunitTest/Blogs/SearchBlogsMockDbContext.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemoXunitTest/Blogs/SearchBlogsMockDbContext.cs -------------------------------------------------------------------------------- /src/SpecificationDemoXunitTest/Blogs/SearchBlogsTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemoXunitTest/Blogs/SearchBlogsTest.cs -------------------------------------------------------------------------------- /src/SpecificationDemoXunitTest/SpecificationDemoXunitTest.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmgandre/dotnet-specification-pattern/HEAD/src/SpecificationDemoXunitTest/SpecificationDemoXunitTest.csproj --------------------------------------------------------------------------------