dotnet-starter-kit icon indicating copy to clipboard operation
dotnet-starter-kit copied to clipboard

Bump to Ardalis Specification 9.0.1

Open Mike6x opened this issue 10 months ago • 3 comments

In version 9.0.1, Ardalis Specification do not have class OrderedSpecificationBuilder<T> so some methord in SpecificationBuilderExtensions.cs error:

  • public static IOrderedSpecificationBuilder<T> AdvancedSearch<T>
  • private static void AddSearchPropertyByKeyword<T>
  • public static IOrderedSpecificationBuilder<T> OrderBy<T>

Mike6x avatar Apr 01 '25 08:04 Mike6x

using Ardalis.Specification;

namespace xxxx.Framework.Core.Specifications;

public class OrderedSpecificationBuilder<T> : IOrderedSpecificationBuilder<T> { public Specification<T> Specification { get; }

public bool IsChainDiscarded { get; set; }

public OrderedSpecificationBuilder(Specification<T> specification)
    : this(specification, isChainDiscarded: false)
{
}

public OrderedSpecificationBuilder(Specification<T> specification, bool isChainDiscarded)
{
    Specification = specification;
    IsChainDiscarded = isChainDiscarded;
}

}

aabordalo avatar Apr 01 '25 14:04 aabordalo

Image

aabordalo avatar Apr 01 '25 14:04 aabordalo

There is no need to return IOrderedSpecificaationBuilder. These methods should return the ISpecificationBuilder. Returning the ordered builder actually might be dangerous, since the caller unintentionally can continue with ThenBy methods (without having OrderBy applied).

fiseni avatar Apr 02 '25 11:04 fiseni