< Summary

Line coverage
100%
Covered lines: 200
Uncovered lines: 0
Coverable lines: 200
Total lines: 1477
Line coverage: 100%
Branch coverage
100%
Covered branches: 96
Total branches: 96
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
File 1: WithCacheKey(...)100%11100%
File 1: WithCacheKey(...)100%22100%
File 1: WithCacheKey(...)100%11100%
File 1: WithCacheKey(...)100%22100%
File 2: IgnoreQueryFilters(...)100%11100%
File 2: IgnoreQueryFilters(...)100%22100%
File 2: IgnoreQueryFilters(...)100%11100%
File 2: IgnoreQueryFilters(...)100%22100%
File 2: IgnoreAutoIncludes(...)100%11100%
File 2: IgnoreAutoIncludes(...)100%22100%
File 2: IgnoreAutoIncludes(...)100%11100%
File 2: IgnoreAutoIncludes(...)100%22100%
File 2: AsSplitQuery(...)100%11100%
File 2: AsSplitQuery(...)100%22100%
File 2: AsSplitQuery(...)100%11100%
File 2: AsSplitQuery(...)100%22100%
File 2: AsNoTracking(...)100%11100%
File 2: AsNoTracking(...)100%22100%
File 2: AsNoTracking(...)100%11100%
File 2: AsNoTracking(...)100%22100%
File 2: AsNoTrackingWithIdentityResolution(...)100%11100%
File 2: AsNoTrackingWithIdentityResolution(...)100%22100%
File 2: AsNoTrackingWithIdentityResolution(...)100%11100%
File 2: AsNoTrackingWithIdentityResolution(...)100%22100%
File 2: AsTracking(...)100%11100%
File 2: AsTracking(...)100%22100%
File 2: AsTracking(...)100%11100%
File 2: AsTracking(...)100%22100%
File 3: Include(...)100%11100%
File 3: Include(...)100%22100%
File 3: Include(...)100%11100%
File 3: Include(...)100%22100%
File 3: Include(...)100%11100%
File 3: Include(...)100%22100%
File 3: Include(...)100%11100%
File 3: Include(...)100%22100%
File 3: ThenInclude(...)100%11100%
File 3: ThenInclude(...)100%44100%
File 3: ThenInclude(...)100%11100%
File 3: ThenInclude(...)100%44100%
File 3: ThenInclude(...)100%11100%
File 3: ThenInclude(...)100%44100%
File 3: ThenInclude(...)100%11100%
File 3: ThenInclude(...)100%44100%
File 4: Like(...)100%11100%
File 4: Like(...)100%22100%
File 4: Like(...)100%11100%
File 4: Like(...)100%22100%
File 5: OrderBy(...)100%11100%
File 5: OrderBy(...)100%22100%
File 5: OrderBy(...)100%11100%
File 5: OrderBy(...)100%22100%
File 5: OrderByDescending(...)100%11100%
File 5: OrderByDescending(...)100%22100%
File 5: OrderByDescending(...)100%11100%
File 5: OrderByDescending(...)100%22100%
File 5: ThenBy(...)100%11100%
File 5: ThenBy(...)100%44100%
File 5: ThenBy(...)100%11100%
File 5: ThenBy(...)100%44100%
File 5: ThenByDescending(...)100%11100%
File 5: ThenByDescending(...)100%44100%
File 5: ThenByDescending(...)100%11100%
File 5: ThenByDescending(...)100%44100%
File 6: Take(...)100%11100%
File 6: Take(...)100%22100%
File 6: Take(...)100%11100%
File 6: Take(...)100%22100%
File 6: Skip(...)100%11100%
File 6: Skip(...)100%22100%
File 6: Skip(...)100%11100%
File 6: Skip(...)100%22100%
File 7: Select(...)100%11100%
File 7: SelectMany(...)100%11100%
File 8: TagWith(...)100%11100%
File 8: TagWith(...)100%22100%
File 8: TagWith(...)100%11100%
File 8: TagWith(...)100%22100%
File 9: Where(...)100%11100%
File 9: Where(...)100%22100%
File 9: Where(...)100%11100%
File 9: Where(...)100%22100%

File(s)

/home/runner/work/QuerySpecification/QuerySpecification/src/QuerySpecification/Builders/Builder_Cache.cs

#LineLine coverage
 1namespace Pozitron.QuerySpecification;
 2
 3public static partial class SpecificationBuilderExtensions
 4{
 5    /// <summary>
 6    /// Sets the cache key for the specification.
 7    /// </summary>
 8    /// <typeparam name="T">The type of the entity.</typeparam>
 9    /// <typeparam name="TResult">The type of the result.</typeparam>
 10    /// <param name="builder">The specification builder.</param>
 11    /// <param name="cacheKey">The cache key to be used.</param>
 12    /// <returns>The updated specification builder.</returns>
 13    public static ISpecificationBuilder<T, TResult> WithCacheKey<T, TResult>(
 14        this ISpecificationBuilder<T, TResult> builder,
 15        string cacheKey) where T : class
 16    {
 117        WithCacheKey(builder, cacheKey, true);
 118        return (SpecificationBuilder<T, TResult>)builder;
 19    }
 20
 21    /// <summary>
 22    /// Sets the cache key for the specification.
 23    /// </summary>
 24    /// <typeparam name="T">The type of the entity.</typeparam>
 25    /// <typeparam name="TResult">The type of the result.</typeparam>
 26    /// <param name="builder">The specification builder.</param>
 27    /// <param name="cacheKey">The cache key to be used.</param>
 28    /// <param name="condition">The condition to evaluate.</param>
 29    /// <returns>The updated specification builder.</returns>
 30    public static ISpecificationBuilder<T, TResult> WithCacheKey<T, TResult>(
 31        this ISpecificationBuilder<T, TResult> builder,
 32        string cacheKey,
 33        bool condition) where T : class
 34    {
 235        if (condition)
 36        {
 137            builder.Specification.AddOrUpdateInternal(ItemType.CacheKey, cacheKey);
 38        }
 39
 240        return builder;
 41    }
 42
 43    /// <summary>
 44    /// Sets the cache key for the specification.
 45    /// </summary>
 46    /// <typeparam name="T">The type of the entity.</typeparam>
 47    /// <param name="builder">The specification builder.</param>
 48    /// <param name="cacheKey">The cache key to be used.</param>
 49    /// <returns>The updated specification builder.</returns>
 50    public static ISpecificationBuilder<T> WithCacheKey<T>(
 51        this ISpecificationBuilder<T> builder,
 52        string cacheKey) where T : class
 653        => WithCacheKey(builder, cacheKey, true);
 54
 55    /// <summary>
 56    /// Sets the cache key for the specification.
 57    /// </summary>
 58    /// <typeparam name="T">The type of the entity.</typeparam>
 59    /// <param name="builder">The specification builder.</param>
 60    /// <param name="cacheKey">The cache key to be used.</param>
 61    /// <param name="condition">The condition to evaluate.</param>
 62    /// <returns>The updated specification builder.</returns>
 63    public static ISpecificationBuilder<T> WithCacheKey<T>(
 64        this ISpecificationBuilder<T> builder,
 65        string cacheKey,
 66        bool condition) where T : class
 67    {
 768        if (condition)
 69        {
 670            builder.Specification.AddOrUpdateInternal(ItemType.CacheKey, cacheKey);
 71        }
 72
 773        return builder;
 74    }
 75}

/home/runner/work/QuerySpecification/QuerySpecification/src/QuerySpecification/Builders/Builder_Flags.cs

