diff --git a/benchmarks/Tools/FakeRequestQueryStringAccessor.cs b/benchmarks/Tools/FakeRequestQueryStringAccessor.cs
index 8b2b5540a1..75c0805209 100644
--- a/benchmarks/Tools/FakeRequestQueryStringAccessor.cs
+++ b/benchmarks/Tools/FakeRequestQueryStringAccessor.cs
@@ -5,7 +5,7 @@
namespace Benchmarks.Tools;
///
-/// Enables to inject a query string, instead of obtaining it from .
+/// Enables injecting a query string, instead of obtaining it from .
///
internal sealed class FakeRequestQueryStringAccessor : IRequestQueryStringAccessor
{
diff --git a/docs/usage/faq.md b/docs/usage/faq.md
index 58c9dece3b..247ca3f6bd 100644
--- a/docs/usage/faq.md
+++ b/docs/usage/faq.md
@@ -22,7 +22,7 @@ You'll need to build the resource graph on the client and rely on internal imple
Due to auto-generated controllers, you may find it hard to determine where to put your breakpoints.
In Visual Studio, controllers are accessible below **Solution Explorer > Project > Dependencies > Analyzers > JsonApiDotNetCore.SourceGenerators**.
-After turning on [Source Link](https://devblogs.microsoft.com/dotnet/improving-debug-time-productivity-with-source-link/#enabling-source-link) (which enables to download the JsonApiDotNetCore source code from GitHub), you can step into our source code and add breakpoints there too.
+After turning on [Source Link](https://devblogs.microsoft.com/dotnet/improving-debug-time-productivity-with-source-link/#enabling-source-link) (which enables downloading the JsonApiDotNetCore source code from GitHub), you can step into our source code and add breakpoints there too.
Here are some key places in the execution pipeline to set a breakpoint:
- `JsonApiRoutingConvention.Apply`: Controllers are registered here (executes once at startup)
diff --git a/docs/usage/openapi-documentation.md b/docs/usage/openapi-documentation.md
index 6737bd6404..45ebbb4bc5 100644
--- a/docs/usage/openapi-documentation.md
+++ b/docs/usage/openapi-documentation.md
@@ -7,7 +7,7 @@ After [enabling OpenAPI](~/usage/openapi.md), you can expose a documentation web
## SwaggerUI
-[SwaggerUI](https://swagger.io/tools/swagger-ui/) enables to visualize and interact with the JSON:API endpoints through a web page.
+[SwaggerUI](https://swagger.io/tools/swagger-ui/) enables visualizing and interacting with the JSON:API endpoints through a web page.
While it conveniently provides the ability to execute requests, it doesn't show properties of derived types when component schema inheritance is used.
SwaggerUI can be enabled by installing the `Swashbuckle.AspNetCore.SwaggerUI` NuGet package and adding the following to your `Program.cs` file:
diff --git a/docs/usage/openapi.md b/docs/usage/openapi.md
index c27fcd50b4..8017148c1f 100644
--- a/docs/usage/openapi.md
+++ b/docs/usage/openapi.md
@@ -3,8 +3,8 @@
# OpenAPI
-Exposing an [OpenAPI document](https://swagger.io/specification/) for your JSON:API endpoints enables to provide a
-[documentation website](https://swagger.io/tools/swagger-ui/) and to generate typed
+Exposing an [OpenAPI document](https://swagger.io/specification/) for your JSON:API endpoints enables providing a
+[documentation website](https://swagger.io/tools/swagger-ui/) and generating typed
[client libraries](https://openapi-generator.tech/docs/generators/) in various languages.
The [JsonApiDotNetCore.OpenApi.Swashbuckle](https://github.com/json-api-dotnet/JsonApiDotNetCore/pkgs/nuget/JsonApiDotNetCore.OpenApi.Swashbuckle) NuGet package
diff --git a/docs/usage/resources/inheritance.md b/docs/usage/resources/inheritance.md
index 56c046ef82..9d983808b7 100644
--- a/docs/usage/resources/inheritance.md
+++ b/docs/usage/resources/inheritance.md
@@ -289,7 +289,7 @@ Resource definitions provide a better solution, see below.
### Resource definitions
In contrast to the request pipeline, JsonApiDotNetCore always executes the resource definition that matches the *stored* type.
-This enables to implement business logic in a central place, irrespective of which endpoint was used or whether base types were used in relationships.
+This enables implementing business logic in a central place, irrespective of which endpoint was used or whether base types were used in relationships.
To delegate logic for base types to their matching resource type, you can build a chain of resource definitions. And because you'll always get the
actually stored types (for relationships too), you can type-check left-side and right-side types in resources definitions.
diff --git a/src/Examples/DapperExample/TranslationToSql/Builders/SelectStatementBuilder.cs b/src/Examples/DapperExample/TranslationToSql/Builders/SelectStatementBuilder.cs
index a4697287ab..c211950d8f 100644
--- a/src/Examples/DapperExample/TranslationToSql/Builders/SelectStatementBuilder.cs
+++ b/src/Examples/DapperExample/TranslationToSql/Builders/SelectStatementBuilder.cs
@@ -746,7 +746,7 @@ private sealed class QueryState
public ILoggerFactory LoggerFactory { get; }
- // Prevents importing a table multiple times and enables to reference a table imported by an inner/outer query.
+ // Prevents importing a table multiple times and enables referencing a table imported by an inner/outer query.
// In case of sub-queries, this may include temporary tables that won't survive in the final query.
public Dictionary> RelatedTables { get; } = [];
diff --git a/src/Examples/OpenApiKiotaClientExample/Worker.cs b/src/Examples/OpenApiKiotaClientExample/Worker.cs
index 56c6cd6b0d..30b38a111a 100644
--- a/src/Examples/OpenApiKiotaClientExample/Worker.cs
+++ b/src/Examples/OpenApiKiotaClientExample/Worker.cs
@@ -93,7 +93,7 @@ private async Task UpdatePersonAsync(CancellationToken cancellationToken)
Id = "1",
Attributes = new AttributesInUpdatePersonRequest
{
- // The --backing-store switch enables to send null and default values.
+ // The --backing-store switch enables sending null and default values.
FirstName = null,
LastName = "Doe"
}
@@ -145,7 +145,7 @@ private async Task SendOperationsRequestAsync(CancellationToken cancellationToke
Lid = "new-person",
Attributes = new AttributesInUpdatePersonRequest
{
- // The --backing-store switch enables to send null and default values.
+ // The --backing-store switch enables sending null and default values.
FirstName = null
}
}
diff --git a/src/JsonApiDotNetCore.Annotations/Resources/RuntimeTypeConverter.cs b/src/JsonApiDotNetCore.Annotations/Resources/RuntimeTypeConverter.cs
index fab50e3c37..717c63d164 100644
--- a/src/JsonApiDotNetCore.Annotations/Resources/RuntimeTypeConverter.cs
+++ b/src/JsonApiDotNetCore.Annotations/Resources/RuntimeTypeConverter.cs
@@ -38,7 +38,7 @@ public static class RuntimeTypeConverter
// Earlier versions of JsonApiDotNetCore failed to pass CultureInfo.InvariantCulture in the parsing below, which resulted in the 'current'
// culture being used. Unlike parsing JSON request/response bodies, this effectively meant that query strings were parsed based on the
// OS-level regional settings of the web server.
- // Because this was fixed in a non-major release, the switch below enables to revert to the old behavior.
+ // Because this was fixed in a non-major release, the switch below enables reverting to the old behavior.
// With the switch activated, API developers can still choose between:
// - Requiring localized date/number formats: parsing occurs using the OS-level regional settings (the default).
diff --git a/src/JsonApiDotNetCore.Annotations/TypeExtensions.cs b/src/JsonApiDotNetCore.Annotations/TypeExtensions.cs
index 0621760ac0..9164b2253b 100644
--- a/src/JsonApiDotNetCore.Annotations/TypeExtensions.cs
+++ b/src/JsonApiDotNetCore.Annotations/TypeExtensions.cs
@@ -11,7 +11,7 @@ public static bool IsOrImplementsInterface(this Type? source)
}
///
- /// Whether the specified source type implements or equals the specified interface. This overload enables to test for an open generic interface.
+ /// Whether the specified source type implements or equals the specified interface. This overload enables testing for an open generic interface.
///
private static bool IsOrImplementsInterface(this Type? source, Type interfaceType)
{
diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/SchemaGenerationTracer.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/SchemaGenerationTracer.cs
index 199eb0ac86..a94a217046 100644
--- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/SchemaGenerationTracer.cs
+++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/SchemaGenerationTracer.cs
@@ -6,7 +6,7 @@
namespace JsonApiDotNetCore.OpenApi.Swashbuckle;
///
-/// Enables to log recursive component schema generation at trace level.
+/// Enables logging recursive component schema generation at trace level.
///
internal sealed partial class SchemaGenerationTracer
{
diff --git a/src/JsonApiDotNetCore/AtomicOperations/IOperationsTransaction.cs b/src/JsonApiDotNetCore/AtomicOperations/IOperationsTransaction.cs
index d7e4ee4b2c..73f33b6402 100644
--- a/src/JsonApiDotNetCore/AtomicOperations/IOperationsTransaction.cs
+++ b/src/JsonApiDotNetCore/AtomicOperations/IOperationsTransaction.cs
@@ -14,12 +14,12 @@ public interface IOperationsTransaction : IAsyncDisposable
string TransactionId { get; }
///
- /// Enables to execute custom logic before processing of an operation starts.
+ /// Enables executing custom logic before processing of an operation starts.
///
Task BeforeProcessOperationAsync(CancellationToken cancellationToken);
///
- /// Enables to execute custom logic after processing of an operation succeeds.
+ /// Enables executing custom logic after processing of an operation succeeds.
///
Task AfterProcessOperationAsync(CancellationToken cancellationToken);
diff --git a/src/JsonApiDotNetCore/Configuration/IJsonApiOptions.cs b/src/JsonApiDotNetCore/Configuration/IJsonApiOptions.cs
index 7da33c70cf..0c466c92ac 100644
--- a/src/JsonApiDotNetCore/Configuration/IJsonApiOptions.cs
+++ b/src/JsonApiDotNetCore/Configuration/IJsonApiOptions.cs
@@ -170,8 +170,8 @@ public interface IJsonApiOptions
int? MaximumOperationsPerRequest { get; }
///
- /// Enables to override the default isolation level for database transactions, enabling to balance between consistency and performance. Defaults to
- /// null, which leaves this up to Entity Framework Core to choose (and then it varies per database provider).
+ /// Enables overriding the default isolation level for database transactions to balance between consistency and performance. Defaults to null,
+ /// which leaves this up to Entity Framework Core to choose (and then it varies per database provider).
///
IsolationLevel? TransactionIsolationLevel { get; }
@@ -188,7 +188,7 @@ public interface IJsonApiOptions
IReadOnlySet Extensions { get; }
///
- /// Enables to customize the settings that are used by the .
+ /// Enables customizing the settings that are used by the .
///
///
/// The following example sets the naming convention to camel casing.
diff --git a/src/JsonApiDotNetCore/Configuration/ResourceGraphBuilder.cs b/src/JsonApiDotNetCore/Configuration/ResourceGraphBuilder.cs
index cabc8bcc06..641ebc0638 100644
--- a/src/JsonApiDotNetCore/Configuration/ResourceGraphBuilder.cs
+++ b/src/JsonApiDotNetCore/Configuration/ResourceGraphBuilder.cs
@@ -302,7 +302,7 @@ private Dictionary.ValueCollection GetAttributes(Type res
if (property.Name == nameof(Identifiable<>.Id))
{
// Although strictly not correct, 'id' is added to the list of attributes for convenience.
- // For example, it enables to filter on ID, without the need to special-case existing logic.
+ // For example, it enables filtering on ID, without the need to special-case existing logic.
// And when using sparse fieldsets, it silently adds 'id' to the set of attributes to retrieve.
attribute = new AttrAttribute();
diff --git a/src/JsonApiDotNetCore/Errors/InvalidModelStateException.cs b/src/JsonApiDotNetCore/Errors/InvalidModelStateException.cs
index 2c46313e34..7e6ba6b31c 100644
--- a/src/JsonApiDotNetCore/Errors/InvalidModelStateException.cs
+++ b/src/JsonApiDotNetCore/Errors/InvalidModelStateException.cs
@@ -214,7 +214,7 @@ private abstract class ModelStateKeySegment
// The right part of the full key, which nested segments are produced from.
private readonly string _nextKey;
- // Enables to resolve the runtime-type of a collection element, such as the resource type in an atomic:operation.
+ // Enables resolving the runtime-type of a collection element, such as the resource type in an atomic:operation.
protected Func? GetCollectionElementTypeCallback { get; }
// In case of a property, its declaring type. In case of an indexer, the collection type or collection element type (in case the parent is a relationship).
diff --git a/src/JsonApiDotNetCore/Middleware/IJsonApiEndpointFilter.cs b/src/JsonApiDotNetCore/Middleware/IJsonApiEndpointFilter.cs
index 6dbf81bce3..6cb91c90e7 100644
--- a/src/JsonApiDotNetCore/Middleware/IJsonApiEndpointFilter.cs
+++ b/src/JsonApiDotNetCore/Middleware/IJsonApiEndpointFilter.cs
@@ -6,7 +6,7 @@
namespace JsonApiDotNetCore.Middleware;
///
-/// Enables to remove JSON:API controller action methods at startup. For atomic:operation requests, see .
+/// Enables removing JSON:API controller action methods at startup. For atomic:operation requests, see .
///
[PublicAPI]
public interface IJsonApiEndpointFilter
diff --git a/src/JsonApiDotNetCore/Queries/Expressions/AnyExpression.cs b/src/JsonApiDotNetCore/Queries/Expressions/AnyExpression.cs
index 3d88cd1b5d..8e8f43f054 100644
--- a/src/JsonApiDotNetCore/Queries/Expressions/AnyExpression.cs
+++ b/src/JsonApiDotNetCore/Queries/Expressions/AnyExpression.cs
@@ -6,8 +6,8 @@
namespace JsonApiDotNetCore.Queries.Expressions;
///
-/// This expression allows to test if an attribute value equals any of the specified constants. It represents the "any" filter function, resulting from
-/// text such as:
+/// This expression tests if an attribute value equals any of the specified constants. It represents the "any" filter function, resulting from text such
+/// as:
///
/// any(owner.name,'Jack','Joe','John')
///
diff --git a/src/JsonApiDotNetCore/Queries/Expressions/ComparisonExpression.cs b/src/JsonApiDotNetCore/Queries/Expressions/ComparisonExpression.cs
index b768f556ce..5c2ad22df6 100644
--- a/src/JsonApiDotNetCore/Queries/Expressions/ComparisonExpression.cs
+++ b/src/JsonApiDotNetCore/Queries/Expressions/ComparisonExpression.cs
@@ -4,7 +4,7 @@
namespace JsonApiDotNetCore.Queries.Expressions;
///
-/// This expression allows to compare two operands using a comparison operator. It represents comparison filter functions, resulting from text such as:
+/// This expression compares two operands using a comparison operator. It represents comparison filter functions, resulting from text such as:
///
/// equals(name,'Joe')
///
diff --git a/src/JsonApiDotNetCore/Queries/Expressions/CountExpression.cs b/src/JsonApiDotNetCore/Queries/Expressions/CountExpression.cs
index f79c49af1b..e927c8cb2e 100644
--- a/src/JsonApiDotNetCore/Queries/Expressions/CountExpression.cs
+++ b/src/JsonApiDotNetCore/Queries/Expressions/CountExpression.cs
@@ -4,8 +4,8 @@
namespace JsonApiDotNetCore.Queries.Expressions;
///
-/// This expression allows to determine the number of related resources in a to-many relationship. It represents the "count" function, resulting from
-/// text such as:
+/// This expression determines the number of related resources in a to-many relationship. It represents the "count" function, resulting from text such
+/// as:
///
/// count(articles)
///
diff --git a/src/JsonApiDotNetCore/Queries/Expressions/HasExpression.cs b/src/JsonApiDotNetCore/Queries/Expressions/HasExpression.cs
index 1d5f381a3b..11049eda80 100644
--- a/src/JsonApiDotNetCore/Queries/Expressions/HasExpression.cs
+++ b/src/JsonApiDotNetCore/Queries/Expressions/HasExpression.cs
@@ -5,7 +5,7 @@
namespace JsonApiDotNetCore.Queries.Expressions;
///
-/// This expression allows to test if a to-many relationship has related resources, optionally with a condition. It represents the "has" filter function,
+/// This expression tests if a to-many relationship has related resources, optionally with a condition. It represents the "has" filter function,
/// resulting from text such as:
///
/// has(articles)
diff --git a/src/JsonApiDotNetCore/Queries/Expressions/IsTypeExpression.cs b/src/JsonApiDotNetCore/Queries/Expressions/IsTypeExpression.cs
index b8d85c4f6f..a5c692b270 100644
--- a/src/JsonApiDotNetCore/Queries/Expressions/IsTypeExpression.cs
+++ b/src/JsonApiDotNetCore/Queries/Expressions/IsTypeExpression.cs
@@ -6,8 +6,8 @@
namespace JsonApiDotNetCore.Queries.Expressions;
///
-/// This expression allows to test if a resource in an inheritance hierarchy can be upcast to a derived type, optionally with a condition where the
-/// derived type is accessible. It represents the "isType" filter function, resulting from text such as:
+/// This expression tests if a resource in an inheritance hierarchy can be upcast to a derived type, optionally with a condition where the derived type
+/// is accessible. It represents the "isType" filter function, resulting from text such as:
///
/// isType(,men)
///
diff --git a/src/JsonApiDotNetCore/Queries/Expressions/LogicalExpression.cs b/src/JsonApiDotNetCore/Queries/Expressions/LogicalExpression.cs
index 456526e4af..b6df31b4cf 100644
--- a/src/JsonApiDotNetCore/Queries/Expressions/LogicalExpression.cs
+++ b/src/JsonApiDotNetCore/Queries/Expressions/LogicalExpression.cs
@@ -6,8 +6,8 @@
namespace JsonApiDotNetCore.Queries.Expressions;
///
-/// This expression allows to test whether one or all of its boolean operands are true. It represents the logical AND/OR filter functions, resulting from
-/// text such as:
+/// This expression tests whether one or all of its boolean operands are true. It represents the logical AND/OR filter functions, resulting from text
+/// such as:
///
/// and(equals(title,'Work'),has(articles))
///
diff --git a/src/JsonApiDotNetCore/Queries/Expressions/NotExpression.cs b/src/JsonApiDotNetCore/Queries/Expressions/NotExpression.cs
index e9567000d7..511bae3f66 100644
--- a/src/JsonApiDotNetCore/Queries/Expressions/NotExpression.cs
+++ b/src/JsonApiDotNetCore/Queries/Expressions/NotExpression.cs
@@ -4,7 +4,7 @@
namespace JsonApiDotNetCore.Queries.Expressions;
///
-/// This expression allows to test for the logical negation of its operand. It represents the "not" filter function, resulting from text such as:
+/// This expression tests for the logical negation of its operand. It represents the "not" filter function, resulting from text such as:
///
/// not(equals(title,'Work'))
///
diff --git a/src/JsonApiDotNetCore/Queries/QueryableBuilding/QueryClauseBuilderContext.cs b/src/JsonApiDotNetCore/Queries/QueryableBuilding/QueryClauseBuilderContext.cs
index 6344b91cb8..c3b58ee125 100644
--- a/src/JsonApiDotNetCore/Queries/QueryableBuilding/QueryClauseBuilderContext.cs
+++ b/src/JsonApiDotNetCore/Queries/QueryableBuilding/QueryClauseBuilderContext.cs
@@ -47,7 +47,7 @@ public sealed class QueryClauseBuilderContext
public IQueryableBuilder QueryableBuilder { get; }
///
- /// Enables to pass custom state that you'd like to transfer between calls.
+ /// Enables passing custom state that you'd like to transfer between calls.
///
public object? State { get; }
diff --git a/src/JsonApiDotNetCore/Queries/QueryableBuilding/QueryableBuilderContext.cs b/src/JsonApiDotNetCore/Queries/QueryableBuilding/QueryableBuilderContext.cs
index aa8b1d8e74..978e46e256 100644
--- a/src/JsonApiDotNetCore/Queries/QueryableBuilding/QueryableBuilderContext.cs
+++ b/src/JsonApiDotNetCore/Queries/QueryableBuilding/QueryableBuilderContext.cs
@@ -37,7 +37,7 @@ public sealed class QueryableBuilderContext
public LambdaScopeFactory LambdaScopeFactory { get; }
///
- /// Enables to pass custom state that you'd like to transfer between calls.
+ /// Enables passing custom state that you'd like to transfer between calls.
///
public object? State { get; }
diff --git a/src/JsonApiDotNetCore/Resources/IResourceDefinition.cs b/src/JsonApiDotNetCore/Resources/IResourceDefinition.cs
index 41d366b5c3..a8746b7627 100644
--- a/src/JsonApiDotNetCore/Resources/IResourceDefinition.cs
+++ b/src/JsonApiDotNetCore/Resources/IResourceDefinition.cs
@@ -20,7 +20,7 @@ public interface IResourceDefinition
where TResource : class, IIdentifiable
{
///
- /// Enables to extend, replace or remove includes that are being applied on this resource type.
+ /// Enables extending, replacing or removing includes that are being applied on this resource type.
///
///
/// An optional existing set of includes, coming from query string. Never null, but may be empty.
@@ -31,7 +31,7 @@ public interface IResourceDefinition
IImmutableSet OnApplyIncludes(IImmutableSet existingIncludes);
///
- /// Enables to extend, replace or remove a filter that is being applied on a set of this resource type.
+ /// Enables extending, replacing or removing a filter that is being applied on a set of this resource type.
///
///
/// An optional existing filter, coming from query string. Can be null.
@@ -42,7 +42,7 @@ public interface IResourceDefinition
FilterExpression? OnApplyFilter(FilterExpression? existingFilter);
///
- /// Enables to extend, replace or remove a sort order that is being applied on a set of this resource type. Tip: Use
+ /// Enables extending, replacing or removing a sort order that is being applied on a set of this resource type. Tip: Use
/// to build from a lambda expression.
///
///
@@ -54,7 +54,7 @@ public interface IResourceDefinition
SortExpression? OnApplySort(SortExpression? existingSort);
///
- /// Enables to extend, replace or remove pagination that is being applied on a set of this resource type.
+ /// Enables extending, replacing or removing pagination that is being applied on a set of this resource type.
///
///
/// An optional existing pagination, coming from query string. Can be null.
@@ -66,7 +66,7 @@ public interface IResourceDefinition
PaginationExpression? OnApplyPagination(PaginationExpression? existingPagination);
///
- /// Enables to extend, replace or remove a sparse fieldset that is being applied on a set of this resource type. Tip: Use
+ /// Enables extending, replacing or removing a sparse fieldset that is being applied on a set of this resource type. Tip: Use
/// and to
/// safely change the fieldset without worrying about nulls.
///
@@ -85,7 +85,7 @@ public interface IResourceDefinition
SparseFieldSetExpression? OnApplySparseFieldSet(SparseFieldSetExpression? existingSparseFieldSet);
///
- /// Enables to adapt the Entity Framework Core query, based on custom query string parameters. Note this only works on
+ /// Enables adapting the Entity Framework Core query, based on custom query string parameters. Note this only works on
/// primary resource requests, such as /articles, but not on /blogs/1/articles or /blogs?include=articles.
///
///
@@ -113,7 +113,7 @@ public interface IResourceDefinition
#pragma warning restore AV1130 // Return type in method signature should be an interface to an unchangeable collection
///
- /// Enables to add JSON:API meta information, specific to this resource.
+ /// Enables adding JSON:API meta information, specific to this resource.
///
#pragma warning disable AV1130 // Return type in method signature should be an interface to an unchangeable collection
IDictionary? GetMeta(TResource resource);
@@ -122,7 +122,7 @@ public interface IResourceDefinition
///
/// Executes after the original version of the resource has been retrieved from the underlying data store, as part of a write request.
///
- /// Implementing this method enables to perform validations and make changes to , before the fields from the request are
+ /// Implementing this method enables performing validations and making changes to , before the fields from the request are
/// copied into it.
///
///
@@ -147,7 +147,7 @@ public interface IResourceDefinition
///
/// Executes before setting (or clearing) the resource at the right side of a to-one relationship.
///
- /// Implementing this method enables to perform validations and change , before the relationship is updated.
+ /// Implementing this method enables performing validations and changing , before the relationship is updated.
///
///
///
@@ -176,7 +176,8 @@ public interface IResourceDefinition
///
/// Executes before setting the resources at the right side of a to-many relationship. This replaces on existing set.
///
- /// Implementing this method enables to perform validations and make changes to , before the relationship is updated.
+ /// Implementing this method enables performing validations and making changes to , before the relationship is
+ /// updated.
///
///
///
@@ -202,7 +203,8 @@ Task OnSetToManyRelationshipAsync(TResource leftResource, HasManyAttribute hasMa
///
/// Executes before adding resources to the right side of a to-many relationship, as part of a POST relationship request.
///
- /// Implementing this method enables to perform validations and make changes to , before the relationship is updated.
+ /// Implementing this method enables performing validations and making changes to , before the relationship is
+ /// updated.
///
///
///
@@ -237,7 +239,8 @@ Task OnAddToRelationshipAsync(TResource leftResource, HasManyAttribute hasManyRe
///
/// Executes before removing resources from the right side of a to-many relationship, as part of a DELETE relationship request.
///
- /// Implementing this method enables to perform validations and make changes to , before the relationship is updated.
+ /// Implementing this method enables performing validations and making changes to , before the relationship is
+ /// updated.
///
///
///
@@ -260,8 +263,8 @@ Task OnRemoveFromRelationshipAsync(TResource leftResource, HasManyAttribute hasM
///
/// Executes before writing the changed resource to the underlying data store, as part of a write request.
///
- /// Implementing this method enables to perform validations and make changes to , after the fields from the request have been
- /// copied into it.
+ /// Implementing this method enables performing validations and making changes to , after the fields from the request have
+ /// been copied into it.
///
///
/// An example usage is to set the last-modification timestamp, overwriting the value from the incoming request.
@@ -290,7 +293,7 @@ Task OnRemoveFromRelationshipAsync(TResource leftResource, HasManyAttribute hasM
///
/// Executes after successfully writing the changed resource to the underlying data store, as part of a write request.
///
- /// Implementing this method enables to run additional logic, for example enqueue a notification message on a service bus.
+ /// Implementing this method enables running additional logic, for example enqueue a notification message on a service bus.
///
///
///
@@ -310,7 +313,7 @@ Task OnRemoveFromRelationshipAsync(TResource leftResource, HasManyAttribute hasM
/// Executes after a resource has been deserialized from an incoming request body.
///
///
- /// Implementing this method enables to change the incoming resource before it enters an ASP.NET Controller Action method.
+ /// Implementing this method enables changing the incoming resource before it enters an ASP.NET Controller Action method.
///
///
/// Changing attributes on from this method may break detection of side effects on resource POST/PATCH requests, because
@@ -326,7 +329,7 @@ Task OnRemoveFromRelationshipAsync(TResource leftResource, HasManyAttribute hasM
/// Executes before a (primary or included) resource is serialized into an outgoing response body.
///
///
- /// Implementing this method enables to change the returned resource, for example scrub sensitive data or transform returned attribute values.
+ /// Implementing this method enables changing the returned resource, for example scrub sensitive data or transform returned attribute values.
///
///
/// Changing attributes on from this method may break detection of side effects on resource POST/PATCH requests. What this
diff --git a/src/JsonApiDotNetCore/Services/JsonApiResourceService.cs b/src/JsonApiDotNetCore/Services/JsonApiResourceService.cs
index 5a140047f4..f5eb4e939e 100644
--- a/src/JsonApiDotNetCore/Services/JsonApiResourceService.cs
+++ b/src/JsonApiDotNetCore/Services/JsonApiResourceService.cs
@@ -396,7 +396,7 @@ public virtual async Task AddToToManyRelationshipAsync([DisallowNull] TId leftId
if (_request.Relationship.LeftType.IsPartOfTypeHierarchy())
{
// The left resource may be stored as a derived type. We fetch it, so we'll know the stored type, which
- // enables to invoke IResourceDefinition with TResource being the stored resource type.
+ // enables invoking IResourceDefinition with TResource being the stored resource type.
resourceFromDatabase ??= await GetPrimaryResourceForUpdateAsync(leftId, cancellationToken);
AccurizeJsonApiRequest(resourceFromDatabase);
}
@@ -406,7 +406,7 @@ public virtual async Task AddToToManyRelationshipAsync([DisallowNull] TId leftId
if (_request.Relationship.RightType.IsPartOfTypeHierarchy())
{
// Some of the incoming right-side resources may be stored as a derived type. We fetch them, so we'll know
- // the stored types, which enables to invoke resource definitions with the stored right-side resources types.
+ // the stored types, which enables invoking resource definitions with the stored right-side resources types.
object? rightValue = await AssertRightResourcesExistAsync(rightResourceIds, cancellationToken);
effectiveRightResourceIds = ((IEnumerable)rightValue!).ToHashSet(IdentifiableComparer.Instance);
}
@@ -535,7 +535,7 @@ public virtual async Task SetRelationshipAsync([DisallowNull] TId leftId, string
object? effectiveRightValue = _request.Relationship.RightType.IsPartOfTypeHierarchy()
// Some of the incoming right-side resources may be stored as a derived type. We fetch them, so we'll know
- // the stored types, which enables to invoke resource definitions with the stored right-side resources types.
+ // the stored types, which enables invoking resource definitions with the stored right-side resources types.
? await AssertRightResourcesExistAsync(rightValue, cancellationToken)
: rightValue;
@@ -572,7 +572,7 @@ public virtual async Task DeleteAsync([DisallowNull] TId id, CancellationToken c
if (_request.PrimaryResourceType.IsPartOfTypeHierarchy())
{
// The resource to delete may be stored as a derived type. We fetch it, so we'll know the stored type, which
- // enables to invoke IResourceDefinition with TResource being the stored resource type.
+ // enables invoking IResourceDefinition with TResource being the stored resource type.
resourceFromDatabase = await GetPrimaryResourceForUpdateAsync(id, cancellationToken);
AccurizeJsonApiRequest(resourceFromDatabase);
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/Decrypt/DecryptExpression.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/Decrypt/DecryptExpression.cs
index 0dddf0317f..77ff6f32cf 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/Decrypt/DecryptExpression.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/Decrypt/DecryptExpression.cs
@@ -4,8 +4,7 @@
namespace JsonApiDotNetCoreTests.IntegrationTests.QueryStrings.CustomFunctions.Decrypt;
///
-/// This expression allows to call the user-defined "decrypt_column_value" database function. It represents the "decrypt" function, resulting from text
-/// such as:
+/// This expression calls the user-defined "decrypt_column_value" database function. It represents the "decrypt" function, resulting from text such as:
///
/// decrypt(title)
///
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/IsUpperCase/IsUpperCaseExpression.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/IsUpperCase/IsUpperCaseExpression.cs
index a4df84c888..a0d3de5593 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/IsUpperCase/IsUpperCaseExpression.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/IsUpperCase/IsUpperCaseExpression.cs
@@ -4,8 +4,8 @@
namespace JsonApiDotNetCoreTests.IntegrationTests.QueryStrings.CustomFunctions.IsUpperCase;
///
-/// This expression allows to test if the value of a JSON:API attribute is upper case. It represents the "isUpperCase" filter function, resulting from
-/// text such as:
+/// This expression tests if the value of a JSON:API attribute is upper case. It represents the "isUpperCase" filter function, resulting from text such
+/// as:
///
/// isUpperCase(title)
///
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthExpression.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthExpression.cs
index c3849f0133..f7163fc096 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthExpression.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthExpression.cs
@@ -4,7 +4,7 @@
namespace JsonApiDotNetCoreTests.IntegrationTests.QueryStrings.CustomFunctions.StringLength;
///
-/// This expression allows to determine the string length of a JSON:API attribute. It represents the "length" function, resulting from text such as:
+/// This expression determines the string length of a JSON:API attribute. It represents the "length" function, resulting from text such as:
///
/// length(title)
///
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/Sum/SumExpression.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/Sum/SumExpression.cs
index da18dbd4b6..5c8c84f57a 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/Sum/SumExpression.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/Sum/SumExpression.cs
@@ -4,8 +4,8 @@
namespace JsonApiDotNetCoreTests.IntegrationTests.QueryStrings.CustomFunctions.Sum;
///
-/// This expression allows to determine the sum of values in the related resources of a to-many relationship. It represents the "sum" function, resulting
-/// from text such as:
+/// This expression determines the sum of values in the related resources of a to-many relationship. It represents the "sum" function, resulting from
+/// text such as:
///
/// sum(orderLines,quantity)
///
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/Updating/Relationships/RemoveFromToManyRelationshipTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/Updating/Relationships/RemoveFromToManyRelationshipTests.cs
index c8499bb95e..e597eb6ae3 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/Updating/Relationships/RemoveFromToManyRelationshipTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/Updating/Relationships/RemoveFromToManyRelationshipTests.cs
@@ -1145,11 +1145,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
private sealed class RemoveExtraFromWorkItemDefinition(IResourceGraph resourceGraph)
: JsonApiResourceDefinition(resourceGraph)
{
- // Enables to verify that not the full relationship was loaded upfront.
+ // Enables verifying that not the full relationship was loaded upfront.
public HashSet PreloadedSubscribers { get; } = new(IdentifiableComparer.Instance);
public HashSet PreloadedTags { get; } = new(IdentifiableComparer.Instance);
- // Enables to verify that adding extra IDs for removal from ResourceDefinition works correctly.
+ // Enables verifying that adding extra IDs for removal from ResourceDefinition works correctly.
public HashSet ExtraSubscribersIdsToRemove { get; } = [];
public HashSet ExtraTagIdsToRemove { get; } = [];
diff --git a/test/OpenApiNSwagClientTests/FakeHttpClientWrapper.cs b/test/OpenApiNSwagClientTests/FakeHttpClientWrapper.cs
index 353933e630..37becba581 100644
--- a/test/OpenApiNSwagClientTests/FakeHttpClientWrapper.cs
+++ b/test/OpenApiNSwagClientTests/FakeHttpClientWrapper.cs
@@ -7,7 +7,7 @@
namespace OpenApiNSwagClientTests;
///
-/// Enables to inject an outgoing response body and inspect the incoming request.
+/// Enables injecting an outgoing response body and inspecting the incoming request.
///
internal sealed class FakeHttpClientWrapper : IDisposable
{
diff --git a/test/TestBuildingBlocks/IntegrationTest.cs b/test/TestBuildingBlocks/IntegrationTest.cs
index b1d196cc6b..1a4274e321 100644
--- a/test/TestBuildingBlocks/IntegrationTest.cs
+++ b/test/TestBuildingBlocks/IntegrationTest.cs
@@ -8,7 +8,7 @@
namespace TestBuildingBlocks;
///
-/// A base class for tests that conveniently enables to execute HTTP requests against JSON:API endpoints. It throttles tests that are running in parallel
+/// A base class for tests that conveniently enables executing HTTP requests against JSON:API endpoints. It throttles tests that are running in parallel
/// to avoid exceeding the maximum active database connections.
///
public abstract class IntegrationTest : IAsyncLifetime