Skip to content

Commit 7ea7915

Browse files
authored
Cleanup. (#518)
1 parent f37fb7e commit 7ea7915

File tree

9 files changed

+23
-31
lines changed

9 files changed

+23
-31
lines changed

src/Ardalis.Specification.EntityFrameworkCore/Evaluators/SpecificationEvaluator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public SpecificationEvaluator(IEnumerable<IEvaluator> evaluators)
4040
/// <inheritdoc/>
4141
public virtual IQueryable<TResult> GetQuery<T, TResult>(IQueryable<T> query, ISpecification<T, TResult> specification) where T : class
4242
{
43-
if (specification is null) throw new ArgumentNullException(nameof(specification));
43+
ArgumentNullException.ThrowIfNull(specification);
4444
if (specification.Selector is null && specification.SelectorMany is null) throw new SelectorNotFoundException();
4545
if (specification.Selector is not null && specification.SelectorMany is not null) throw new ConcurrentSelectorsException();
4646

@@ -54,7 +54,7 @@ public virtual IQueryable<TResult> GetQuery<T, TResult>(IQueryable<T> query, ISp
5454
/// <inheritdoc/>
5555
public virtual IQueryable<T> GetQuery<T>(IQueryable<T> query, ISpecification<T> specification, bool evaluateCriteriaOnly = false) where T : class
5656
{
57-
if (specification is null) throw new ArgumentNullException(nameof(specification));
57+
ArgumentNullException.ThrowIfNull(specification);
5858

5959
var evaluators = evaluateCriteriaOnly ? Evaluators.Where(x => x.IsCriteriaEvaluator) : Evaluators;
6060

src/Ardalis.Specification/Builders/SpecificationBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ internal class SpecificationBuilder<T, TResult> : SpecificationBuilder<T>,
3737
public new Specification<T, TResult> Specification { get; }
3838

3939
public SpecificationBuilder(Specification<T, TResult> specification)
40-
:base(specification)
40+
: base(specification)
4141
{
4242
Specification = specification;
4343
}

src/Ardalis.Specification/Specification.cs

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ public class Specification<T, TResult> : Specification<T>, ISpecification<T, TRe
2626
/// <inheritdoc cref="ISpecification{T}"/>
2727
public class Specification<T> : ISpecification<T>
2828
{
29-
private const int DEFAULT_CAPACITY_SEARCH = 2;
30-
3129
// It is utilized only during the building stage for the sub-chains. Once the state is built, we don't care about it anymore.
3230
// The initial value is not important since the value is always initialized by the root of the chain.
3331
// Therefore, we don't need ThreadLocal (it's more expensive).
@@ -43,8 +41,8 @@ public class Specification<T> : ISpecification<T>
4341
private OneOrMany<OrderExpressionInfo<T>> _orderExpressions = new();
4442
private OneOrMany<IncludeExpressionInfo> _includeExpressions = new();
4543
private OneOrMany<string> _includeStrings = new();
46-
private Dictionary<string, object>? _items;
4744
private OneOrMany<string> _queryTags = new();
45+
private Dictionary<string, object>? _items;
4846

4947
public ISpecificationBuilder<T> Query => new SpecificationBuilder<T>(this);
5048
protected virtual IInMemorySpecificationEvaluator Evaluator => InMemorySpecificationEvaluator.Default;
@@ -88,15 +86,6 @@ public class Specification<T> : ISpecification<T>
8886
/// <inheritdoc/>
8987
public bool AsNoTrackingWithIdentityResolution { get; internal set; } = false;
9088

91-
92-
// Specs are not intended to be thread-safe, so we don't need to worry about thread-safety here.
93-
internal void Add(WhereExpressionInfo<T> whereExpression) => _whereExpressions.Add(whereExpression);
94-
internal void Add(OrderExpressionInfo<T> orderExpression) => _orderExpressions.Add(orderExpression);
95-
internal void Add(IncludeExpressionInfo includeExpression) => _includeExpressions.Add(includeExpression);
96-
internal void Add(string includeString) => _includeStrings.Add(includeString);
97-
internal void Add(SearchExpressionInfo<T> searchExpression) => _searchExpressions.AddSorted(searchExpression, SearchExpressionComparer<T>.Default);
98-
internal void AddQueryTag(string queryTag) => _queryTags.Add(queryTag);
99-
10089
/// <inheritdoc/>
10190
public Dictionary<string, object> Items => _items ??= [];
10291

@@ -118,13 +107,6 @@ public class Specification<T> : ISpecification<T>
118107
/// <inheritdoc/>
119108
public IEnumerable<string> QueryTags => _queryTags.Values;
120109

121-
internal OneOrMany<WhereExpressionInfo<T>> OneOrManyWhereExpressions => _whereExpressions;
122-
internal OneOrMany<SearchExpressionInfo<T>> OneOrManySearchExpressions => _searchExpressions;
123-
internal OneOrMany<OrderExpressionInfo<T>> OneOrManyOrderExpressions => _orderExpressions;
124-
internal OneOrMany<IncludeExpressionInfo> OneOrManyIncludeExpressions => _includeExpressions;
125-
internal OneOrMany<string> OneOrManyIncludeStrings => _includeStrings;
126-
internal OneOrMany<string> OneOrManyQueryTags => _queryTags;
127-
128110
/// <inheritdoc/>
129111
public virtual IEnumerable<T> Evaluate(IEnumerable<T> entities)
130112
{
@@ -139,6 +121,20 @@ public virtual bool IsSatisfiedBy(T entity)
139121
return validator.IsValid(entity, this);
140122
}
141123

124+
internal OneOrMany<WhereExpressionInfo<T>> OneOrManyWhereExpressions => _whereExpressions;
125+
internal OneOrMany<SearchExpressionInfo<T>> OneOrManySearchExpressions => _searchExpressions;
126+
internal OneOrMany<OrderExpressionInfo<T>> OneOrManyOrderExpressions => _orderExpressions;
127+
internal OneOrMany<IncludeExpressionInfo> OneOrManyIncludeExpressions => _includeExpressions;
128+
internal OneOrMany<string> OneOrManyIncludeStrings => _includeStrings;
129+
internal OneOrMany<string> OneOrManyQueryTags => _queryTags;
130+
131+
internal void Add(WhereExpressionInfo<T> whereExpression) => _whereExpressions.Add(whereExpression);
132+
internal void Add(SearchExpressionInfo<T> searchExpression) => _searchExpressions.AddSorted(searchExpression, SearchExpressionComparer<T>.Default);
133+
internal void Add(OrderExpressionInfo<T> orderExpression) => _orderExpressions.Add(orderExpression);
134+
internal void Add(IncludeExpressionInfo includeExpression) => _includeExpressions.Add(includeExpression);
135+
internal void Add(string includeString) => _includeStrings.Add(includeString);
136+
internal void AddQueryTag(string queryTag) => _queryTags.Add(queryTag);
137+
142138
internal Specification<T> Clone()
143139
{
144140
var newSpec = new Specification<T>();

src/Directory.Build.props

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@
3636
</PropertyGroup>
3737

3838
<ItemGroup>
39-
<None Include="../../icon.png" Pack="true" PackagePath="\" />
40-
<None Include="../../readme-nuget.md" Pack="true" PackagePath="\" />
41-
<None Include="../../LICENSE" Pack="true" PackagePath="\" />
39+
<None Include="../../icon.png" Pack="true" PackagePath="\" Visible="false" />
40+
<None Include="../../readme-nuget.md" Pack="true" PackagePath="\" Visible="false" />
41+
<None Include="../../LICENSE" Pack="true" PackagePath="\" Visible="false" />
4242
</ItemGroup>
4343

4444
</Project>

tests/Ardalis.Specification.EntityFrameworkCore.Tests/Evaluators/SearchExtensionTests.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,6 @@ public void QueriesMatch_GivenMultipleSearchAsEnumerable()
5454
[Fact]
5555
public void QueriesMatch_GivenEmptyAsSpan()
5656
{
57-
var spec = new Specification<Store>();
58-
5957
var array = Array.Empty<SearchExpressionInfo<Store>>();
6058

6159
var actual = DbContext.Stores
@@ -71,8 +69,6 @@ public void QueriesMatch_GivenEmptyAsSpan()
7169
[Fact]
7270
public void QueriesMatch_GivenEmptyAsEnumerable()
7371
{
74-
var spec = new Specification<Store>();
75-
7672
var array = Array.Empty<SearchExpressionInfo<Store>>();
7773

7874
var actual = DbContext.Stores

tests/Ardalis.Specification.EntityFrameworkCore.Tests/Fixture/TestFactory.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace Tests.Fixture;
77
public class TestFactory : IAsyncLifetime
88
{
99
// Flag to force using Docker SQL Server. Update it manually if you want to avoid localDb locally.
10-
private const bool _forceDocker = false;
10+
private const bool FORCE_DOCKER = false;
1111

1212
private string _connectionString = default!;
1313
private Respawner _respawner = default!;
@@ -21,7 +21,7 @@ public async Task InitializeAsync()
2121
{
2222
using (var localDB = new SqlLocalDbApi())
2323
{
24-
if (_forceDocker || !localDB.IsLocalDBInstalled())
24+
if (FORCE_DOCKER || !localDB.IsLocalDBInstalled())
2525
{
2626
_dbContainer = CreateContainer();
2727
await _dbContainer.StartAsync();

0 commit comments

Comments
 (0)