Skip to content

Commit c4258b2

Browse files
author
Bart Koelman
committed
Moved expressions and interfaces out of Internal namespace; added doc-comments on several types.
1 parent 8af8219 commit c4258b2

File tree

113 files changed

+462
-231
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+462
-231
lines changed

benchmarks/DependencyFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using JsonApiDotNetCore.Configuration;
44
using JsonApiDotNetCore.Internal.Contracts;
55
using JsonApiDotNetCore.Models;
6-
using JsonApiDotNetCore.Query;
6+
using JsonApiDotNetCore.Services.Contract;
77
using Microsoft.Extensions.Logging.Abstractions;
88
using Moq;
99

benchmarks/Query/QueryParserBenchmarks.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using JsonApiDotNetCore.Internal;
77
using JsonApiDotNetCore.Internal.Contracts;
88
using JsonApiDotNetCore.Internal.QueryStrings;
9+
using JsonApiDotNetCore.QueryStrings;
910
using JsonApiDotNetCore.RequestServices;
1011
using Microsoft.AspNetCore.Http;
1112
using Microsoft.AspNetCore.WebUtilities;

benchmarks/Serialization/JsonApiSerializerBenchmarks.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
using BenchmarkDotNet.Attributes;
33
using JsonApiDotNetCore.Configuration;
44
using JsonApiDotNetCore.Internal.Contracts;
5-
using JsonApiDotNetCore.Internal.Queries;
65
using JsonApiDotNetCore.Internal.QueryStrings;
6+
using JsonApiDotNetCore.Queries;
77
using JsonApiDotNetCore.RequestServices;
88
using JsonApiDotNetCore.Serialization;
99
using JsonApiDotNetCore.Serialization.Server;

src/Examples/JsonApiDotNetCoreExample/Services/CustomArticleService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
using Microsoft.Extensions.Logging;
77
using System.Threading.Tasks;
88
using JsonApiDotNetCore.Internal;
9-
using JsonApiDotNetCore.Internal.Queries;
9+
using JsonApiDotNetCore.Queries;
1010
using JsonApiDotNetCore.RequestServices;
1111
using JsonApiDotNetCore.RequestServices.Contracts;
1212

src/Examples/JsonApiDotNetCoreExample/Services/SkipCacheQueryStringParameterReader.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System.Linq;
22
using JsonApiDotNetCore.Controllers;
33
using JsonApiDotNetCore.Exceptions;
4-
using JsonApiDotNetCore.Internal.QueryStrings;
4+
using JsonApiDotNetCore.QueryStrings;
55
using Microsoft.Extensions.Primitives;
66

77
namespace JsonApiDotNetCoreExample.Services

src/Examples/JsonApiDotNetCoreExample/Startups/Startup.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
using System;
88
using JsonApiDotNetCore;
99
using JsonApiDotNetCore.Configuration;
10-
using JsonApiDotNetCore.Internal.QueryStrings;
10+
using JsonApiDotNetCore.QueryStrings;
1111
using JsonApiDotNetCoreExample.Services;
1212
using Microsoft.AspNetCore.Authentication;
1313
using Newtonsoft.Json;

src/JsonApiDotNetCore/Builders/JsonApiApplicationBuilder.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,14 @@
1616
using JsonApiDotNetCore.Internal.Contracts;
1717
using JsonApiDotNetCore.Internal.Queries;
1818
using JsonApiDotNetCore.Internal.QueryStrings;
19-
using JsonApiDotNetCore.Query;
19+
using JsonApiDotNetCore.Queries;
20+
using JsonApiDotNetCore.QueryStrings;
2021
using JsonApiDotNetCore.Serialization.Server.Builders;
2122
using JsonApiDotNetCore.Serialization.Server;
2223
using Microsoft.Extensions.DependencyInjection.Extensions;
2324
using JsonApiDotNetCore.RequestServices;
2425
using JsonApiDotNetCore.RequestServices.Contracts;
26+
using JsonApiDotNetCore.Services.Contract;
2527

