Skip to content

Commit f8a45c5

Browse files
authored
Merge pull request #1612 from json-api-dotnet/formatter-primary-ctor-newline
Update formatting rules to place call to base in primary constructor on separate line
2 parents 9648cde + 51d2e49 commit f8a45c5

File tree

101 files changed

+264
-175
lines changed

Some content is hidden

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

101 files changed

+264
-175
lines changed

JsonApiDotNetCore.sln.DotSettings

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ JsonApiDotNetCore.ArgumentGuard.NotNull($EXPR$);</s:String>
137137
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_ACCESSORHOLDER_ATTRIBUTE_ON_SAME_LINE_EX/@EntryValue">NEVER</s:String>
138138
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_CONSTRUCTOR_INITIALIZER_ON_SAME_LINE/@EntryValue">False</s:Boolean>
139139
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_FIELD_ATTRIBUTE_ON_SAME_LINE_EX/@EntryValue">NEVER</s:String>
140+
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_PRIMARY_CONSTRUCTOR_INITIALIZER_ON_SAME_LINE/@EntryValue">False</s:Boolean>
140141
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_SIMPLE_ACCESSOR_ON_SINGLE_LINE/@EntryValue">False</s:Boolean>
141142
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_SIMPLE_ANONYMOUSMETHOD_ON_SINGLE_LINE/@EntryValue">False</s:Boolean>
142143
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_SIMPLE_EMBEDDED_STATEMENT_ON_SAME_LINE/@EntryValue">NEVER</s:String>

src/Examples/DapperExample/Controllers/OperationsController.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ namespace DapperExample.Controllers;
88

99
public sealed class OperationsController(
1010
IJsonApiOptions options, IResourceGraph resourceGraph, ILoggerFactory loggerFactory, IOperationsProcessor processor, IJsonApiRequest request,
11-
ITargetedFields targetedFields, IAtomicOperationFilter operationFilter) : JsonApiOperationsController(options, resourceGraph, loggerFactory, processor,
12-
request, targetedFields, operationFilter);
11+
ITargetedFields targetedFields, IAtomicOperationFilter operationFilter)
12+
: JsonApiOperationsController(options, resourceGraph, loggerFactory, processor, request, targetedFields, operationFilter);

src/Examples/DapperExample/TranslationToSql/Builders/DeleteOneToOneStatementBuilder.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
namespace DapperExample.TranslationToSql.Builders;
88