#LineLine coverage
 1namespace Pozitron.QuerySpecification;
 2
 3/// <summary>
 4/// Extension methods for building specifications.
 5/// </summary>
 6public static partial class SpecificationBuilderExtensions
 7{
 8    /// <summary>
 9    /// Configures the specification to ignore query filters.
 10    /// </summary>
 11    /// <typeparam name="T">The type of the entity.</typeparam>
 12    /// <typeparam name="TResult">The type of the result.</typeparam>
 13    /// <param name="builder">The specification builder.</param>
 14    /// <returns>The updated specification builder.</returns>
 15    public static ISpecificationBuilder<T, TResult> IgnoreQueryFilters<T, TResult>(
 16        this ISpecificationBuilder<T, TResult> builder) where T : class
 517        => IgnoreQueryFilters(builder, true);
 18
 19    /// <summary>
 20    /// Configures the specification to ignore query filters if the condition is true.
 21    /// </summary>
 22    /// <typeparam name="T">The type of the entity.</typeparam>
 23    /// <typeparam name="TResult">The type of the result.</typeparam>
 24    /// <param name="builder">The specification builder.</param>
 25    /// <param name="condition">The condition to evaluate.</param>
 26    /// <returns>The updated specification builder.</returns>
 27    public static ISpecificationBuilder<T, TResult> IgnoreQueryFilters<T, TResult>(
 28        this ISpecificationBuilder<T, TResult> builder,
 29        bool condition) where T : class
 30    {
 631        if (condition)
 32        {
 533            builder.Specification.AddOrUpdateFlag(SpecFlags.IgnoreQueryFilters, true);
 34        }
 635        return builder;
 36    }
 37
 38    /// <summary>
 39    /// Configures the specification to ignore query filters.
 40    /// </summary>
 41    /// <typeparam name="T">The type of the entity.</typeparam>
 42    /// <param name="builder">The specification builder.</param>
 43    /// <returns>The updated specification builder.</returns>
 44    public static ISpecificationBuilder<T> IgnoreQueryFilters<T>(
 45        this ISpecificationBuilder<T> builder) where T : class
 1846        => IgnoreQueryFilters(builder, true);
 47
 48    /// <summary>
 49    /// Configures the specification to ignore query filters if the condition is true.
 50    /// </summary>
 51    /// <typeparam name="T">The type of the entity.</typeparam>
 52    /// <param name="builder">The specification builder.</param>
 53    /// <param name="condition">The condition to evaluate.</param>
 54    /// <returns>The updated specification builder.</returns>
 55    public static ISpecificationBuilder<T> IgnoreQueryFilters<T>(
 56        this ISpecificationBuilder<T> builder,
 57        bool condition) where T : class
 58    {
 1959        if (condition)
 60        {
 1861            builder.Specification.AddOrUpdateFlag(SpecFlags.IgnoreQueryFilters, true);
 62        }
 1963        return builder;
 64    }
 65
 66    /// <summary>
 67    /// Configures the specification to ignore auto includes.
 68    /// </summary>
 69    /// <typeparam name="T">The type of the entity.</typeparam>
 70    /// <typeparam name="TResult">The type of the result.</typeparam>
 71    /// <param name="builder">The specification builder.</param>
 72    /// <returns>The updated specification builder.</returns>
 73    public static ISpecificationBuilder<T, TResult> IgnoreAutoIncludes<T, TResult>(
 74        this ISpecificationBuilder<T, TResult> builder) where T : class
 175        => IgnoreAutoIncludes(builder, true);
 76
 77    /// <summary>
 78    /// Configures the specification to ignore auto includes if the condition is true.
 79    /// </summary>
 80    /// <typeparam name="T">The type of the entity.</typeparam>
 81    /// <typeparam name="TResult">The type of the result.</typeparam>
 82    /// <param name="builder">The specification builder.</param>
 83    /// <param name="condition">The condition to evaluate.</param>
 84    /// <returns>The updated specification builder.</returns>
 85    public static ISpecificationBuilder<T, TResult> IgnoreAutoIncludes<T, TResult>(
 86        this ISpecificationBuilder<T, TResult> builder,
 87        bool condition) where T : class
 88    {
 289        if (condition)
 90        {
 191            builder.Specification.AddOrUpdateFlag(SpecFlags.IgnoreAutoIncludes, true);
 92        }
 293        return builder;
 94    }
 95
 96    /// <summary>
 97    /// Configures the specification to ignore auto includes.
 98    /// </summary>
 99    /// <typeparam name="T">The type of the entity.</typeparam>
 100    /// <param name="builder">The specification builder.</param>
 101    /// <returns>The updated specification builder.</returns>
 102    public static ISpecificationBuilder<T> IgnoreAutoIncludes<T>(
 103        this ISpecificationBuilder<T> builder) where T : class
 4104        => IgnoreAutoIncludes(builder, true);
 105
 106    /// <summary>
 107    /// Configures the specification to ignore auto includes if the condition is true.
 108    /// </summary>
 109    /// <typeparam name="T">The type of the entity.</typeparam>
 110    /// <param name="builder">The specification builder.</param>
 111    /// <param name="condition">The condition to evaluate.</param>
 112    /// <returns>The updated specification builder.</returns>
 113    public static ISpecificationBuilder<T> IgnoreAutoIncludes<T>(
 114        this ISpecificationBuilder<T> builder,
 115        bool condition) where T : class
 116    {
 5117        if (condition)
 118        {
 4119            builder.Specification.AddOrUpdateFlag(SpecFlags.IgnoreAutoIncludes, true);
 120        }
 5121        return builder;
 122    }
 123
 124    /// <summary>
 125    /// Configures the specification to use split queries.
 126    /// </summary>
 127    /// <typeparam name="T">The type of the entity.</typeparam>
 128    /// <typeparam name="TResult">The type of the result.</typeparam>
 129    /// <param name="builder">The specification builder.</param>
 130    /// <returns>The updated specification builder.</returns>
 131    public static ISpecificationBuilder<T, TResult> AsSplitQuery<T, TResult>(
 132        this ISpecificationBuilder<T, TResult> builder) where T : class
 1133        => AsSplitQuery(builder, true);
 134
 135    /// <summary>
 136    /// Configures the specification to use split queries if the condition is true.
 137    /// </summary>
 138    /// <typeparam name="T">The type of the entity.</typeparam>
 139    /// <typeparam name="TResult">The type of the result.</typeparam>
 140    /// <param name="builder">The specification builder.</param>
 141    /// <param name="condition">The condition to evaluate.</param>
 142    /// <returns>The updated specification builder.</returns>
 143    public static ISpecificationBuilder<T, TResult> AsSplitQuery<T, TResult>(
 144        this ISpecificationBuilder<T, TResult> builder,
 145        bool condition) where T : class
 146    {
 2147        if (condition)
 148        {
 1149            builder.Specification.AddOrUpdateFlag(SpecFlags.AsSplitQuery, true);
 150        }
 2151        return builder;
 152    }
 153
 154    /// <summary>
 155    /// Configures the specification to use split queries.
 156    /// </summary>
 157    /// <typeparam name="T">The type of the entity.</typeparam>
 158    /// <param name="builder">The specification builder.</param>
 159    /// <returns>The updated specification builder.</returns>
 160    public static ISpecificationBuilder<T> AsSplitQuery<T>(
 161        this ISpecificationBuilder<T> builder) where T : class
 12162        => AsSplitQuery(builder, true);
 163
 164    /// <summary>
 165    /// Configures the specification to use split queries if the condition is true.
 166    /// </summary>
 167    /// <typeparam name="T">The type of the entity.</typeparam>
 168    /// <param name="builder">The specification builder.</param>
 169    /// <param name="condition">The condition to evaluate.</param>
 170    /// <returns>The updated specification builder.</returns>
 171    public static ISpecificationBuilder<T> AsSplitQuery<T>(
 172        this ISpecificationBuilder<T> builder,
 173        bool condition) where T : class
 174    {
 13175        if (condition)
 176        {
 12177            builder.Specification.AddOrUpdateFlag(SpecFlags.AsSplitQuery, true);
 178        }
 13179        return builder;
 180    }
 181
 182    /// <summary>
 183    /// Configures the specification to apply NoTracking behavior.
 184    /// It will also disable AsNoTrackingWithIdentityResolution and AsTracking flags.
 185    /// </summary>
 186    /// <typeparam name="T">The type of the entity.</typeparam>
 187    /// <typeparam name="TResult">The type of the result.</typeparam>
 188    /// <param name="builder">The specification builder.</param>
 189    /// <returns>The updated specification builder.</returns>
 190    public static ISpecificationBuilder<T, TResult> AsNoTracking<T, TResult>(
 191        this ISpecificationBuilder<T, TResult> builder) where T : class
 1192        => AsNoTracking(builder, true);
 193
 194    /// <summary>
 195    /// Configures the specification to apply NoTracking behavior if the condition is true.
 196    /// It will also disable AsNoTrackingWithIdentityResolution and AsTracking flags.
 197    /// </summary>
 198    /// <typeparam name="T">The type of the entity.</typeparam>
 199    /// <typeparam name="TResult">The type of the result.</typeparam>
 200    /// <param name="builder">The specification builder.</param>
 201    /// <param name="condition">The condition to evaluate.</param>
 202    /// <returns>The updated specification builder.</returns>
 203    public static ISpecificationBuilder<T, TResult> AsNoTracking<T, TResult>(
 204        this ISpecificationBuilder<T, TResult> builder,
 205        bool condition) where T : class
 206    {
 2207        if (condition)
 208        {
 1209            builder.Specification.AddOrUpdateFlag(SpecFlags.AsTracking, false);
 1210            builder.Specification.AddOrUpdateFlag(SpecFlags.AsNoTrackingWithIdentityResolution, false);
 1211            builder.Specification.AddOrUpdateFlag(SpecFlags.AsNoTracking, true);
 212        }
 2213        return builder;
 214    }
 215
 216    /// <summary>
 217    /// Configures the specification to apply NoTracking behavior.
 218    /// It will also disable AsNoTrackingWithIdentityResolution and AsTracking flags.
 219    /// </summary>
 220    /// <typeparam name="T">The type of the entity.</typeparam>
 221    /// <param name="builder">The specification builder.</param>
 222    /// <returns>The updated specification builder.</returns>
 223    public static ISpecificationBuilder<T> AsNoTracking<T>(
 224        this ISpecificationBuilder<T> builder) where T : class
 16225        => AsNoTracking(builder, true);
 226
 227    /// <summary>
 228    /// Configures the specification to apply NoTracking behavior if the condition is true.
 229    /// It will also disable AsNoTrackingWithIdentityResolution and AsTracking flags.
 230    /// </summary>
 231    /// <typeparam name="T">The type of the entity.</typeparam>
 232    /// <param name="builder">The specification builder.</param>
 233    /// <param name="condition">The condition to evaluate.</param>
 234    /// <returns>The updated specification builder.</returns>
 235    public static ISpecificationBuilder<T> AsNoTracking<T>(
 236        this ISpecificationBuilder<T> builder,
 237        bool condition) where T : class
 238    {
 17239        if (condition)
 240        {
 16241            builder.Specification.AddOrUpdateFlag(SpecFlags.AsTracking, false);
 16242            builder.Specification.AddOrUpdateFlag(SpecFlags.AsNoTrackingWithIdentityResolution, false);
 16243            builder.Specification.AddOrUpdateFlag(SpecFlags.AsNoTracking, true);
 244        }
 17245        return builder;
 246    }
 247
 248    /// <summary>
 249    /// Configures the specification to apply AsNoTrackingWithIdentityResolution behavior.
 250    /// It will also disable AsNoTracking and AsTracking flags.
 251    /// </summary>
 252    /// <typeparam name="T">The type of the entity.</typeparam>
 253    /// <typeparam name="TResult">The type of the result.</typeparam>
 254    /// <param name="builder">The specification builder.</param>
 255    /// <returns>The updated specification builder.</returns>
 256    public static ISpecificationBuilder<T, TResult> AsNoTrackingWithIdentityResolution<T, TResult>(
 257        this ISpecificationBuilder<T, TResult> builder) where T : class
 1258        => AsNoTrackingWithIdentityResolution(builder, true);
 259
 260    /// <summary>
 261    /// Configures the specification to apply AsNoTrackingWithIdentityResolution behavior if the condition is true.
 262    /// It will also disable AsNoTracking and AsTracking flags.
 263    /// </summary>
 264    /// <typeparam name="T">The type of the entity.</typeparam>
 265    /// <typeparam name="TResult">The type of the result.</typeparam>
 266    /// <param name="builder">The specification builder.</param>
 267    /// <param name="condition">The condition to evaluate.</param>
 268    /// <returns>The updated specification builder.</returns>
 269    public static ISpecificationBuilder<T, TResult> AsNoTrackingWithIdentityResolution<T, TResult>(
 270        this ISpecificationBuilder<T, TResult> builder,
 271        bool condition) where T : class
 272    {
 2273        if (condition)
 274        {
 1275            builder.Specification.AddOrUpdateFlag(SpecFlags.AsNoTracking, false);
 1276            builder.Specification.AddOrUpdateFlag(SpecFlags.AsTracking, false);
 1277            builder.Specification.AddOrUpdateFlag(SpecFlags.AsNoTrackingWithIdentityResolution, true);
 278        }
 2279        return builder;
 280    }
 281
 282    /// <summary>
 283    /// Configures the specification to apply AsNoTrackingWithIdentityResolution behavior.
 284    /// It will also disable AsNoTracking and AsTracking flags.
 285    /// </summary>
 286    /// <typeparam name="T">The type of the entity.</typeparam>
 287    /// <param name="builder">The specification builder.</param>
 288    /// <returns>The updated specification builder.</returns>
 289    public static ISpecificationBuilder<T> AsNoTrackingWithIdentityResolution<T>(
 290        this ISpecificationBuilder<T> builder) where T : class
 9291        => AsNoTrackingWithIdentityResolution(builder, true);
 292
 293    /// <summary>
 294    /// Configures the specification to apply AsNoTrackingWithIdentityResolution behavior if the condition is true.
 295    /// It will also disable AsNoTracking and AsTracking flags.
 296    /// </summary>
 297    /// <typeparam name="T">The type of the entity.</typeparam>
 298    /// <param name="builder">The specification builder.</param>
 299    /// <param name="condition">The condition to evaluate.</param>
 300    /// <returns>The updated specification builder.</returns>
 301    public static ISpecificationBuilder<T> AsNoTrackingWithIdentityResolution<T>(
 302        this ISpecificationBuilder<T> builder,
 303        bool condition) where T : class
 304    {
 10305        if (condition)
 306        {
 9307            builder.Specification.AddOrUpdateFlag(SpecFlags.AsNoTracking, false);
 9308            builder.Specification.AddOrUpdateFlag(SpecFlags.AsTracking, false);
 9309            builder.Specification.AddOrUpdateFlag(SpecFlags.AsNoTrackingWithIdentityResolution, true);
 310        }
 10311        return builder;
 312    }
 313
 314    /// <summary>
 315    /// Configures the specification to apply AsTracking behavior.
 316    /// It will also disable AsNoTrackingWithIdentityResolution and AsNoTracking flags.
 317    /// </summary>
 318    /// <typeparam name="T">The type of the entity.</typeparam>
 319    /// <typeparam name="TResult">The type of the result.</typeparam>
 320    /// <param name="builder">The specification builder.</param>
 321    /// <returns>The updated specification builder.</returns>
 322    public static ISpecificationBuilder<T, TResult> AsTracking<T, TResult>(
 323        this ISpecificationBuilder<T, TResult> builder) where T : class
 1324        => AsTracking(builder, true);
 325
 326    /// <summary>
 327    /// Configures the specification to apply AsTracking behavior if the condition is true.
 328    /// It will also disable AsNoTrackingWithIdentityResolution and AsNoTracking flags.
 329    /// </summary>
 330    /// <typeparam name="T">The type of the entity.</typeparam>
 331    /// <typeparam name="TResult">The type of the result.</typeparam>
 332    /// <param name="builder">The specification builder.</param>
 333    /// <param name="condition">The condition to evaluate.</param>
 334    /// <returns>The updated specification builder.</returns>
 335    public static ISpecificationBuilder<T, TResult> AsTracking<T, TResult>(
 336        this ISpecificationBuilder<T, TResult> builder,
 337        bool condition) where T : class
 338    {
 2339        if (condition)
 340        {
 1341            builder.Specification.AddOrUpdateFlag(SpecFlags.AsNoTracking, false);
 1342            builder.Specification.AddOrUpdateFlag(SpecFlags.AsNoTrackingWithIdentityResolution, false);
 1343            builder.Specification.AddOrUpdateFlag(SpecFlags.AsTracking, true);
 344        }
 2345        return builder;
 346    }
 347
 348    /// <summary>
 349    /// Configures the specification to apply AsTracking behavior.
 350    /// It will also disable AsNoTrackingWithIdentityResolution and AsNoTracking flags.
 351    /// </summary>
 352    /// <typeparam name="T">The type of the entity.</typeparam>
 353    /// <param name="builder">The specification builder.</param>
 354    /// <returns>The updated specification builder.</returns>
 355    public static ISpecificationBuilder<T> AsTracking<T>(
 356        this ISpecificationBuilder<T> builder) where T : class
 9357        => AsTracking(builder, true);
 358
 359    /// <summary>
 360    /// Configures the specification to apply AsTracking behavior if the condition is true.
 361    /// It will also disable AsNoTrackingWithIdentityResolution and AsNoTracking flags.
 362    /// </summary>
 363    /// <typeparam name="T">The type of the entity.</typeparam>
 364    /// <param name="builder">The specification builder.</param>
 365    /// <param name="condition">The condition to evaluate.</param>
 366    /// <returns>The updated specification builder.</returns>
 367    public static ISpecificationBuilder<T> AsTracking<T>(
 368        this ISpecificationBuilder<T> builder,
 369        bool condition) where T : class
 370    {
 10371        if (condition)
 372        {
 9373            builder.Specification.AddOrUpdateFlag(SpecFlags.AsNoTracking, false);
 9374            builder.Specification.AddOrUpdateFlag(SpecFlags.AsNoTrackingWithIdentityResolution, false);
 9375            builder.Specification.AddOrUpdateFlag(SpecFlags.AsTracking, true);
 376        }
 10377        return builder;
 378    }
 379}

