Concept
Specification Design Pattern | Main concept of Specifications Design Pattern and FluentSpecification. |
Abstraction |
Description of FluentSpecification.Abstractions library content (interfaces) and differences between classic Specification pattern. |
Validation Result |
What information contains SpecificationResult object, and how to use them. |
Core Specifications |
Description of FluentSpecification.Core library content. Core Specifications, abstract types and "utils". |
Common Specifications |
Description of FluentSpecification library content. Common Specifications and Fluent API construction. |
Entity Framework Support | Entity Framework support description. |
Usage
How to start with FluentSpecification.
Description of installation process, how to create Specifications and how to use them.
Installation | Where FluentSpecification can be found and how to install it. |
Building Specifications | How Specifications can be build, with or without Fluent API. |
Candidate Verification | How to check, if Specification is satisfied by candidate. Describes also Validation and Linq scenarios. |
Custom Validation Messages | How to customize or translate Validation messages when Specification is not satisfied by candidate. |
Custom Specifications
This section describes how to create custom specifications, from scratch based on FluentSpecification.Abstractions
or using base Specification classes in FluentSpecification.Core
.
Specification | Custom, normall Specification implementation. |
Validation Specification | Custom Specification implementation for validation scenarios. |
Linq Specification | Custom Specification implementation for Linq. |
Negatable Specification | Special negation handling for custom Specifications. |
All in one |
Custom Specification with IComplexSpecification<T> usage. |
Fluent API extensions | How to create custom extensions to Fluent API. |