9-
internal sealed class DeleteOneToOneStatementBuilder(IDataModelService dataModelService) : StatementBuilder(dataModelService)
9+
internal sealed class DeleteOneToOneStatementBuilder(IDataModelService dataModelService)
10+
: StatementBuilder(dataModelService)
1011
{
1112
public DeleteNode Build(ResourceType resourceType, string whereColumnName, object? whereValue)
1213
{

src/Examples/DapperExample/TranslationToSql/Builders/DeleteResourceStatementBuilder.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77

88
namespace DapperExample.TranslationToSql.Builders;
99

10-
internal sealed class DeleteResourceStatementBuilder(IDataModelService dataModelService) : StatementBuilder(dataModelService)
10+
internal sealed class DeleteResourceStatementBuilder(IDataModelService dataModelService)
11+
: StatementBuilder(dataModelService)
1112
{
1213
public DeleteNode Build(ResourceType resourceType, params object[] idValues)
1314
{

src/Examples/DapperExample/TranslationToSql/Builders/InsertStatementBuilder.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77

88
namespace DapperExample.TranslationToSql.Builders;
99

10-
internal sealed class InsertStatementBuilder(IDataModelService dataModelService) : StatementBuilder(dataModelService)
10+
internal sealed class InsertStatementBuilder(IDataModelService dataModelService)
11+
: StatementBuilder(dataModelService)
1112
{
1213
public InsertNode Build(ResourceType resourceType, IReadOnlyDictionary<string, object?> columnsToSet)
1314
{

src/Examples/DapperExample/TranslationToSql/Builders/UpdateClearOneToOneStatementBuilder.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
namespace DapperExample.TranslationToSql.Builders;
88

9-
internal sealed class UpdateClearOneToOneStatementBuilder(IDataModelService dataModelService) : StatementBuilder(dataModelService)
9+
internal sealed class UpdateClearOneToOneStatementBuilder(IDataModelService dataModelService)
10+
: StatementBuilder(dataModelService)
1011
{
1112
public UpdateNode Build(ResourceType resourceType, string setColumnName, string whereColumnName, object? whereValue)
1213
{

src/Examples/DapperExample/TranslationToSql/Builders/UpdateResourceStatementBuilder.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77

88
namespace DapperExample.TranslationToSql.Builders;
99

10-
internal sealed class UpdateResourceStatementBuilder(IDataModelService dataModelService) : StatementBuilder(dataModelService)
10+
internal sealed class UpdateResourceStatementBuilder(IDataModelService dataModelService)
11+
: StatementBuilder(dataModelService)
1112
{
1213
public UpdateNode Build(ResourceType resourceType, IReadOnlyDictionary<string, object?> columnsToUpdate, params object[] idValues)
1314
{

src/Examples/DapperExample/TranslationToSql/DataModel/FromEntitiesDataModelService.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ namespace DapperExample.TranslationToSql.DataModel;
1212
/// <summary>
1313
/// Derives foreign keys and connection strings from an existing Entity Framework Core model.
1414
/// </summary>
15-
public sealed class FromEntitiesDataModelService(IResourceGraph resourceGraph) : BaseDataModelService(resourceGraph)
15+
public sealed class FromEntitiesDataModelService(IResourceGraph resourceGraph)
16+
: BaseDataModelService(resourceGraph)
1617
{
1718
private readonly Dictionary<RelationshipAttribute, RelationshipForeignKey> _foreignKeysByRelationship = [];
1819
private readonly Dictionary<AttrAttribute, bool> _columnNullabilityPerAttribute = [];

src/Examples/DapperExample/TranslationToSql/Generators/ParameterGenerator.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,6 @@ public void Reset()
2020
_nameGenerator.Reset();
2121
}
2222

23-
private sealed class ParameterNameGenerator() : UniqueNameGenerator("@p");
23+
private sealed class ParameterNameGenerator()
24+
: UniqueNameGenerator("@p");
2425
}

src/Examples/DapperExample/TranslationToSql/Generators/TableAliasGenerator.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ namespace DapperExample.TranslationToSql.Generators;
33
/// <summary>
44
/// Generates a SQL table alias with a unique name.
55
/// </summary>
6-
internal sealed class TableAliasGenerator() : UniqueNameGenerator("t");
6+
internal sealed class TableAliasGenerator()
7+
: UniqueNameGenerator("t");

src/Examples/DapperExample/TranslationToSql/TreeNodes/ColumnInSelectNode.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ namespace DapperExample.TranslationToSql.TreeNodes;
1010
/// SELECT t2.Id AS Id0 FROM (SELECT t1.Id FROM Users AS t1) AS t2
1111
/// ]]></code>.
1212
/// </summary>
13-
internal sealed class ColumnInSelectNode(ColumnSelectorNode selector, string? tableAlias) : ColumnNode(GetColumnName(selector), selector.Column.Type,
14-
tableAlias)
13+
internal sealed class ColumnInSelectNode(ColumnSelectorNode selector, string? tableAlias)
14+
: ColumnNode(GetColumnName(selector), selector.Column.Type, tableAlias)
1515
{
1616
public ColumnSelectorNode Selector { get; } = selector;
1717

src/Examples/DapperExample/TranslationToSql/TreeNodes/ColumnInTableNode.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ namespace DapperExample.TranslationToSql.TreeNodes;
88
/// FROM Users AS t1
99
/// ]]></code>.
1010
/// </summary>
11-
internal sealed class ColumnInTableNode(string name, ColumnType type, string? tableAlias) : ColumnNode(name, type, tableAlias)
11+
internal sealed class ColumnInTableNode(string name, ColumnType type, string? tableAlias)
12+
: ColumnNode(name, type, tableAlias)
1213
{
1314
public override TResult Accept<TArgument, TResult>(SqlTreeNodeVisitor<TArgument, TResult> visitor, TArgument argument)
1415
{

src/Examples/DapperExample/TranslationToSql/TreeNodes/CountSelectorNode.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ namespace DapperExample.TranslationToSql.TreeNodes;
88
/// SELECT COUNT(*) FROM Users
99
/// ]]></code>.
1010
/// </summary>
11-
internal sealed class CountSelectorNode(string? alias) : SelectorNode(alias)
11+
internal sealed class CountSelectorNode(string? alias)
12+
: SelectorNode(alias)
1213
{
1314
public override TResult Accept<TArgument, TResult>(SqlTreeNodeVisitor<TArgument, TResult> visitor, TArgument argument)
1415
{

src/Examples/DapperExample/TranslationToSql/TreeNodes/FromNode.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ namespace DapperExample.TranslationToSql.TreeNodes;
55
/// FROM Customers AS t1
66
/// ]]></code>.
77
/// </summary>
8-
internal sealed class FromNode(TableSourceNode source) : TableAccessorNode(source)
8+
internal sealed class FromNode(TableSourceNode source)
9+
: TableAccessorNode(source)
910
{
1011
public override TResult Accept<TArgument, TResult>(SqlTreeNodeVisitor<TArgument, TResult> visitor, TArgument argument)
1112
{

src/Examples/DapperExample/TranslationToSql/TreeNodes/OneSelectorNode.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ namespace DapperExample.TranslationToSql.TreeNodes;
88
/// SELECT 1 FROM Users
99
/// ]]></code>.
1010
/// </summary>
11-
internal sealed class OneSelectorNode(string? alias) : SelectorNode(alias)
11+
internal sealed class OneSelectorNode(string? alias)
12+
: SelectorNode(alias)
1213
{
1314
public override TResult Accept<TArgument, TResult>(SqlTreeNodeVisitor<TArgument, TResult> visitor, TArgument argument)
1415
{

src/Examples/GettingStarted/Data/SampleDbContext.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
namespace GettingStarted.Data;
66

77
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
8-
public class SampleDbContext(DbContextOptions<SampleDbContext> options) : DbContext(options)
8+
public class SampleDbContext(DbContextOptions<SampleDbContext> options)
9+
: DbContext(options)
910
{
1011
public DbSet<Book> Books => Set<Book>();
1112
}

src/Examples/JsonApiDotNetCoreExample/Controllers/OperationsController.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ namespace JsonApiDotNetCoreExample.Controllers;
88

99
public sealed class OperationsController(
1010
IJsonApiOptions options, IResourceGraph resourceGraph, ILoggerFactory loggerFactory, IOperationsProcessor processor, IJsonApiRequest request,
11-
ITargetedFields targetedFields, IAtomicOperationFilter operationFilter) : JsonApiOperationsController(options, resourceGraph, loggerFactory, processor,
12-
request, targetedFields, operationFilter);
11+
ITargetedFields targetedFields, IAtomicOperationFilter operationFilter)
12+
: JsonApiOperationsController(options, resourceGraph, loggerFactory, processor, request, targetedFields, operationFilter);

src/Examples/JsonApiDotNetCoreExample/Data/AppDbContext.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
namespace JsonApiDotNetCoreExample.Data;
99

1010
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
11-
public sealed class AppDbContext(DbContextOptions<AppDbContext> options) : DbContext(options)
11+
public sealed class AppDbContext(DbContextOptions<AppDbContext> options)
12+
: DbContext(options)
1213
{
1314
public DbSet<TodoItem> TodoItems => Set<TodoItem>();
1415

src/Examples/JsonApiDotNetCoreExample/Definitions/TodoItemDefinition.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ ISystemClock systemClock
1919
#else
2020
TimeProvider timeProvider
2121
#endif
22-
) : JsonApiResourceDefinition<TodoItem, long>(resourceGraph)
22+
)
23+
: JsonApiResourceDefinition<TodoItem, long>(resourceGraph)
2324
{
2425
#if NET6_0
2526
private readonly Func<DateTimeOffset> _getUtcNow = () => systemClock.UtcNow;

src/Examples/MultiDbContextExample/Data/DbContextA.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
namespace MultiDbContextExample.Data;
66

77
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
8-
public sealed class DbContextA(DbContextOptions<DbContextA> options) : DbContext(options)
8+
public sealed class DbContextA(DbContextOptions<DbContextA> options)
9+
: DbContext(options)
910
{
1011
public DbSet<ResourceA> ResourceAs => Set<ResourceA>();
1112
}

src/Examples/MultiDbContextExample/Data/DbContextB.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
namespace MultiDbContextExample.Data;
66

77
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
8-
public sealed class DbContextB(DbContextOptions<DbContextB> options) : DbContext(options)
8+
public sealed class DbContextB(DbContextOptions<DbContextB> options)
9+
: DbContext(options)
910
{
1011
public DbSet<ResourceB> ResourceBs => Set<ResourceB>();
1112
}

src/JsonApiDotNetCore/Controllers/JsonApiOperationsController.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ namespace JsonApiDotNetCore.Controllers;
1414
/// </summary>
1515
public abstract class JsonApiOperationsController(
1616
IJsonApiOptions options, IResourceGraph resourceGraph, ILoggerFactory loggerFactory, IOperationsProcessor processor, IJsonApiRequest request,
17-
ITargetedFields targetedFields, IAtomicOperationFilter operationFilter) : BaseJsonApiOperationsController(options, resourceGraph, loggerFactory, processor,
18-
request, targetedFields, operationFilter)
17+
ITargetedFields targetedFields, IAtomicOperationFilter operationFilter)
18+
: BaseJsonApiOperationsController(options, resourceGraph, loggerFactory, processor, request, targetedFields, operationFilter)
1919
{
2020
/// <inheritdoc />
2121
[HttpPost]

src/JsonApiDotNetCore/Errors/CannotClearRequiredRelationshipException.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ namespace JsonApiDotNetCore.Errors;
88
/// The error that is thrown when a required relationship is cleared.
99
/// </summary>
1010
[PublicAPI]
11-
public sealed class CannotClearRequiredRelationshipException(string relationshipName, string resourceType) : JsonApiException(
12-
new ErrorObject(HttpStatusCode.BadRequest)
11+
public sealed class CannotClearRequiredRelationshipException(string relationshipName, string resourceType)
12+
: JsonApiException(new ErrorObject(HttpStatusCode.BadRequest)
1313
{
1414
Title = "Failed to clear a required relationship.",
1515
Detail = $"The relationship '{relationshipName}' on resource type '{resourceType}' cannot be cleared because it is a required relationship."

src/JsonApiDotNetCore/Errors/DuplicateLocalIdValueException.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ namespace JsonApiDotNetCore.Errors;
88
/// The error that is thrown when assigning a local ID that was already assigned in an earlier operation.
99
/// </summary>
1010
[PublicAPI]
11-
public sealed class DuplicateLocalIdValueException(string localId) : JsonApiException(new ErrorObject(HttpStatusCode.BadRequest)
12-
{
13-
Title = "Another local ID with the same name is already defined at this point.",
14-
Detail = $"Another local ID with name '{localId}' is already defined at this point."
15-
});
11+
public sealed class DuplicateLocalIdValueException(string localId)
12+
: JsonApiException(new ErrorObject(HttpStatusCode.BadRequest)
13+
{
14+
Title = "Another local ID with the same name is already defined at this point.",
15+
Detail = $"Another local ID with name '{localId}' is already defined at this point."
16+
});

src/JsonApiDotNetCore/Errors/FailedOperationException.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ namespace JsonApiDotNetCore.Errors;
88
/// The error that is thrown when an operation in an atomic:operations request failed to be processed for unknown reasons.
99
/// </summary>
1010
[PublicAPI]
11-
public sealed class FailedOperationException(int operationIndex, Exception innerException) : JsonApiException(
12-
new ErrorObject(HttpStatusCode.InternalServerError)
11+
public sealed class FailedOperationException(int operationIndex, Exception innerException)
12+
: JsonApiException(new ErrorObject(HttpStatusCode.InternalServerError)
1313
{
1414
Title = "An unhandled error occurred while processing an operation in this request.",
1515
Detail = innerException.Message,

src/JsonApiDotNetCore/Errors/IncompatibleLocalIdTypeException.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ namespace JsonApiDotNetCore.Errors;
88
/// The error that is thrown when referencing a local ID that was assigned to a different resource type.
99
/// </summary>
1010
[PublicAPI]
11-
public sealed class IncompatibleLocalIdTypeException(string localId, string declaredType, string currentType) : JsonApiException(
12-
new ErrorObject(HttpStatusCode.BadRequest)
11+
public sealed class IncompatibleLocalIdTypeException(string localId, string declaredType, string currentType)
12+
: JsonApiException(new ErrorObject(HttpStatusCode.BadRequest)
1313
{
1414
Title = "Incompatible type in Local ID usage.",
1515
Detail = $"Local ID '{localId}' belongs to resource type '{declaredType}' instead of '{currentType}'."

src/JsonApiDotNetCore/Errors/InvalidConfigurationException.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ namespace JsonApiDotNetCore.Errors;
66
/// The error that is thrown when configured usage of this library is invalid.
77
/// </summary>
88
[PublicAPI]
9-
public sealed class InvalidConfigurationException(string message, Exception? innerException = null) : Exception(message, innerException);
9+
public sealed class InvalidConfigurationException(string message, Exception? innerException = null)
10+
: Exception(message, innerException);

src/JsonApiDotNetCore/Errors/InvalidModelStateException.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ namespace JsonApiDotNetCore.Errors;
1717
[PublicAPI]
1818
public sealed class InvalidModelStateException(
1919
IReadOnlyDictionary<string, ModelStateEntry?> modelState, Type modelType, bool includeExceptionStackTraceInErrors, IResourceGraph resourceGraph,
20-
Func<Type, int, Type?>? getCollectionElementTypeCallback = null) : JsonApiException(FromModelStateDictionary(modelState, modelType, resourceGraph,
21-
includeExceptionStackTraceInErrors, getCollectionElementTypeCallback))
20+
Func<Type, int, Type?>? getCollectionElementTypeCallback = null)
21+
: JsonApiException(FromModelStateDictionary(modelState, modelType, resourceGraph, includeExceptionStackTraceInErrors, getCollectionElementTypeCallback))
2222
{
2323
private static List<ErrorObject> FromModelStateDictionary(IReadOnlyDictionary<string, ModelStateEntry?> modelState, Type modelType,
2424
IResourceGraph resourceGraph, bool includeExceptionStackTraceInErrors, Func<Type, int, Type?>? getCollectionElementTypeCallback)
@@ -316,8 +316,8 @@ private static ModelStateKeySegment CreateSegment(Type modelType, string key, bo
316316
/// </summary>
317317
private sealed class ArrayIndexerSegment(
318318
int arrayIndex, Type modelType, bool isInComplexType, string nextKey, string? sourcePointer, ModelStateKeySegment? parent,
319-
Func<Type, int, Type?>? getCollectionElementTypeCallback) : ModelStateKeySegment(modelType, isInComplexType, nextKey, sourcePointer, parent,
320-
getCollectionElementTypeCallback)
319+
Func<Type, int, Type?>? getCollectionElementTypeCallback)
320+
: ModelStateKeySegment(modelType, isInComplexType, nextKey, sourcePointer, parent, getCollectionElementTypeCallback)
321321
{
322322
private static readonly CollectionConverter CollectionConverter = new();
323323

src/JsonApiDotNetCore/Errors/InvalidQueryException.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ namespace JsonApiDotNetCore.Errors;
99
/// The error that is thrown when translating a <see cref="QueryLayer" /> to Entity Framework Core fails.
1010
/// </summary>
1111
[PublicAPI]
12-
public sealed class InvalidQueryException(string reason, Exception? innerException) : JsonApiException(new ErrorObject(HttpStatusCode.BadRequest)
13-
{
14-
Title = reason,
15-
Detail = innerException?.Message
16-
}, innerException);
12+
public sealed class InvalidQueryException(string reason, Exception? innerException)
13+
: JsonApiException(new ErrorObject(HttpStatusCode.BadRequest)
14+
{
15+
Title = reason,
16+
Detail = innerException?.Message
17+
}, innerException);

src/JsonApiDotNetCore/Errors/InvalidRequestBodyException.cs

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,21 @@ namespace JsonApiDotNetCore.Errors;
1212
[PublicAPI]
1313
public sealed class InvalidRequestBodyException(
1414
string? requestBody, string? genericMessage, string? specificMessage, string? sourcePointer, HttpStatusCode? alternativeStatusCode = null,
15-
Exception? innerException = null) : JsonApiException(new ErrorObject(alternativeStatusCode ?? HttpStatusCode.UnprocessableEntity)
16-
{
17-
Title = genericMessage != null ? $"Failed to deserialize request body: {genericMessage}" : "Failed to deserialize request body.",
18-
Detail = specificMessage,
19-
Source = sourcePointer == null
20-
? null
21-
: new ErrorSource
22-
{
23-
Pointer = sourcePointer
24-
},
25-
Meta = string.IsNullOrEmpty(requestBody)
26-
? null
27-
: new Dictionary<string, object?>
28-
{
29-
["RequestBody"] = requestBody
30-
}
31-
}, innerException);
15+
Exception? innerException = null)
16+
: JsonApiException(new ErrorObject(alternativeStatusCode ?? HttpStatusCode.UnprocessableEntity)
17+
{
18+
Title = genericMessage != null ? $"Failed to deserialize request body: {genericMessage}" : "Failed to deserialize request body.",
19+
Detail = specificMessage,
20+
Source = sourcePointer == null
21+
? null
22+
: new ErrorSource
23+
{
24+
Pointer = sourcePointer
25+
},
26+
Meta = string.IsNullOrEmpty(requestBody)
27+
? null
28+
: new Dictionary<string, object?>
29+
{
30+
["RequestBody"] = requestBody
31+
}
32+
}, innerException);

src/JsonApiDotNetCore/Errors/LocalIdSingleOperationException.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ namespace JsonApiDotNetCore.Errors;
88
/// The error that is thrown when assigning and referencing a local ID within the same operation.
99
/// </summary>
1010
[PublicAPI]
11-
public sealed class LocalIdSingleOperationException(string localId) : JsonApiException(new ErrorObject(HttpStatusCode.BadRequest)
12-
{
13-
Title = "Local ID cannot be both defined and used within the same operation.",
14-
Detail = $"Local ID '{localId}' cannot be both defined and used within the same operation."
15-
});
11+
public sealed class LocalIdSingleOperationException(string localId)
12+
: JsonApiException(new ErrorObject(HttpStatusCode.BadRequest)
13+
{
14+
Title = "Local ID cannot be both defined and used within the same operation.",
15+
Detail = $"Local ID '{localId}' cannot be both defined and used within the same operation."
16+
});

src/JsonApiDotNetCore/Errors/MissingTransactionSupportException.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ namespace JsonApiDotNetCore.Errors;
88
/// The error that is thrown when accessing a repository that does not support transactions during an atomic:operations request.
99
/// </summary>
1010
[PublicAPI]
11-
public sealed class MissingTransactionSupportException(string resourceType) : JsonApiException(new ErrorObject(HttpStatusCode.UnprocessableEntity)
12-
{
13-
Title = "Unsupported resource type in atomic:operations request.",
14-
Detail = $"Operations on resources of type '{resourceType}' cannot be used because transaction support is unavailable."
15-
});
11+
public sealed class MissingTransactionSupportException(string resourceType)
12+
: JsonApiException(new ErrorObject(HttpStatusCode.UnprocessableEntity)
13+
{
14+
Title = "Unsupported resource type in atomic:operations request.",
15+
Detail = $"Operations on resources of type '{resourceType}' cannot be used because transaction support is unavailable."
16+
});

0 commit comments

Comments
 (0)