/home/runner/work/QuerySpecification/QuerySpecification/src/QuerySpecification/Builders/Builder_Include.cs

#LineLine coverage
 1namespace Pozitron.QuerySpecification;
 2
 3public static partial class SpecificationBuilderExtensions
 4{
 5    /// <summary>
 6    /// Adds an Include clause to the specification.
 7    /// </summary>
 8    /// <typeparam name="T">The type of the entity.</typeparam>
 9    /// <typeparam name="TResult">The type of the result.</typeparam>
 10    /// <param name="builder">The specification builder.</param>
 11    /// <param name="includeString">The include string.</param>
 12    /// <returns>The updated specification builder.</returns>
 13    public static ISpecificationBuilder<T, TResult> Include<T, TResult>(
 14        this ISpecificationBuilder<T, TResult> builder,
 15        string includeString) where T : class
 716        => Include(builder, includeString, true);
 17
 18    /// <summary>
 19    /// Adds an Include clause to the specification if the condition is true.
 20    /// </summary>
 21    /// <typeparam name="T">The type of the entity.</typeparam>
 22    /// <typeparam name="TResult">The type of the result.</typeparam>
 23    /// <param name="builder">The specification builder.</param>
 24    /// <param name="includeString">The include string.</param>
 25    /// <param name="condition">The condition to evaluate.</param>
 26    /// <returns>The updated specification builder.</returns>
 27    public static ISpecificationBuilder<T, TResult> Include<T, TResult>(
 28        this ISpecificationBuilder<T, TResult> builder,
 29        string includeString,
 30        bool condition) where T : class
 31    {
 832        if (condition)
 33        {
 734            builder.Specification.AddInternal(ItemType.IncludeString, includeString);
 35        }
 836        return builder;
 37    }
 38
 39    /// <summary>
 40    /// Adds an Include clause to the specification.
 41    /// </summary>
 42    /// <typeparam name="T">The type of the entity.</typeparam>
 43    /// <param name="builder">The specification builder.</param>
 44    /// <param name="includeString">The include string.</param>
 45    /// <returns>The updated specification builder.</returns>
 46    public static ISpecificationBuilder<T> Include<T>(
 47        this ISpecificationBuilder<T> builder,
 48        string includeString) where T : class
 1749        => Include(builder, includeString, true);
 50
 51    /// <summary>
 52    /// Adds an Include clause to the specification if the condition is true.
 53    /// </summary>
 54    /// <typeparam name="T">The type of the entity.</typeparam>
 55    /// <param name="builder">The specification builder.</param>
 56    /// <param name="includeString">The include string.</param>
 57    /// <param name="condition">The condition to evaluate.</param>
 58    /// <returns>The updated specification builder.</returns>
 59    public static ISpecificationBuilder<T> Include<T>(
 60        this ISpecificationBuilder<T> builder,
 61        string includeString,
 62        bool condition) where T : class
 63    {
 1864        if (condition)
 65        {
 1766            builder.Specification.AddInternal(ItemType.IncludeString, includeString);
 67        }
 1868        return builder;
 69    }
 70
 71    /// <summary>
 72    /// Adds an Include clause to the specification.
 73    /// </summary>
 74    /// <typeparam name="T">The type of the entity.</typeparam>
 75    /// <typeparam name="TResult">The type of the result.</typeparam>
 76    /// <typeparam name="TProperty">The type of the property.</typeparam>
 77    /// <param name="builder">The specification builder.</param>
 78    /// <param name="navigationSelector">The include expression.</param>
 79    /// <returns>The updated includable specification builder.</returns>
 80    public static IIncludableSpecificationBuilder<T, TResult, TProperty> Include<T, TResult, TProperty>(
 81        this ISpecificationBuilder<T, TResult> builder,
 82        Expression<Func<T, TProperty>> navigationSelector) where T : class
 2583        => Include(builder, navigationSelector, true);
 84
 85    /// <summary>
 86    /// Adds an Include clause to the specification if the condition is true.
 87    /// </summary>
 88    /// <typeparam name="T">The type of the entity.</typeparam>
 89    /// <typeparam name="TResult">The type of the result.</typeparam>
 90    /// <typeparam name="TProperty">The type of the property.</typeparam>
 91    /// <param name="builder">The specification builder.</param>
 92    /// <param name="navigationSelector">The include expression.</param>
 93    /// <param name="condition">The condition to evaluate.</param>
 94    /// <returns>The updated includable specification builder.</returns>
 95    public static IIncludableSpecificationBuilder<T, TResult, TProperty> Include<T, TResult, TProperty>(
 96        this ISpecificationBuilder<T, TResult> builder,
 97        Expression<Func<T, TProperty>> navigationSelector,
 98        bool condition) where T : class
 99    {
 30100        if (condition)
 101        {
 25102            builder.Specification.AddInternal(ItemType.Include, navigationSelector, (int)IncludeType.Include);
 103        }
 104
 30105        Specification<T, TResult>.IsChainDiscarded = !condition;
 30106        var includeBuilder = new IncludableSpecificationBuilder<T, TResult, TProperty>(builder.Specification);
 30107        return includeBuilder;
 108    }
 109
 110    /// <summary>
 111    /// Adds an Include clause to the specification.
 112    /// </summary>
 113    /// <typeparam name="T">The type of the entity.</typeparam>
 114    /// <typeparam name="TProperty">The type of the property.</typeparam>
 115    /// <param name="builder">The specification builder.</param>
 116    /// <param name="navigationSelector">The include expression.</param>
 117    /// <returns>The updated includable specification builder.</returns>
 118    public static IIncludableSpecificationBuilder<T, TProperty> Include<T, TProperty>(
 119        this ISpecificationBuilder<T> builder,
 120        Expression<Func<T, TProperty>> navigationSelector) where T : class
 46121        => Include(builder, navigationSelector, true);
 122
 123    /// <summary>
 124    /// Adds an Include clause to the specification if the condition is true.
 125    /// </summary>
 126    /// <typeparam name="T">The type of the entity.</typeparam>
 127    /// <typeparam name="TProperty">The type of the property.</typeparam>
 128    /// <param name="builder">The specification builder.</param>
 129    /// <param name="navigationSelector">The include expression.</param>
 130    /// <param name="condition">The condition to evaluate.</param>
 131    /// <returns>The updated includable specification builder.</returns>
 132    public static IIncludableSpecificationBuilder<T, TProperty> Include<T, TProperty>(
 133        this ISpecificationBuilder<T> builder,
 134        Expression<Func<T, TProperty>> navigationSelector,
 135        bool condition) where T : class
 136    {
 51137        if (condition)
 138        {
 46139            builder.Specification.AddInternal(ItemType.Include, navigationSelector, (int)IncludeType.Include);
 140        }
 141
 51142        Specification<T>.IsChainDiscarded = !condition;
 51143        var includeBuilder = new IncludableSpecificationBuilder<T, TProperty>(builder.Specification);
 51144        return includeBuilder;
 145    }
 146
 147    /// <summary>
 148    /// Adds a ThenInclude clause to the specification.
 149    /// </summary>
 150    /// <typeparam name="TEntity">The type of the entity.</typeparam>
 151    /// <typeparam name="TResult">The type of the result.</typeparam>
 152    /// <typeparam name="TPreviousProperty">The type of the previous property.</typeparam>
 153    /// <typeparam name="TProperty">The type of the property.</typeparam>
 154    /// <param name="builder">The previous includable specification builder.</param>
 155    /// <param name="navigationSelector">The include expression.</param>
 156    /// <returns>The updated includable specification builder.</returns>
 157    public static IIncludableSpecificationBuilder<TEntity, TResult, TProperty> ThenInclude<TEntity, TResult, TPreviousPr
 158        this IIncludableSpecificationBuilder<TEntity, TResult, TPreviousProperty> builder,
 159        Expression<Func<TPreviousProperty, TProperty>> navigationSelector)
 160        where TEntity : class
 15161        => ThenInclude(builder, navigationSelector, true);
 162
 163    /// <summary>
 164    /// Adds a ThenInclude clause to the specification if the condition is true.
 165    /// </summary>
 166    /// <typeparam name="TEntity">The type of the entity.</typeparam>
 167    /// <typeparam name="TResult">The type of the result.</typeparam>
 168    /// <typeparam name="TPreviousProperty">The type of the previous property.</typeparam>
 169    /// <typeparam name="TProperty">The type of the property.</typeparam>
 170    /// <param name="builder">The previous includable specification builder.</param>
 171    /// <param name="navigationSelector">The include expression.</param>
 172    /// <param name="condition">The condition to evaluate.</param>
 173    /// <returns>The updated includable specification builder.</returns>
 174    public static IIncludableSpecificationBuilder<TEntity, TResult, TProperty> ThenInclude<TEntity, TResult, TPreviousPr
 175        this IIncludableSpecificationBuilder<TEntity, TResult, TPreviousProperty> builder,
 176        Expression<Func<TPreviousProperty, TProperty>> navigationSelector,
 177        bool condition)
 178        where TEntity : class
 179    {
 19180        if (condition && !Specification<TEntity, TResult>.IsChainDiscarded)
 181        {
 9182            builder.Specification.AddInternal(ItemType.Include, navigationSelector, (int)IncludeType.ThenIncludeAfterRef
 183        }
 184        else
 185        {
 10186            Specification<TEntity, TResult>.IsChainDiscarded = true;
 187        }
 188
 19189        var includeBuilder = new IncludableSpecificationBuilder<TEntity, TResult, TProperty>(builder.Specification);
 19190        return includeBuilder;
 191    }
 192
 193    /// <summary>
 194    /// Adds a ThenInclude clause to the specification.
 195    /// </summary>
 196    /// <typeparam name="TEntity">The type of the entity.</typeparam>
 197    /// <typeparam name="TPreviousProperty">The type of the previous property.</typeparam>
 198    /// <typeparam name="TProperty">The type of the property.</typeparam>
 199    /// <param name="builder">The previous includable specification builder.</param>
 200    /// <param name="navigationSelector">The include expression.</param>
 201    /// <returns>The updated includable specification builder.</returns>
 202    public static IIncludableSpecificationBuilder<TEntity, TProperty> ThenInclude<TEntity, TPreviousProperty, TProperty>
 203        this IIncludableSpecificationBuilder<TEntity, TPreviousProperty> builder,
 204        Expression<Func<TPreviousProperty, TProperty>> navigationSelector)
 205        where TEntity : class
 24206        => ThenInclude(builder, navigationSelector, true);
 207
 208    /// <summary>
 209    /// Adds a ThenInclude clause to the specification if the condition is true.
 210    /// </summary>
 211    /// <typeparam name="TEntity">The type of the entity.</typeparam>
 212    /// <typeparam name="TPreviousProperty">The type of the previous property.</typeparam>
 213    /// <typeparam name="TProperty">The type of the property.</typeparam>
 214    /// <param name="builder">The previous includable specification builder.</param>
 215    /// <param name="navigationSelector">The include expression.</param>
 216    /// <param name="condition">The condition to evaluate.</param>
 217    /// <returns>The updated includable specification builder.</returns>
 218    public static IIncludableSpecificationBuilder<TEntity, TProperty> ThenInclude<TEntity, TPreviousProperty, TProperty>
 219        this IIncludableSpecificationBuilder<TEntity, TPreviousProperty> builder,
 220        Expression<Func<TPreviousProperty, TProperty>> navigationSelector,
 221        bool condition)
 222        where TEntity : class
 223    {
 28224        if (condition && !Specification<TEntity>.IsChainDiscarded)
 225        {
 18226            builder.Specification.AddInternal(ItemType.Include, navigationSelector, (int)IncludeType.ThenIncludeAfterRef
 227        }
 228        else
 229        {
 10230            Specification<TEntity>.IsChainDiscarded = true;
 231        }
 232
 28233        var includeBuilder = new IncludableSpecificationBuilder<TEntity, TProperty>(builder.Specification);
 28234        return includeBuilder;
 235    }
 236
 237    /// <summary>
 238    /// Adds a ThenInclude clause to the specification.
 239    /// </summary>
 240    /// <typeparam name="TEntity">The type of the entity.</typeparam>
 241    /// <typeparam name="TResult">The type of the result.</typeparam>
 242    /// <typeparam name="TPreviousProperty">The type of the previous property.</typeparam>
 243    /// <typeparam name="TProperty">The type of the property.</typeparam>
 244    /// <param name="builder">The previous includable specification builder.</param>
 245    /// <param name="navigationSelector">The include expression.</param>
 246    /// <returns>The updated includable specification builder.</returns>
 247    public static IIncludableSpecificationBuilder<TEntity, TResult, TProperty> ThenInclude<TEntity, TResult, TPreviousPr
 248        this IIncludableSpecificationBuilder<TEntity, TResult, IEnumerable<TPreviousProperty>> builder,
 249        Expression<Func<TPreviousProperty, TProperty>> navigationSelector)
 250        where TEntity : class
 15251        => ThenInclude(builder, navigationSelector, true);
 252
 253    /// <summary>
 254    /// Adds a ThenInclude clause to the specification if the condition is true.
 255    /// </summary>
 256    /// <typeparam name="TEntity">The type of the entity.</typeparam>
 257    /// <typeparam name="TResult">The type of the result.</typeparam>
 258    /// <typeparam name="TPreviousProperty">The type of the previous property.</typeparam>
 259    /// <typeparam name="TProperty">The type of the property.</typeparam>
 260    /// <param name="builder">The previous includable specification builder.</param>
 261    /// <param name="navigationSelector">The include expression.</param>
 262    /// <param name="condition">The condition to evaluate.</param>
 263    /// <returns>The updated includable specification builder.</returns>
 264    public static IIncludableSpecificationBuilder<TEntity, TResult, TProperty> ThenInclude<TEntity, TResult, TPreviousPr
 265        this IIncludableSpecificationBuilder<TEntity, TResult, IEnumerable<TPreviousProperty>> builder,
 266        Expression<Func<TPreviousProperty, TProperty>> navigationSelector,
 267        bool condition)
 268        where TEntity : class
 269    {
 19270        if (condition && !Specification<TEntity, TResult>.IsChainDiscarded)
 271        {
 9272            builder.Specification.AddInternal(ItemType.Include, navigationSelector, (int)IncludeType.ThenIncludeAfterCol
 273        }
 274        else
 275        {
 10276            Specification<TEntity, TResult>.IsChainDiscarded = true;
 277        }
 278
 19279        var includeBuilder = new IncludableSpecificationBuilder<TEntity, TResult, TProperty>(builder.Specification);
 19280        return includeBuilder;
 281    }
 282
 283    /// <summary>
 284    /// Adds a ThenInclude clause to the specification.
 285    /// </summary>
 286    /// <typeparam name="TEntity">The type of the entity.</typeparam>
 287    /// <typeparam name="TPreviousProperty">The type of the previous property.</typeparam>
 288    /// <typeparam name="TProperty">The type of the property.</typeparam>
 289    /// <param name="builder">The previous includable specification builder.</param>
 290    /// <param name="navigationSelector">The include expression.</param>
 291    /// <returns>The updated includable specification builder.</returns>
 292    public static IIncludableSpecificationBuilder<TEntity, TProperty> ThenInclude<TEntity, TPreviousProperty, TProperty>
 293        this IIncludableSpecificationBuilder<TEntity, IEnumerable<TPreviousProperty>> builder,
 294        Expression<Func<TPreviousProperty, TProperty>> navigationSelector)
 295        where TEntity : class
 26296        => ThenInclude(builder, navigationSelector, true);
 297
 298    /// <summary>
 299    /// Adds a ThenInclude clause to the specification if the condition is true.
 300    /// </summary>
 301    /// <typeparam name="TEntity">The type of the entity.</typeparam>
 302    /// <typeparam name="TPreviousProperty">The type of the previous property.</typeparam>
 303    /// <typeparam name="TProperty">The type of the property.</typeparam>
 304    /// <param name="builder">The previous includable specification builder.</param>
 305    /// <param name="navigationSelector">The include expression.</param>
 306    /// <param name="condition">The condition to evaluate.</param>
 307    /// <returns>The updated includable specification builder.</returns>
 308    public static IIncludableSpecificationBuilder<TEntity, TProperty> ThenInclude<TEntity, TPreviousProperty, TProperty>
 309        this IIncludableSpecificationBuilder<TEntity, IEnumerable<TPreviousProperty>> builder,
 310        Expression<Func<TPreviousProperty, TProperty>> navigationSelector,
 311        bool condition)
 312        where TEntity : class
 313    {
 30314        if (condition && !Specification<TEntity>.IsChainDiscarded)
 315        {
 20316            builder.Specification.AddInternal(ItemType.Include, navigationSelector, (int)IncludeType.ThenIncludeAfterCol
 317        }
 318        else
 319        {
 10320            Specification<TEntity>.IsChainDiscarded = true;
 321        }
 322
 30323        var includeBuilder = new IncludableSpecificationBuilder<TEntity, TProperty>(builder.Specification);
 30324        return includeBuilder;
 325    }
 326}