2628
namespace JsonApiDotNetCore.Builders
2729
{

src/JsonApiDotNetCore/Data/EntityFrameworkCoreRepository.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
using JsonApiDotNetCore.Internal;
88
using JsonApiDotNetCore.Internal.Contracts;
99
using JsonApiDotNetCore.Internal.Generics;
10-
using JsonApiDotNetCore.Internal.Queries;
11-
using JsonApiDotNetCore.Internal.Queries.Expressions;
1210
using JsonApiDotNetCore.Internal.Queries.QueryableBuilding;
1311
using JsonApiDotNetCore.Models;
1412
using JsonApiDotNetCore.Models.Annotation;
13+
using JsonApiDotNetCore.Queries;
14+
using JsonApiDotNetCore.Queries.Expressions;
1515
using JsonApiDotNetCore.Serialization;
1616
using Microsoft.EntityFrameworkCore;
1717
using Microsoft.Extensions.Logging;

src/JsonApiDotNetCore/Data/IResourceReadRepository.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
using System.Collections.Generic;
22
using System.Threading.Tasks;
3-
using JsonApiDotNetCore.Internal.Queries;
4-
using JsonApiDotNetCore.Internal.Queries.Expressions;
53
using JsonApiDotNetCore.Models;
4+
using JsonApiDotNetCore.Queries;
5+
using JsonApiDotNetCore.Queries.Expressions;
66

77
namespace JsonApiDotNetCore.Data
88
{

src/JsonApiDotNetCore/Exceptions/InvalidQueryException.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System;
22
using System.Net;
3-
using JsonApiDotNetCore.Internal.Queries;
43
using JsonApiDotNetCore.Models.JsonApiDocuments;
4+
using JsonApiDotNetCore.Queries;
55

66
namespace JsonApiDotNetCore.Exceptions
77
{

src/JsonApiDotNetCore/Hooks/Execution/HookExecutorHelper.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
using JsonApiDotNetCore.Internal;
1313
using JsonApiDotNetCore.Configuration;
1414
using JsonApiDotNetCore.Internal.Contracts;
15-
using JsonApiDotNetCore.Internal.Queries;
16-
using JsonApiDotNetCore.Internal.Queries.Expressions;
1715
using JsonApiDotNetCore.Models.Annotation;
16+
using JsonApiDotNetCore.Queries;
17+
using JsonApiDotNetCore.Queries.Expressions;
1818

1919
namespace JsonApiDotNetCore.Hooks
2020
{

src/JsonApiDotNetCore/Hooks/ResourceHookExecutor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
using RightType = System.Type;
1010
using JsonApiDotNetCore.Extensions;
1111
using JsonApiDotNetCore.Internal.Contracts;
12-
using JsonApiDotNetCore.Internal.Queries;
13-
using JsonApiDotNetCore.Internal.Queries.Expressions;
1412
using JsonApiDotNetCore.Models.Annotation;
13+
using JsonApiDotNetCore.Queries;
14+
using JsonApiDotNetCore.Queries.Expressions;
1515
using JsonApiDotNetCore.Serialization;
1616

1717
namespace JsonApiDotNetCore.Hooks

src/JsonApiDotNetCore/Internal/Queries/Expressions/FilterExpression.cs

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/JsonApiDotNetCore/Internal/Queries/Expressions/FunctionExpression.cs

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/JsonApiDotNetCore/Internal/Queries/Expressions/IdentifierExpression.cs

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/JsonApiDotNetCore/Internal/Queries/Expressions/QueryExpression.cs

Lines changed: 0 additions & 8 deletions
This file was deleted.

src/JsonApiDotNetCore/Internal/Queries/IQueryConstraintProvider.cs

Lines changed: 0 additions & 9 deletions
This file was deleted.

src/JsonApiDotNetCore/Internal/Queries/Parsing/ResolveFieldChainCallback.cs renamed to src/JsonApiDotNetCore/Internal/Queries/Parsing/FieldChainRequirements.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
using System;
2-
using System.Collections.Generic;
3-
using JsonApiDotNetCore.Models.Annotation;
42

53
namespace JsonApiDotNetCore.Internal.Queries.Parsing
64
{
@@ -13,6 +11,4 @@ public enum FieldChainRequirements
1311

1412
IsRelationship = EndsInToOne | EndsInToMany
1513
}
16-
17-
public delegate IReadOnlyCollection<ResourceFieldAttribute> ResolveFieldChainCallback(string path, FieldChainRequirements requirements);
1814
}

src/JsonApiDotNetCore/Internal/Queries/Parsing/FilterParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
using System.Reflection;
55
using Humanizer;
66
using JsonApiDotNetCore.Internal.Contracts;
7-
using JsonApiDotNetCore.Internal.Queries.Expressions;
87
using JsonApiDotNetCore.Models;
98
using JsonApiDotNetCore.Models.Annotation;
9+
using JsonApiDotNetCore.Queries.Expressions;
1010

1111
namespace JsonApiDotNetCore.Internal.Queries.Parsing
1212
{

src/JsonApiDotNetCore/Internal/Queries/Parsing/IncludeParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
using System.Collections.Generic;
33
using System.Linq;
44
using JsonApiDotNetCore.Internal.Contracts;
5-
using JsonApiDotNetCore.Internal.Queries.Expressions;
65
using JsonApiDotNetCore.Models.Annotation;
6+
using JsonApiDotNetCore.Queries.Expressions;
77

88
namespace JsonApiDotNetCore.Internal.Queries.Parsing
99
{

src/JsonApiDotNetCore/Internal/Queries/Parsing/PaginationParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
using System.Collections.Generic;
33
using System.Linq;
44
using JsonApiDotNetCore.Internal.Contracts;
5-
using JsonApiDotNetCore.Internal.Queries.Expressions;
65
using JsonApiDotNetCore.Models.Annotation;
6+
using JsonApiDotNetCore.Queries.Expressions;
77

88
namespace JsonApiDotNetCore.Internal.Queries.Parsing
99
{

src/JsonApiDotNetCore/Internal/Queries/Parsing/QueryParser.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
using System.Collections.Generic;
22
using System.Linq;
33
using JsonApiDotNetCore.Internal.Contracts;
4-
using JsonApiDotNetCore.Internal.Queries.Expressions;
5-
using JsonApiDotNetCore.Internal.QueryStrings;
64
using JsonApiDotNetCore.Models.Annotation;
5+
using JsonApiDotNetCore.Queries.Expressions;
76

87
namespace JsonApiDotNetCore.Internal.Queries.Parsing
98
{
9+
/// <summary>
10+
/// Base class for parsing query string parameters.
11+
/// </summary>
1012
public abstract class QueryParser
1113
{
1214
private protected ResourceFieldChainResolver ChainResolver { get; }
@@ -18,6 +20,9 @@ protected QueryParser(IResourceContextProvider resourceContextProvider)
1820
ChainResolver = new ResourceFieldChainResolver(resourceContextProvider);
1921
}
2022

23+
/// <summary>
24+
/// Takes a dotted path and walks the resource graph to produce a chain of fields.
25+
/// </summary>
2126
protected abstract IReadOnlyCollection<ResourceFieldAttribute> OnResolveFieldChain(string path, FieldChainRequirements chainRequirements);
2227

2328
protected virtual void Tokenize(string source)

src/JsonApiDotNetCore/Internal/Queries/Parsing/QueryStringParameterScopeParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
using System;
22
using System.Collections.Generic;
33
using JsonApiDotNetCore.Internal.Contracts;
4-
using JsonApiDotNetCore.Internal.Queries.Expressions;
54
using JsonApiDotNetCore.Models.Annotation;
5+
using JsonApiDotNetCore.Queries.Expressions;
66

77
namespace JsonApiDotNetCore.Internal.Queries.Parsing
88
{

src/JsonApiDotNetCore/Internal/QueryStrings/ResourceFieldChainResolver.cs renamed to src/JsonApiDotNetCore/Internal/Queries/Parsing/ResourceFieldChainResolver.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22
using System.Collections.Generic;
33
using System.Linq;
44
using JsonApiDotNetCore.Internal.Contracts;
5-
using JsonApiDotNetCore.Internal.Queries.Parsing;
65
using JsonApiDotNetCore.Models.Annotation;
76

8-
namespace JsonApiDotNetCore.Internal.QueryStrings
7+
namespace JsonApiDotNetCore.Internal.Queries.Parsing
98
{
10-
internal class ResourceFieldChainResolver
9+
internal sealed class ResourceFieldChainResolver
1110
{
1211
private readonly IResourceContextProvider _resourceContextProvider;
1312

src/JsonApiDotNetCore/Internal/Queries/Parsing/SortParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
using System.Collections.Generic;
33
using System.Linq;
44
using JsonApiDotNetCore.Internal.Contracts;
5-
using JsonApiDotNetCore.Internal.Queries.Expressions;
65
using JsonApiDotNetCore.Models.Annotation;
6+
using JsonApiDotNetCore.Queries.Expressions;
77

88
namespace JsonApiDotNetCore.Internal.Queries.Parsing
99
{

src/JsonApiDotNetCore/Internal/Queries/Parsing/SparseFieldSetParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
using System.Collections.Generic;
33
using System.Linq;
44
using JsonApiDotNetCore.Internal.Contracts;
5-
using JsonApiDotNetCore.Internal.Queries.Expressions;
65
using JsonApiDotNetCore.Models.Annotation;
6+
using JsonApiDotNetCore.Queries.Expressions;
77

88
namespace JsonApiDotNetCore.Internal.Queries.Parsing
99
{

src/JsonApiDotNetCore/Internal/Queries/QueryLayerComposer.cs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,15 @@
33
using System.Linq;
44
using JsonApiDotNetCore.Configuration;
55
using JsonApiDotNetCore.Internal.Contracts;
6-
using JsonApiDotNetCore.Internal.Queries.Expressions;
76
using JsonApiDotNetCore.Models;
87
using JsonApiDotNetCore.Models.Annotation;
9-
using JsonApiDotNetCore.Query;
8+
using JsonApiDotNetCore.Queries;
9+
using JsonApiDotNetCore.Queries.Expressions;
10+
using JsonApiDotNetCore.Services.Contract;
1011

1112
namespace JsonApiDotNetCore.Internal.Queries
1213
{
13-
public interface IQueryLayerComposer
14-
{
15-
FilterExpression GetTopFilter();
16-
QueryLayer Compose(ResourceContext requestResource);
17-
}
18-
14+
/// <inheritdoc/>
1915
public class QueryLayerComposer : IQueryLayerComposer
2016
{
2117
private readonly IEnumerable<IQueryConstraintProvider> _constraintProviders;
@@ -38,6 +34,7 @@ public QueryLayerComposer(
3834
_paginationContext = paginationContext ?? throw new ArgumentNullException(nameof(paginationContext));
3935
}
4036

37+
/// <inheritdoc/>
4138
public FilterExpression GetTopFilter()
4239
{
4340
var constraints = _constraintProviders.SelectMany(p => p.GetConstraints()).ToArray();
@@ -61,6 +58,7 @@ public FilterExpression GetTopFilter()
6158
return new LogicalExpression(LogicalOperator.And, topFilters);
6259
}
6360

61+
/// <inheritdoc/>
6462
public QueryLayer Compose(ResourceContext requestResource)
6563
{
6664
if (requestResource == null)

src/JsonApiDotNetCore/Internal/Queries/QueryableBuilding/IncludeClauseBuilder.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@
33
using System.Linq;
44
using System.Linq.Expressions;
55
using JsonApiDotNetCore.Internal.Contracts;
6-
using JsonApiDotNetCore.Internal.Queries.Expressions;
76
using JsonApiDotNetCore.Models.Annotation;
7+
using JsonApiDotNetCore.Queries.Expressions;
88
using Microsoft.EntityFrameworkCore;
99

1010
namespace JsonApiDotNetCore.Internal.Queries.QueryableBuilding
1111
{
12+
/// <summary>
13+
/// Transforms <see cref="IncludeExpression"/> into <see cref="EntityFrameworkQueryableExtensions.Include{TEntity, TProperty}"/> calls.
14+
/// </summary>
1215
public class IncludeClauseBuilder : QueryClauseBuilder<object>
1316
{
1417
private readonly Expression _source;

src/JsonApiDotNetCore/Internal/Queries/QueryableBuilding/LambdaScope.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44

55
namespace JsonApiDotNetCore.Internal.Queries.QueryableBuilding
66
{
7+
/// <summary>
8+
/// Contains details on a lambda expression, such as the name of the selector "x" in "x => x.Name".
9+
/// </summary>
710
public sealed class LambdaScope : IDisposable
811
{
912
private readonly LambdaParameterNameScope _parameterNameScope;

src/JsonApiDotNetCore/Internal/Queries/QueryableBuilding/OrderClauseBuilder.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22
using System.Collections.Generic;
33
using System.Linq;
44
using System.Linq.Expressions;
5-
using JsonApiDotNetCore.Internal.Queries.Expressions;
65
using JsonApiDotNetCore.Models.Annotation;
6+
using JsonApiDotNetCore.Queries.Expressions;
77

88
namespace JsonApiDotNetCore.Internal.Queries.QueryableBuilding
99
{
10+
/// <summary>
11+
/// Transforms <see cref="SortExpression"/> into <see cref="Queryable.OrderBy{TSource, TKey}(IQueryable{TSource}, Expression{Func{TSource, TKey}})"/> calls.
12+
/// </summary>
1013
public class OrderClauseBuilder : QueryClauseBuilder<Expression>
1114
{
1215
private readonly Expression _source;

src/JsonApiDotNetCore/Internal/Queries/QueryableBuilding/QueryClauseBuilder.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@
44
using System.Linq.Expressions;
55
using System.Reflection;
66
using JsonApiDotNetCore.Extensions;
7-
using JsonApiDotNetCore.Internal.Queries.Expressions;
87
using JsonApiDotNetCore.Models.Annotation;
8+
using JsonApiDotNetCore.Queries.Expressions;
99

1010
namespace JsonApiDotNetCore.Internal.Queries.QueryableBuilding
1111
{
12+
/// <summary>
13+
/// Base class for transforming <see cref="QueryExpression"/> trees into system <see cref="Expression"/> trees.
14+
/// </summary>
1215
public abstract class QueryClauseBuilder<TArgument> : QueryExpressionVisitor<TArgument, Expression>
1316
{
1417
protected LambdaScope LambdaScope { get; }

0 commit comments

Comments
 (0)