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. |