/home/runner/work/QuerySpecification/QuerySpecification/src/QuerySpecification/Builders/Builder_Like.cs

#LineLine coverage
 1namespace Pozitron.QuerySpecification;
 2
 3public static partial class SpecificationBuilderExtensions
 4{
 5    /// <summary>
 6    /// Adds a Like clause to the specification.
 7    /// </summary>
 8    /// <typeparam name="T">The type of the entity.</typeparam>
 9    /// <typeparam name="TResult">The type of the result.</typeparam>
 10    /// <param name="builder">The specification builder.</param>
 11    /// <param name="keySelector">The key selector expression.</param>
 12    /// <param name="pattern">The pattern to match.</param>
 13    /// <param name="group">The group number. Like clauses within the same group are evaluated using OR logic.</param>
 14    /// <returns>The updated specification builder.</returns>
 15    public static ISpecificationBuilder<T, TResult> Like<T, TResult>(
 16        this ISpecificationBuilder<T, TResult> builder,
 17        Expression<Func<T, string?>> keySelector,
 18        string pattern,
 19        int group = 1) where T : class
 1920        => Like(builder, keySelector, pattern, true, group);
 21
 22    /// <summary>
 23    /// Adds a Like clause to the specification if the condition is true.
 24    /// </summary>
 25    /// <typeparam name="T">The type of the entity.</typeparam>
 26    /// <typeparam name="TResult">The type of the result.</typeparam>
 27    /// <param name="builder">The specification builder.</param>
 28    /// <param name="keySelector">The key selector expression.</param>
 29    /// <param name="pattern">The pattern to match.</param>
 30    /// <param name="condition">The condition to evaluate.</param>
 31    /// <param name="group">The group number. Like clauses within the same group are evaluated using OR logic.</param>
 32    /// <returns>The updated specification builder.</returns>
 33    public static ISpecificationBuilder<T, TResult> Like<T, TResult>(
 34        this ISpecificationBuilder<T, TResult> builder,
 35        Expression<Func<T, string?>> keySelector,
 36        string pattern,
 37        bool condition,
 38        int group = 1) where T : class
 39    {
 2040        if (condition)
 41        {
 1942            var like = new SpecLike<T>(keySelector, pattern);
 1943            builder.Specification.AddInternal(ItemType.Like, like, group);
 44        }
 2045        return builder;
 46    }
 47
 48    /// <summary>
 49    /// Adds a Like clause to the specification.
 50    /// </summary>
 51    /// <typeparam name="T">The type of the entity.</typeparam>
 52    /// <param name="builder">The specification builder.</param>
 53    /// <param name="keySelector">The key selector expression.</param>
 54    /// <param name="pattern">The pattern to match.</param>
 55    /// <param name="group">The group number. Like clauses within the same group are evaluated using OR logic.</param>
 56    /// <returns>The updated specification builder.</returns>
 57    public static ISpecificationBuilder<T> Like<T>(
 58        this ISpecificationBuilder<T> builder,
 59        Expression<Func<T, string?>> keySelector,
 60        string pattern,
 61        int group = 1) where T : class
 6062        => Like(builder, keySelector, pattern, true, group);
 63
 64    /// <summary>
 65    /// Adds a Like clause to the specification if the condition is true.
 66    /// </summary>
 67    /// <typeparam name="T">The type of the entity.</typeparam>
 68    /// <param name="builder">The specification builder.</param>
 69    /// <param name="keySelector">The key selector expression.</param>
 70    /// <param name="pattern">The pattern to match.</param>
 71    /// <param name="condition">The condition to evaluate.</param>
 72    /// <param name="group">The group number. Like clauses within the same group are evaluated using OR logic.</param>
 73    /// <returns>The updated specification builder.</returns>
 74    public static ISpecificationBuilder<T> Like<T>(
 75        this ISpecificationBuilder<T> builder,
 76        Expression<Func<T, string?>> keySelector,
 77        string pattern,
 78        bool condition,
 79        int group = 1) where T : class
 80    {
 6181        if (condition)
 82        {
 6083            var like = new SpecLike<T>(keySelector, pattern);
 6084            builder.Specification.AddInternal(ItemType.Like, like, group);
 85        }
 6186        return builder;
 87    }
 88}

/home/runner/work/QuerySpecification/QuerySpecification/src/QuerySpecification/Builders/Builder_Order.cs

#LineLine coverage
 1namespace Pozitron.QuerySpecification;
 2
 3public static partial class SpecificationBuilderExtensions
 4{
 5    /// <summary>
 6    /// Adds an OrderBy clause to the specification.
 7    /// </summary>
 8    /// <typeparam name="T">The type of the entity.</typeparam>
 9    /// <typeparam name="TResult">The type of the result.</typeparam>
 10    /// <param name="builder">The specification builder.</param>
 11    /// <param name="keySelector">The key selector expression.</param>
 12    /// <returns>The updated ordered specification builder.</returns>
 13    public static IOrderedSpecificationBuilder<T, TResult> OrderBy<T, TResult>(
 14        this ISpecificationBuilder<T, TResult> builder,
 15        Expression<Func<T, object?>> keySelector)
 2116        => OrderBy(builder, keySelector, true);
 17
 18    /// <summary>
 19    /// Adds an OrderBy clause to the specification if the condition is true.
 20    /// </summary>
 21    /// <typeparam name="T">The type of the entity.</typeparam>
 22    /// <typeparam name="TResult">The type of the result.</typeparam>
 23    /// <param name="builder">The specification builder.</param>
 24    /// <param name="keySelector">The key selector expression.</param>
 25    /// <param name="condition">The condition to evaluate.</param>
 26    /// <returns>The updated ordered specification builder.</returns>
 27    public static IOrderedSpecificationBuilder<T, TResult> OrderBy<T, TResult>(
 28        this ISpecificationBuilder<T, TResult> builder,
 29        Expression<Func<T, object?>> keySelector,
 30        bool condition)
 31    {
 2432        if (condition)
 33        {
 2134            builder.Specification.AddInternal(ItemType.Order, keySelector, (int)OrderType.OrderBy);
 35        }
 36
 2437        Specification<T, TResult>.IsChainDiscarded = !condition;
 2438        return (SpecificationBuilder<T, TResult>)builder;
 39    }
 40
 41    /// <summary>
 42    /// Adds an OrderBy clause to the specification.
 43    /// </summary>
 44    /// <typeparam name="T">The type of the entity.</typeparam>
 45    /// <param name="builder">The specification builder.</param>
 46    /// <param name="keySelector">The key selector expression.</param>
 47    /// <returns>The updated ordered specification builder.</returns>
 48    public static IOrderedSpecificationBuilder<T> OrderBy<T>(
 49        this ISpecificationBuilder<T> builder,
 50        Expression<Func<T, object?>> keySelector)
 4251        => OrderBy(builder, keySelector, true);
 52
 53    /// <summary>
 54    /// Adds an OrderBy clause to the specification if the condition is true.
 55    /// </summary>
 56    /// <typeparam name="T">The type of the entity.</typeparam>
 57    /// <param name="builder">The specification builder.</param>
 58    /// <param name="keySelector">The key selector expression.</param>
 59    /// <param name="condition">The condition to evaluate.</param>
 60    /// <returns>The updated ordered specification builder.</returns>
 61    public static IOrderedSpecificationBuilder<T> OrderBy<T>(
 62        this ISpecificationBuilder<T> builder,
 63        Expression<Func<T, object?>> keySelector,
 64        bool condition)
 65    {
 4566        if (condition)
 67        {
 4268            builder.Specification.AddInternal(ItemType.Order, keySelector, (int)OrderType.OrderBy);
 69        }
 70
 4571        Specification<T>.IsChainDiscarded = !condition;
 4572        return (SpecificationBuilder<T>)builder;
 73    }
 74
 75    /// <summary>
 76    /// Adds an OrderBy descending clause to the specification.
 77    /// </summary>
 78    /// <typeparam name="T">The type of the entity.</typeparam>
 79    /// <typeparam name="TResult">The type of the result.</typeparam>
 80    /// <param name="builder">The specification builder.</param>
 81    /// <param name="keySelector">The key selector expression.</param>
 82    /// <returns>The updated ordered specification builder.</returns>
 83    public static IOrderedSpecificationBuilder<T, TResult> OrderByDescending<T, TResult>(
 84        this ISpecificationBuilder<T, TResult> builder,
 85        Expression<Func<T, object?>> keySelector)
 386        => OrderByDescending(builder, keySelector, true);
 87
 88    /// <summary>
 89    /// Adds an OrderByDescending clause to the specification if the condition is true.
 90    /// </summary>
 91    /// <typeparam name="T">The type of the entity.</typeparam>
 92    /// <typeparam name="TResult">The type of the result.</typeparam>
 93    /// <param name="builder">The specification builder.</param>
 94    /// <param name="keySelector">The key selector expression.</param>
 95    /// <param name="condition">The condition to evaluate.</param>
 96    /// <returns>The updated ordered specification builder.</returns>
 97    public static IOrderedSpecificationBuilder<T, TResult> OrderByDescending<T, TResult>(
 98        this ISpecificationBuilder<T, TResult> builder,
 99        Expression<Func<T, object?>> keySelector,
 100        bool condition)
 101    {
 4102        if (condition)
 103        {
 3104            builder.Specification.AddInternal(ItemType.Order, keySelector, (int)OrderType.OrderByDescending);
 105        }
 106
 4107        Specification<T, TResult>.IsChainDiscarded = !condition;
 4108        return (SpecificationBuilder<T, TResult>)builder;
 109    }
 110
 111    /// <summary>
 112    /// Adds an OrderByDescending clause to the specification.
 113    /// </summary>
 114    /// <typeparam name="T">The type of the entity.</typeparam>
 115    /// <param name="builder">The specification builder.</param>
 116    /// <param name="keySelector">The key selector expression.</param>
 117    /// <returns>The updated ordered specification builder.</returns>
 118    public static IOrderedSpecificationBuilder<T> OrderByDescending<T>(
 119        this ISpecificationBuilder<T> builder,
 120        Expression<Func<T, object?>> keySelector)
 7121        => OrderByDescending(builder, keySelector, true);
 122
 123    /// <summary>
 124    /// Adds an OrderByDescending clause to the specification if the condition is true.
 125    /// </summary>
 126    /// <typeparam name="T">The type of the entity.</typeparam>
 127    /// <param name="builder">The specification builder.</param>
 128    /// <param name="keySelector">The key selector expression.</param>
 129    /// <param name="condition">The condition to evaluate.</param>
 130    /// <returns>The updated ordered specification builder.</returns>
 131    public static IOrderedSpecificationBuilder<T> OrderByDescending<T>(
 132        this ISpecificationBuilder<T> builder,
 133        Expression<Func<T, object?>> keySelector,
 134        bool condition)
 135    {
 8136        if (condition)
 137        {
 7138            builder.Specification.AddInternal(ItemType.Order, keySelector, (int)OrderType.OrderByDescending);
 139        }
 140
 8141        Specification<T>.IsChainDiscarded = !condition;
 8142        return (SpecificationBuilder<T>)builder;
 143    }
 144
 145    /// <summary>
 146    /// Adds a ThenBy clause to the specification.
 147    /// </summary>
 148    /// <typeparam name="T">The type of the entity.</typeparam>
 149    /// <typeparam name="TResult">The type of the result.</typeparam>
 150    /// <param name="builder">The ordered specification builder.</param>
 151    /// <param name="keySelector">The key selector expression.</param>
 152    /// <returns>The updated ordered specification builder.</returns>
 153    public static IOrderedSpecificationBuilder<T, TResult> ThenBy<T, TResult>(
 154        this IOrderedSpecificationBuilder<T, TResult> builder,
 155        Expression<Func<T, object?>> keySelector)
 7156        => ThenBy(builder, keySelector, true);
 157
 158    /// <summary>
 159    /// Adds a ThenBy clause to the specification if the condition is true.
 160    /// </summary>
 161    /// <typeparam name="T">The type of the entity.</typeparam>
 162    /// <typeparam name="TResult">The type of the result.</typeparam>
 163    /// <param name="builder">The ordered specification builder.</param>
 164    /// <param name="keySelector">The key selector expression.</param>
 165    /// <param name="condition">The condition to evaluate.</param>
 166    /// <returns>The updated ordered specification builder.</returns>
 167    public static IOrderedSpecificationBuilder<T, TResult> ThenBy<T, TResult>(
 168        this IOrderedSpecificationBuilder<T, TResult> builder,
 169        Expression<Func<T, object?>> keySelector,
 170        bool condition)
 171    {
 9172        if (condition && !Specification<T, TResult>.IsChainDiscarded)
 173        {
 5174            builder.Specification.AddInternal(ItemType.Order, keySelector, (int)OrderType.ThenBy);
 175        }
 176        else
 177        {
 4178            Specification<T, TResult>.IsChainDiscarded = true;
 179        }
 180
 9181        return builder;
 182    }
 183
 184    /// <summary>
 185    /// Adds a ThenBy clause to the specification.
 186    /// </summary>
 187    /// <typeparam name="T">The type of the entity.</typeparam>
 188    /// <param name="builder">The ordered specification builder.</param>
 189    /// <param name="keySelector">The key selector expression.</param>
 190    /// <returns>The updated ordered specification builder.</returns>
 191    public static IOrderedSpecificationBuilder<T> ThenBy<T>(
 192        this IOrderedSpecificationBuilder<T> builder,
 193        Expression<Func<T, object?>> keySelector)
 15194        => ThenBy(builder, keySelector, true);
 195
 196    /// <summary>
 197    /// Adds a ThenBy clause to the specification if the condition is true.
 198    /// </summary>
 199    /// <typeparam name="T">The type of the entity.</typeparam>
 200    /// <param name="builder">The ordered specification builder.</param>
 201    /// <param name="keySelector">The key selector expression.</param>
 202    /// <param name="condition">The condition to evaluate.</param>
 203    /// <returns>The updated ordered specification builder.</returns>
 204    public static IOrderedSpecificationBuilder<T> ThenBy<T>(
 205        this IOrderedSpecificationBuilder<T> builder,
 206        Expression<Func<T, object?>> keySelector,
 207        bool condition)
 208    {
 17209        if (condition && !Specification<T>.IsChainDiscarded)
 210        {
 13211            builder.Specification.AddInternal(ItemType.Order, keySelector, (int)OrderType.ThenBy);
 212        }
 213        else
 214        {
 4215            Specification<T>.IsChainDiscarded = true;
 216        }
 217
 17218        return builder;
 219    }
 220
 221    /// <summary>
 222    /// Adds a ThenByDescending clause to the specification.
 223    /// </summary>
 224    /// <typeparam name="T">The type of the entity.</typeparam>
 225    /// <typeparam name="TResult">The type of the result.</typeparam>
 226    /// <param name="builder">The ordered specification builder.</param>
 227    /// <param name="keySelector">The key selector expression.</param>
 228    /// <returns>The updated ordered specification builder.</returns>
 229    public static IOrderedSpecificationBuilder<T, TResult> ThenByDescending<T, TResult>(
 230        this IOrderedSpecificationBuilder<T, TResult> builder,
 231        Expression<Func<T, object?>> keySelector)
 11232        => ThenByDescending(builder, keySelector, true);
 233
 234    /// <summary>
 235    /// Adds a ThenByDescending clause to the specification if the condition is true.
 236    /// </summary>
 237    /// <typeparam name="T">The type of the entity.</typeparam>
 238    /// <typeparam name="TResult">The type of the result.</typeparam>
 239    /// <param name="builder">The ordered specification builder.</param>
 240    /// <param name="keySelector">The key selector expression.</param>
 241    /// <param name="condition">The condition to evaluate.</param>
 242    /// <returns>The updated ordered specification builder.</returns>
 243    public static IOrderedSpecificationBuilder<T, TResult> ThenByDescending<T, TResult>(
 244        this IOrderedSpecificationBuilder<T, TResult> builder,
 245        Expression<Func<T, object?>> keySelector,
 246        bool condition)
 247    {
 13248        if (condition && !Specification<T, TResult>.IsChainDiscarded)
 249        {
 9250            builder.Specification.AddInternal(ItemType.Order, keySelector, (int)OrderType.ThenByDescending);
 251        }
 252        else
 253        {
 4254            Specification<T, TResult>.IsChainDiscarded = true;
 255        }
 256
 13257        return builder;
 258    }
 259
 260    /// <summary>
 261    /// Adds a ThenByDescending clause to the specification.
 262    /// </summary>
 263    /// <typeparam name="T">The type of the entity.</typeparam>
 264    /// <param name="builder">The ordered specification builder.</param>
 265    /// <param name="keySelector">The key selector expression.</param>
 266    /// <returns>The updated ordered specification builder.</returns>
 267    public static IOrderedSpecificationBuilder<T> ThenByDescending<T>(
 268        this IOrderedSpecificationBuilder<T> builder,
 269        Expression<Func<T, object?>> keySelector)
 13270        => ThenByDescending(builder, keySelector, true);
 271
 272    /// <summary>
 273    /// Adds a ThenByDescending clause to the specification if the condition is true.
 274    /// </summary>
 275    /// <typeparam name="T">The type of the entity.</typeparam>
 276    /// <param name="builder">The ordered specification builder.</param>
 277    /// <param name="keySelector">The key selector expression.</param>
 278    /// <param name="condition">The condition to evaluate.</param>
 279    /// <returns>The updated ordered specification builder.</returns>
 280    public static IOrderedSpecificationBuilder<T> ThenByDescending<T>(
 281        this IOrderedSpecificationBuilder<T> builder,
 282        Expression<Func<T, object?>> keySelector,
 283        bool condition)
 284    {
 15285        if (condition && !Specification<T>.IsChainDiscarded)
 286        {
 11287            builder.Specification.AddInternal(ItemType.Order, keySelector, (int)OrderType.ThenByDescending);
 288        }
 289        else
 290        {
 4291            Specification<T>.IsChainDiscarded = true;
 292        }
 293
 15294        return builder;
 295    }
 296}

/home/runner/work/QuerySpecification/QuerySpecification/src/QuerySpecification/Builders/Builder_Paging.cs

#LineLine coverage
 1namespace Pozitron.QuerySpecification;
 2
 3public static partial class SpecificationBuilderExtensions
 4{
 5    /// <summary>
 6    /// Sets the number of items to take in the specification.
 7    /// </summary>
 8    /// <typeparam name="T">The type of the entity.</typeparam>
 9    /// <typeparam name="TResult">The type of the result.</typeparam>
 10    /// <param name="builder">The specification builder.</param>
 11    /// <param name="take">The number of items to take.</param>
 12    /// <returns>The updated specification builder.</returns>
 13    public static ISpecificationBuilder<T, TResult> Take<T, TResult>(
 14        this ISpecificationBuilder<T, TResult> builder,
 15        int take)
 1716        => Take(builder, take, true);
 17
 18    /// <summary>
 19    /// Sets the number of items to take in the specification if the condition is true.
 20    /// </summary>
 21    /// <typeparam name="T">The type of the entity.</typeparam>
 22    /// <typeparam name="TResult">The type of the result.</typeparam>
 23    /// <param name="builder">The specification builder.</param>
 24    /// <param name="take">The number of items to take.</param>
 25    /// <param name="condition">The condition to evaluate.</param>
 26    /// <returns>The updated specification builder.</returns>
 27    public static ISpecificationBuilder<T, TResult> Take<T, TResult>(
 28        this ISpecificationBuilder<T, TResult> builder,
 29        int take,
 30        bool condition)
 31    {
 1832        if (condition)
 33        {
 1734            builder.Specification.GetOrCreate<SpecPaging>(ItemType.Paging).Take = take;
 35        }
 1836        return builder;
 37    }
 38
 39    /// <summary>
 40    /// Sets the number of items to take in the specification.
 41    /// </summary>
 42    /// <typeparam name="T">The type of the entity.</typeparam>
 43    /// <param name="builder">The specification builder.</param>
 44    /// <param name="take">The number of items to take.</param>
 45    /// <returns>The updated specification builder.</returns>
 46    public static ISpecificationBuilder<T> Take<T>(
 47        this ISpecificationBuilder<T> builder,
 48        int take)
 2249        => Take(builder, take, true);
 50
 51    /// <summary>
 52    /// Sets the number of items to take in the specification if the condition is true.
 53    /// </summary>
 54    /// <typeparam name="T">The type of the entity.</typeparam>
 55    /// <param name="builder">The specification builder.</param>
 56    /// <param name="take">The number of items to take.</param>
 57    /// <param name="condition">The condition to evaluate.</param>
 58    /// <returns>The updated specification builder.</returns>
 59    public static ISpecificationBuilder<T> Take<T>(
 60        this ISpecificationBuilder<T> builder,
 61        int take,
 62        bool condition)
 63    {
 2364        if (condition)
 65        {
 2266            builder.Specification.GetOrCreate<SpecPaging>(ItemType.Paging).Take = take;
 67        }
 2368        return builder;
 69    }
 70
 71    /// <summary>
 72    /// Sets the number of items to skip in the specification.
 73    /// </summary>
 74    /// <typeparam name="T">The type of the entity.</typeparam>
 75    /// <typeparam name="TResult">The type of the result.</typeparam>
 76    /// <param name="builder">The specification builder.</param>
 77    /// <param name="skip">The number of items to skip.</param>
 78    /// <returns>The updated specification builder.</returns>
 79    public static ISpecificationBuilder<T, TResult> Skip<T, TResult>(
 80        this ISpecificationBuilder<T, TResult> builder,
 81        int skip)
 1782        => Skip(builder, skip, true);
 83
 84    /// <summary>
 85    /// Sets the number of items to skip in the specification if the condition is true.
 86    /// </summary>
 87    /// <typeparam name="T">The type of the entity.</typeparam>
 88    /// <typeparam name="TResult">The type of the result.</typeparam>
 89    /// <param name="builder">The specification builder.</param>
 90    /// <param name="skip">The number of items to skip.</param>
 91    /// <param name="condition">The condition to evaluate.</param>
 92    /// <returns>The updated specification builder.</returns>
 93    public static ISpecificationBuilder<T, TResult> Skip<T, TResult>(
 94        this ISpecificationBuilder<T, TResult> builder,
 95        int skip,
 96        bool condition)
 97    {
 1898        if (condition)
 99        {
 17100            builder.Specification.GetOrCreate<SpecPaging>(ItemType.Paging).Skip = skip;
 101        }
 18102        return builder;
 103    }
 104
 105    /// <summary>
 106    /// Sets the number of items to skip in the specification.
 107    /// </summary>
 108    /// <typeparam name="T">The type of the entity.</typeparam>
 109    /// <param name="builder">The specification builder.</param>
 110    /// <param name="skip">The number of items to skip.</param>
 111    /// <returns>The updated specification builder.</returns>
 112    public static ISpecificationBuilder<T> Skip<T>(
 113        this ISpecificationBuilder<T> builder,
 114        int skip)
 23115        => Skip(builder, skip, true);
 116
 117    /// <summary>
 118    /// Sets the number of items to skip in the specification if the condition is true.
 119    /// </summary>
 120    /// <typeparam name="T">The type of the entity.</typeparam>
 121    /// <param name="builder">The specification builder.</param>
 122    /// <param name="skip">The number of items to skip.</param>
 123    /// <param name="condition">The condition to evaluate.</param>
 124    /// <returns>The updated specification builder.</returns>
 125    public static ISpecificationBuilder<T> Skip<T>(
 126        this ISpecificationBuilder<T> builder,
 127        int skip,
 128        bool condition)
 129    {
 24130        if (condition)
 131        {
 23132            builder.Specification.GetOrCreate<SpecPaging>(ItemType.Paging).Skip = skip;
 133        }
 24134        return builder;
 135    }
 136}

/home/runner/work/QuerySpecification/QuerySpecification/src/QuerySpecification/Builders/Builder_Select.cs

#LineLine coverage
 1namespace Pozitron.QuerySpecification;
 2
 3public static partial class SpecificationBuilderExtensions
 4{
 5    /// <summary>
 6    /// Adds a Select clause to the specification.
 7    /// </summary>
 8    /// <typeparam name="T">The type of the entity.</typeparam>
 9    /// <typeparam name="TResult">The type of the result.</typeparam>
 10    /// <param name="builder">The specification builder.</param>
 11    /// <param name="selector">The selector expression.</param>
 12    public static void Select<T, TResult>(
 13        this ISpecificationBuilder<T, TResult> builder,
 14        Expression<Func<T, TResult>> selector)
 15    {
 2516        builder.Specification.AddOrUpdateInternal(ItemType.Select, selector, (int)SelectType.Select);
 2517    }
 18
 19    /// <summary>
 20    /// Adds a SelectMany clause to the specification.
 21    /// </summary>
 22    /// <typeparam name="T">The type of the entity.</typeparam>
 23    /// <typeparam name="TResult">The type of the result.</typeparam>
 24    /// <param name="builder">The specification builder.</param>
 25    /// <param name="selector">The selector expression.</param>
 26    public static void SelectMany<T, TResult>(
 27        this ISpecificationBuilder<T, TResult> builder,
 28        Expression<Func<T, IEnumerable<TResult>>> selector)
 29    {
 930        builder.Specification.AddOrUpdateInternal(ItemType.Select, selector, (int)SelectType.SelectMany);
 931    }
 32}

/home/runner/work/QuerySpecification/QuerySpecification/src/QuerySpecification/Builders/Builder_TagWith.cs

#LineLine coverage
 1namespace Pozitron.QuerySpecification;
 2
 3public static partial class SpecificationBuilderExtensions
 4{
 5    /// <summary>
 6    /// Adds a query tag to the specification.
 7    /// </summary>
 8    /// <typeparam name="T">The type of the entity.</typeparam>
 9    /// <typeparam name="TResult">The type of the result.</typeparam>
 10    /// <param name="builder">The specification builder.</param>
 11    /// <param name="tag">The query tag.</param>
 12    /// <returns>The updated specification builder.</returns>
 13    public static ISpecificationBuilder<T, TResult> TagWith<T, TResult>(
 14        this ISpecificationBuilder<T, TResult> builder,
 15        string tag)
 16    {
 817        TagWith(builder, tag, true);
 818        return builder;
 19    }
 20
 21    /// <summary>
 22    /// Adds a query tag to the specification if the condition is true.
 23    /// </summary>
 24    /// <typeparam name="T">The type of the entity.</typeparam>
 25    /// <typeparam name="TResult">The type of the result.</typeparam>
 26    /// <param name="builder">The specification builder.</param>
 27    /// <param name="tag">The query tag.</param>
 28    /// <param name="condition">The condition to evaluate.</param>
 29    /// <returns>The updated specification builder.</returns>
 30    public static ISpecificationBuilder<T, TResult> TagWith<T, TResult>(
 31        this ISpecificationBuilder<T, TResult> builder,
 32        string tag,
 33        bool condition)
 34    {
 935        if (condition)
 36        {
 837            builder.Specification.AddInternal(ItemType.QueryTag, tag);
 38        }
 39
 940        return builder;
 41    }
 42
 43    /// <summary>
 44    /// Adds a query tag to the specification.
 45    /// </summary>
 46    /// <typeparam name="T">The type of the entity.</typeparam>
 47    /// <param name="builder">The specification builder.</param>
 48    /// <param name="tag">The query tag.</param>
 49    /// <returns>The updated specification builder.</returns>
 50    public static ISpecificationBuilder<T> TagWith<T>(
 51        this ISpecificationBuilder<T> builder,
 52        string tag)
 2253        => TagWith(builder, tag, true);
 54
 55    /// <summary>
 56    /// Adds a query tag to the specification if the condition is true.
 57    /// </summary>
 58    /// <typeparam name="T">The type of the entity.</typeparam>
 59    /// <param name="builder">The specification builder.</param>
 60    /// <param name="tag">The query tag.</param>
 61    /// <param name="condition">The condition to evaluate.</param>
 62    /// <returns>The updated specification builder.</returns>
 63    public static ISpecificationBuilder<T> TagWith<T>(
 64        this ISpecificationBuilder<T> builder,
 65        string tag,
 66        bool condition)
 67    {
 2368        if (condition)
 69        {
 2270            builder.Specification.AddInternal(ItemType.QueryTag, tag);
 71        }
 72
 2373        return builder;
 74    }
 75}

/home/runner/work/QuerySpecification/QuerySpecification/src/QuerySpecification/Builders/Builder_Where.cs

#LineLine coverage
 1namespace Pozitron.QuerySpecification;
 2
 3public static partial class SpecificationBuilderExtensions
 4{
 5    /// <summary>
 6    /// Adds a Where clause to the specification.
 7    /// </summary>
 8    /// <typeparam name="T">The type of the entity.</typeparam>
 9    /// <typeparam name="TResult">The type of the result.</typeparam>
 10    /// <param name="builder">The specification builder.</param>
 11    /// <param name="predicate">The predicate expression.</param>
 12    /// <returns>The updated specification builder.</returns>
 13    public static ISpecificationBuilder<T, TResult> Where<T, TResult>(
 14        this ISpecificationBuilder<T, TResult> builder,
 15        Expression<Func<T, bool>> predicate)
 3016        => Where(builder, predicate, true);
 17
 18    /// <summary>
 19    /// Adds a Where clause to the specification if the condition is true.
 20    /// </summary>
 21    /// <typeparam name="T">The type of the entity.</typeparam>
 22    /// <typeparam name="TResult">The type of the result.</typeparam>
 23    /// <param name="builder">The specification builder.</param>
 24    /// <param name="predicate">The predicate expression.</param>
 25    /// <param name="condition">The condition to evaluate.</param>
 26    /// <returns>The updated specification builder.</returns>
 27    public static ISpecificationBuilder<T, TResult> Where<T, TResult>(
 28        this ISpecificationBuilder<T, TResult> builder,
 29        Expression<Func<T, bool>> predicate,
 30        bool condition)
 31    {
 3132        if (condition)
 33        {
 3034            builder.Specification.AddInternal(ItemType.Where, predicate);
 35        }
 3136        return builder;
 37    }
 38
 39    /// <summary>
 40    /// Adds a Where clause to the specification.
 41    /// </summary>
 42    /// <typeparam name="T">The type of the entity.</typeparam>
 43    /// <param name="builder">The specification builder.</param>
 44    /// <param name="predicate">The predicate expression.</param>
 45    /// <returns>The updated specification builder.</returns>
 46    public static ISpecificationBuilder<T> Where<T>(
 47        this ISpecificationBuilder<T> builder,
 48        Expression<Func<T, bool>> predicate)
 7349        => Where(builder, predicate, true);
 50
 51    /// <summary>
 52    /// Adds a Where clause to the specification if the condition is true.
 53    /// </summary>
 54    /// <typeparam name="T">The type of the entity.</typeparam>
 55    /// <param name="builder">The specification builder.</param>
 56    /// <param name="predicate">The predicate expression.</param>
 57    /// <param name="condition">The condition to evaluate.</param>
 58    /// <returns>The updated specification builder.</returns>
 59    public static ISpecificationBuilder<T> Where<T>(
 60        this ISpecificationBuilder<T> builder,
 61        Expression<Func<T, bool>> predicate,
 62        bool condition)
 63    {
 7464        if (condition)
 65        {
 7366            builder.Specification.AddInternal(ItemType.Where, predicate);
 67        }
 7468        return builder;
 69    }
 70}

Methods/Properties

WithCacheKey(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.String)
WithCacheKey(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.String,System.Boolean)
WithCacheKey(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.String)
WithCacheKey(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.String,System.Boolean)
IgnoreQueryFilters(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>)
IgnoreQueryFilters(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Boolean)
IgnoreQueryFilters(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>)
IgnoreQueryFilters(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Boolean)
IgnoreAutoIncludes(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>)
IgnoreAutoIncludes(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Boolean)
IgnoreAutoIncludes(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>)
IgnoreAutoIncludes(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Boolean)
AsSplitQuery(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>)
AsSplitQuery(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Boolean)
AsSplitQuery(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>)
AsSplitQuery(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Boolean)
AsNoTracking(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>)
AsNoTracking(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Boolean)
AsNoTracking(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>)
AsNoTracking(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Boolean)
AsNoTrackingWithIdentityResolution(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>)
AsNoTrackingWithIdentityResolution(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Boolean)
AsNoTrackingWithIdentityResolution(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>)
AsNoTrackingWithIdentityResolution(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Boolean)
AsTracking(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>)
AsTracking(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Boolean)
AsTracking(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>)
AsTracking(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Boolean)
Include(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.String)
Include(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.String,System.Boolean)
Include(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.String)
Include(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.String,System.Boolean)
Include(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Linq.Expressions.Expression`1<System.Func`2<T,TProperty>>)
Include(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Linq.Expressions.Expression`1<System.Func`2<T,TProperty>>,System.Boolean)
Include(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,TProperty>>)
Include(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,TProperty>>,System.Boolean)
ThenInclude(Pozitron.QuerySpecification.IIncludableSpecificationBuilder`3<TEntity,TResult,TPreviousProperty>,System.Linq.Expressions.Expression`1<System.Func`2<TPreviousProperty,TProperty>>)
ThenInclude(Pozitron.QuerySpecification.IIncludableSpecificationBuilder`3<TEntity,TResult,TPreviousProperty>,System.Linq.Expressions.Expression`1<System.Func`2<TPreviousProperty,TProperty>>,System.Boolean)
ThenInclude(Pozitron.QuerySpecification.IIncludableSpecificationBuilder`2<TEntity,TPreviousProperty>,System.Linq.Expressions.Expression`1<System.Func`2<TPreviousProperty,TProperty>>)
ThenInclude(Pozitron.QuerySpecification.IIncludableSpecificationBuilder`2<TEntity,TPreviousProperty>,System.Linq.Expressions.Expression`1<System.Func`2<TPreviousProperty,TProperty>>,System.Boolean)
ThenInclude(Pozitron.QuerySpecification.IIncludableSpecificationBuilder`3<TEntity,TResult,System.Collections.Generic.IEnumerable`1<TPreviousProperty>>,System.Linq.Expressions.Expression`1<System.Func`2<TPreviousProperty,TProperty>>)
ThenInclude(Pozitron.QuerySpecification.IIncludableSpecificationBuilder`3<TEntity,TResult,System.Collections.Generic.IEnumerable`1<TPreviousProperty>>,System.Linq.Expressions.Expression`1<System.Func`2<TPreviousProperty,TProperty>>,System.Boolean)
ThenInclude(Pozitron.QuerySpecification.IIncludableSpecificationBuilder`2<TEntity,System.Collections.Generic.IEnumerable`1<TPreviousProperty>>,System.Linq.Expressions.Expression`1<System.Func`2<TPreviousProperty,TProperty>>)
ThenInclude(Pozitron.QuerySpecification.IIncludableSpecificationBuilder`2<TEntity,System.Collections.Generic.IEnumerable`1<TPreviousProperty>>,System.Linq.Expressions.Expression`1<System.Func`2<TPreviousProperty,TProperty>>,System.Boolean)
Like(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.String>>,System.String,System.Int32)
Like(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.String>>,System.String,System.Boolean,System.Int32)
Like(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.String>>,System.String,System.Int32)
Like(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.String>>,System.String,System.Boolean,System.Int32)
OrderBy(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Object>>)
OrderBy(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Object>>,System.Boolean)
OrderBy(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Object>>)
OrderBy(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Object>>,System.Boolean)
OrderByDescending(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Object>>)
OrderByDescending(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Object>>,System.Boolean)
OrderByDescending(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Object>>)
OrderByDescending(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Object>>,System.Boolean)
ThenBy(Pozitron.QuerySpecification.IOrderedSpecificationBuilder`2<T,TResult>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Object>>)
ThenBy(Pozitron.QuerySpecification.IOrderedSpecificationBuilder`2<T,TResult>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Object>>,System.Boolean)
ThenBy(Pozitron.QuerySpecification.IOrderedSpecificationBuilder`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Object>>)
ThenBy(Pozitron.QuerySpecification.IOrderedSpecificationBuilder`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Object>>,System.Boolean)
ThenByDescending(Pozitron.QuerySpecification.IOrderedSpecificationBuilder`2<T,TResult>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Object>>)
ThenByDescending(Pozitron.QuerySpecification.IOrderedSpecificationBuilder`2<T,TResult>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Object>>,System.Boolean)
ThenByDescending(Pozitron.QuerySpecification.IOrderedSpecificationBuilder`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Object>>)
ThenByDescending(Pozitron.QuerySpecification.IOrderedSpecificationBuilder`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Object>>,System.Boolean)
Take(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Int32)
Take(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Int32,System.Boolean)
Take(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Int32)
Take(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Int32,System.Boolean)
Skip(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Int32)
Skip(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Int32,System.Boolean)
Skip(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Int32)
Skip(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Int32,System.Boolean)
Select(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Linq.Expressions.Expression`1<System.Func`2<T,TResult>>)
SelectMany(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Collections.Generic.IEnumerable`1<TResult>>>)
TagWith(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.String)
TagWith(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.String,System.Boolean)
TagWith(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.String)
TagWith(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.String,System.Boolean)
Where(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Boolean>>)
Where(Pozitron.QuerySpecification.ISpecificationBuilder`2<T,TResult>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Boolean>>,System.Boolean)
Where(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Boolean>>)
Where(Pozitron.QuerySpecification.ISpecificationBuilder`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,System.Boolean>>,System.Boolean)