From 90c3999091add077eb7b5c7cdb30d80d1f6f0eb6 Mon Sep 17 00:00:00 2001 From: niteshsinghal85 Date: Mon, 22 Dec 2025 13:48:58 +0530 Subject: [PATCH 01/10] Doc update : Refactor properties to use 'required' instead of nullable with null default --- README.md | 2 +- docs/usage/common-pitfalls.md | 6 +++--- docs/usage/options.md | 4 ++-- docs/usage/resources/attributes.md | 4 ++-- docs/usage/resources/inheritance.md | 2 +- docs/usage/resources/nullability.md | 4 ++-- docs/usage/resources/relationships.md | 14 +++++++------- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 3d3d6635a2..5edd42845e 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ The following steps describe how to create a JSON:API project. public class Person : Identifiable { [Attr] public string? FirstName { get; set; } - [Attr] public string LastName { get; set; } = null!; + [Attr] public required string LastName { get; set; } [HasMany] public ISet Children { get; set; } = new HashSet(); } ``` diff --git a/docs/usage/common-pitfalls.md b/docs/usage/common-pitfalls.md index 60162cfd37..a4d03fb168 100644 --- a/docs/usage/common-pitfalls.md +++ b/docs/usage/common-pitfalls.md @@ -17,7 +17,7 @@ Now let's try to define the resource classes: public sealed class WebCustomer : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasOne] public LoginAccount? Account { get; set; } @@ -27,7 +27,7 @@ public sealed class WebCustomer : Identifiable public sealed class AdminCustomer : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] public string? CreditRating { get; set; } @@ -40,7 +40,7 @@ public sealed class AdminCustomer : Identifiable public sealed class LoginAccount : Identifiable { [Attr] - public string EmailAddress { get; set; } = null!; + public required string EmailAddress { get; set; } [HasOne] public ??? Customer { get; set; } diff --git a/docs/usage/options.md b/docs/usage/options.md index 9b900f3973..7af55776c0 100644 --- a/docs/usage/options.md +++ b/docs/usage/options.md @@ -141,13 +141,13 @@ public class Person : Identifiable { [Attr] [MinLength(3)] - public string FirstName { get; set; } = null!; + public required string FirstName { get; set; } [Attr] [Required] public int? Age { get; set; } [HasOne] - public LoginAccount Account { get; set; } = null!; + public required LoginAccount Account { get; set; } } ``` diff --git a/docs/usage/resources/attributes.md b/docs/usage/resources/attributes.md index 42a2aa2600..b683f39154 100644 --- a/docs/usage/resources/attributes.md +++ b/docs/usage/resources/attributes.md @@ -11,7 +11,7 @@ public class Person : Identifiable public string? FirstName { get; set; } [Attr] - public string LastName { get; set; } = null!; + public required string LastName { get; set; } } ``` @@ -54,7 +54,7 @@ Otherwise, the attribute is silently omitted. public class User : Identifiable { [Attr(Capabilities = ~AttrCapabilities.AllowView)] - public string Password { get; set; } = null!; + public required string Password { get; set; } } ``` diff --git a/docs/usage/resources/inheritance.md b/docs/usage/resources/inheritance.md index 56c046ef82..7004ddcad6 100644 --- a/docs/usage/resources/inheritance.md +++ b/docs/usage/resources/inheritance.md @@ -10,7 +10,7 @@ Resource classes can be part of a type hierarchy. For example: public abstract class Human : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasOne] public Man? Father { get; set; } diff --git a/docs/usage/resources/nullability.md b/docs/usage/resources/nullability.md index 7c600131d0..5fdbe4d0d5 100644 --- a/docs/usage/resources/nullability.md +++ b/docs/usage/resources/nullability.md @@ -72,13 +72,13 @@ Example: public sealed class Label : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] public string? RgbColor { get; set; } [HasOne] - public Person Creator { get; set; } = null!; + public required Person Creator { get; set; } [HasOne] public Label? Parent { get; set; } diff --git a/docs/usage/resources/relationships.md b/docs/usage/resources/relationships.md index 30e90c359c..a42cff1bf7 100644 --- a/docs/usage/resources/relationships.md +++ b/docs/usage/resources/relationships.md @@ -39,7 +39,7 @@ The next example defines that each car requires an engine, while an engine is op public sealed class Car : Identifiable { [HasOne] - public Engine Engine { get; set; } = null!; + public required Engine Engine { get; set; } } public sealed class Engine : Identifiable @@ -264,7 +264,7 @@ There are two ways the exposed relationship name is determined: public class TodoItem : Identifiable { [HasOne(PublicName = "item-owner")] - public Person Owner { get; set; } = null!; + public required Person Owner { get; set; } } ``` @@ -297,7 +297,7 @@ Otherwise, the relationship (and its related resources, when included) are silen public class User : Identifiable { [HasOne(Capabilities = ~HasOneCapabilities.AllowView)] - public LoginAccount Account { get; set; } = null!; + public required LoginAccount Account { get; set; } } ``` @@ -339,7 +339,7 @@ Indicates whether POST and PATCH requests can replace the relationship. When sen public class User : Identifiable { [HasOne(Capabilities = ~HasOneCapabilities.AllowSet)] - public LoginAccount Account { get; set; } = null!; + public required LoginAccount Account { get; set; } } ``` @@ -400,7 +400,7 @@ So for the calculated property to be evaluated correctly, the related entity mus public class ShippingAddress : Identifiable { [Attr] - public string Street { get; set; } = null!; + public required string Street { get; set; } [Attr] public string? CountryName => Country?.DisplayName; @@ -412,7 +412,7 @@ public class ShippingAddress : Identifiable public class Country { - public string IsoCode { get; set; } = null!; - public string DisplayName { get; set; } = null!; + public required string IsoCode { get; set; } + public required string DisplayName { get; set; } } ``` From 80aefed26d894f5adea76fcf3492223024660b90 Mon Sep 17 00:00:00 2001 From: niteshsinghal85 Date: Mon, 22 Dec 2025 13:52:24 +0530 Subject: [PATCH 02/10] Benchmark update : Refactor properties to use 'required' instead of nullable with null default --- .../DeserializationBenchmarkBase.cs | 22 +++++++++---------- .../SerializationBenchmarkBase.cs | 22 +++++++++---------- docs/home/index.html | 4 ++-- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/benchmarks/Deserialization/DeserializationBenchmarkBase.cs b/benchmarks/Deserialization/DeserializationBenchmarkBase.cs index 018f220994..ce551cf6b8 100644 --- a/benchmarks/Deserialization/DeserializationBenchmarkBase.cs +++ b/benchmarks/Deserialization/DeserializationBenchmarkBase.cs @@ -89,7 +89,7 @@ public sealed class IncomingResource : Identifiable public float? Attribute05 { get; set; } [Attr] - public string Attribute06 { get; set; } = null!; + public required string Attribute06 { get; set; } [Attr] public DateTime? Attribute07 { get; set; } @@ -104,33 +104,33 @@ public sealed class IncomingResource : Identifiable public DayOfWeek Attribute10 { get; set; } [HasOne] - public IncomingResource Single1 { get; set; } = null!; + public required IncomingResource Single1 { get; set; } [HasOne] - public IncomingResource Single2 { get; set; } = null!; + public required IncomingResource Single2 { get; set; } [HasOne] - public IncomingResource Single3 { get; set; } = null!; + public required IncomingResource Single3 { get; set; } [HasOne] - public IncomingResource Single4 { get; set; } = null!; + public required IncomingResource Single4 { get; set; } [HasOne] - public IncomingResource Single5 { get; set; } = null!; + public required IncomingResource Single5 { get; set; } [HasMany] - public ISet Multi1 { get; set; } = null!; + public required ISet Multi1 { get; set; } [HasMany] - public ISet Multi2 { get; set; } = null!; + public required ISet Multi2 { get; set; } [HasMany] - public ISet Multi3 { get; set; } = null!; + public required ISet Multi3 { get; set; } [HasMany] - public ISet Multi4 { get; set; } = null!; + public required ISet Multi4 { get; set; } [HasMany] - public ISet Multi5 { get; set; } = null!; + public required ISet Multi5 { get; set; } } } diff --git a/benchmarks/Serialization/SerializationBenchmarkBase.cs b/benchmarks/Serialization/SerializationBenchmarkBase.cs index 2ab328c074..bd3c8ce95e 100644 --- a/benchmarks/Serialization/SerializationBenchmarkBase.cs +++ b/benchmarks/Serialization/SerializationBenchmarkBase.cs @@ -73,7 +73,7 @@ public sealed class OutgoingResource : Identifiable public float? Attribute05 { get; set; } [Attr] - public string Attribute06 { get; set; } = null!; + public required string Attribute06 { get; set; } [Attr] public DateTime? Attribute07 { get; set; } @@ -88,33 +88,33 @@ public sealed class OutgoingResource : Identifiable public DayOfWeek Attribute10 { get; set; } [HasOne] - public OutgoingResource Single1 { get; set; } = null!; + public required OutgoingResource Single1 { get; set; } [HasOne] - public OutgoingResource Single2 { get; set; } = null!; + public required OutgoingResource Single2 { get; set; } [HasOne] - public OutgoingResource Single3 { get; set; } = null!; + public required OutgoingResource Single3 { get; set; } [HasOne] - public OutgoingResource Single4 { get; set; } = null!; + public required OutgoingResource Single4 { get; set; } [HasOne] - public OutgoingResource Single5 { get; set; } = null!; + public required OutgoingResource Single5 { get; set; } [HasMany] - public ISet Multi1 { get; set; } = null!; + public required ISet Multi1 { get; set; } [HasMany] - public ISet Multi2 { get; set; } = null!; + public required ISet Multi2 { get; set; } [HasMany] - public ISet Multi3 { get; set; } = null!; + public required ISet Multi3 { get; set; } [HasMany] - public ISet Multi4 { get; set; } = null!; + public required ISet Multi4 { get; set; } [HasMany] - public ISet Multi5 { get; set; } = null!; + public required ISet Multi5 { get; set; } } } diff --git a/docs/home/index.html b/docs/home/index.html index 7023e2ddc6..388c91d598 100644 --- a/docs/home/index.html +++ b/docs/home/index.html @@ -189,7 +189,7 @@

Resource

{ [Attr] [MaxLength(30)] - public string Title { get; set; } = null!; + public required string Title { get; set; } [Attr(Capabilities = AttrCapabilities.AllowFilter)] public string? Summary { get; set; } @@ -205,7 +205,7 @@

Resource

public DateTimeOffset LastModifiedAt { get; set; } [HasOne] - public Person Author { get; set; } = null!; + public required required Person Author { get; set; } [HasOne] public Person? Reviewer { get; set; } From 541674034567ba9f7450e47a06846ffc83c12d69 Mon Sep 17 00:00:00 2001 From: niteshsinghal85 Date: Mon, 22 Dec 2025 14:04:07 +0530 Subject: [PATCH 03/10] examples : Refactor properties to use 'required' instead of nullable with null default --- src/Examples/DapperExample/Models/AccountRecovery.cs | 2 +- src/Examples/DapperExample/Models/LoginAccount.cs | 6 +++--- src/Examples/DapperExample/Models/Person.cs | 2 +- src/Examples/DapperExample/Models/RgbColor.cs | 2 +- src/Examples/DapperExample/Models/Tag.cs | 2 +- src/Examples/DapperExample/Models/TodoItem.cs | 4 ++-- src/Examples/DatabasePerTenantExample/Models/Employee.cs | 6 +++--- src/Examples/GettingStarted/Models/Book.cs | 4 ++-- src/Examples/GettingStarted/Models/Person.cs | 2 +- src/Examples/JsonApiDotNetCoreExample/Models/Person.cs | 2 +- src/Examples/JsonApiDotNetCoreExample/Models/Tag.cs | 2 +- src/Examples/JsonApiDotNetCoreExample/Models/TodoItem.cs | 4 ++-- src/Examples/NoEntityFrameworkExample/Models/Person.cs | 2 +- src/Examples/NoEntityFrameworkExample/Models/Tag.cs | 2 +- src/Examples/NoEntityFrameworkExample/Models/TodoItem.cs | 4 ++-- src/Examples/ReportsExample/Models/Report.cs | 4 ++-- src/Examples/ReportsExample/Models/ReportStatistics.cs | 2 +- 17 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/Examples/DapperExample/Models/AccountRecovery.cs b/src/Examples/DapperExample/Models/AccountRecovery.cs index 38410c203c..379d54424e 100644 --- a/src/Examples/DapperExample/Models/AccountRecovery.cs +++ b/src/Examples/DapperExample/Models/AccountRecovery.cs @@ -15,5 +15,5 @@ public sealed class AccountRecovery : Identifiable public string? EmailAddress { get; set; } [HasOne] - public LoginAccount Account { get; set; } = null!; + public required LoginAccount Account { get; set; } } diff --git a/src/Examples/DapperExample/Models/LoginAccount.cs b/src/Examples/DapperExample/Models/LoginAccount.cs index 149fc6c7f8..1220b3355d 100644 --- a/src/Examples/DapperExample/Models/LoginAccount.cs +++ b/src/Examples/DapperExample/Models/LoginAccount.cs @@ -9,13 +9,13 @@ namespace DapperExample.Models; public sealed class LoginAccount : Identifiable { [Attr] - public string UserName { get; set; } = null!; + public required string UserName { get; set; } public DateTimeOffset? LastUsedAt { get; set; } [HasOne] - public AccountRecovery Recovery { get; set; } = null!; + public required AccountRecovery Recovery { get; set; } [HasOne] - public Person Person { get; set; } = null!; + public required Person Person { get; set; } } diff --git a/src/Examples/DapperExample/Models/Person.cs b/src/Examples/DapperExample/Models/Person.cs index 1eb4ecadee..a4f773aab7 100644 --- a/src/Examples/DapperExample/Models/Person.cs +++ b/src/Examples/DapperExample/Models/Person.cs @@ -13,7 +13,7 @@ public sealed class Person : Identifiable public string? FirstName { get; set; } [Attr] - public string LastName { get; set; } = null!; + public required string LastName { get; set; } // Mistakenly includes AllowFilter, so we can test for the error produced. [Attr(Capabilities = AttrCapabilities.AllowView | AttrCapabilities.AllowFilter)] diff --git a/src/Examples/DapperExample/Models/RgbColor.cs b/src/Examples/DapperExample/Models/RgbColor.cs index c29e1b1ba1..3e44f1054e 100644 --- a/src/Examples/DapperExample/Models/RgbColor.cs +++ b/src/Examples/DapperExample/Models/RgbColor.cs @@ -19,7 +19,7 @@ public override int? Id } [HasOne] - public Tag Tag { get; set; } = null!; + public required Tag Tag { get; set; } [Attr(Capabilities = AttrCapabilities.AllowView)] [NotMapped] diff --git a/src/Examples/DapperExample/Models/Tag.cs b/src/Examples/DapperExample/Models/Tag.cs index cb49ff42fb..bae458c33a 100644 --- a/src/Examples/DapperExample/Models/Tag.cs +++ b/src/Examples/DapperExample/Models/Tag.cs @@ -11,7 +11,7 @@ public sealed class Tag : Identifiable { [Attr] [MinLength(1)] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasOne] public RgbColor? Color { get; set; } diff --git a/src/Examples/DapperExample/Models/TodoItem.cs b/src/Examples/DapperExample/Models/TodoItem.cs index d2f3916268..80b6718eaa 100644 --- a/src/Examples/DapperExample/Models/TodoItem.cs +++ b/src/Examples/DapperExample/Models/TodoItem.cs @@ -10,7 +10,7 @@ namespace DapperExample.Models; public sealed class TodoItem : Identifiable { [Attr] - public string Description { get; set; } = null!; + public required string Description { get; set; } [Attr] [Required] @@ -26,7 +26,7 @@ public sealed class TodoItem : Identifiable public DateTimeOffset? LastModifiedAt { get; set; } [HasOne] - public Person Owner { get; set; } = null!; + public required Person Owner { get; set; } [HasOne] public Person? Assignee { get; set; } diff --git a/src/Examples/DatabasePerTenantExample/Models/Employee.cs b/src/Examples/DatabasePerTenantExample/Models/Employee.cs index cc79449880..6cc1c4a676 100644 --- a/src/Examples/DatabasePerTenantExample/Models/Employee.cs +++ b/src/Examples/DatabasePerTenantExample/Models/Employee.cs @@ -9,11 +9,11 @@ namespace DatabasePerTenantExample.Models; public sealed class Employee : Identifiable { [Attr] - public string FirstName { get; set; } = null!; + public required string FirstName { get; set; } [Attr] - public string LastName { get; set; } = null!; + public required string LastName { get; set; } [Attr] - public string CompanyName { get; set; } = null!; + public required string CompanyName { get; set; } } diff --git a/src/Examples/GettingStarted/Models/Book.cs b/src/Examples/GettingStarted/Models/Book.cs index af4f857fdc..211ea73ea8 100644 --- a/src/Examples/GettingStarted/Models/Book.cs +++ b/src/Examples/GettingStarted/Models/Book.cs @@ -9,11 +9,11 @@ namespace GettingStarted.Models; public sealed class Book : Identifiable { [Attr] - public string Title { get; set; } = null!; + public required string Title { get; set; } [Attr] public int PublishYear { get; set; } [HasOne] - public Person Author { get; set; } = null!; + public required Person Author { get; set; } } diff --git a/src/Examples/GettingStarted/Models/Person.cs b/src/Examples/GettingStarted/Models/Person.cs index c30b87a889..f3fb215baa 100644 --- a/src/Examples/GettingStarted/Models/Person.cs +++ b/src/Examples/GettingStarted/Models/Person.cs @@ -9,7 +9,7 @@ namespace GettingStarted.Models; public sealed class Person : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasMany] public ICollection Books { get; set; } = new List(); diff --git a/src/Examples/JsonApiDotNetCoreExample/Models/Person.cs b/src/Examples/JsonApiDotNetCoreExample/Models/Person.cs index d11fbffff6..daeba78e2d 100644 --- a/src/Examples/JsonApiDotNetCoreExample/Models/Person.cs +++ b/src/Examples/JsonApiDotNetCoreExample/Models/Person.cs @@ -13,7 +13,7 @@ public sealed class Person : Identifiable public string? FirstName { get; set; } [Attr] - public string LastName { get; set; } = null!; + public required string LastName { get; set; } [Attr(Capabilities = AttrCapabilities.AllowView)] [NotMapped] diff --git a/src/Examples/JsonApiDotNetCoreExample/Models/Tag.cs b/src/Examples/JsonApiDotNetCoreExample/Models/Tag.cs index 8904ec01a3..bda77ebf7d 100644 --- a/src/Examples/JsonApiDotNetCoreExample/Models/Tag.cs +++ b/src/Examples/JsonApiDotNetCoreExample/Models/Tag.cs @@ -11,7 +11,7 @@ public sealed class Tag : Identifiable { [Attr] [MinLength(1)] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasMany] public ISet TodoItems { get; set; } = new HashSet(); diff --git a/src/Examples/JsonApiDotNetCoreExample/Models/TodoItem.cs b/src/Examples/JsonApiDotNetCoreExample/Models/TodoItem.cs index 68df7cef27..f4238998ff 100644 --- a/src/Examples/JsonApiDotNetCoreExample/Models/TodoItem.cs +++ b/src/Examples/JsonApiDotNetCoreExample/Models/TodoItem.cs @@ -10,7 +10,7 @@ namespace JsonApiDotNetCoreExample.Models; public sealed class TodoItem : Identifiable { [Attr] - public string Description { get; set; } = null!; + public required string Description { get; set; } [Attr] [Required] @@ -26,7 +26,7 @@ public sealed class TodoItem : Identifiable public DateTimeOffset? LastModifiedAt { get; set; } [HasOne] - public Person Owner { get; set; } = null!; + public required Person Owner { get; set; } [HasOne] public Person? Assignee { get; set; } diff --git a/src/Examples/NoEntityFrameworkExample/Models/Person.cs b/src/Examples/NoEntityFrameworkExample/Models/Person.cs index 2e7d4a02ab..6e2ea91d68 100644 --- a/src/Examples/NoEntityFrameworkExample/Models/Person.cs +++ b/src/Examples/NoEntityFrameworkExample/Models/Person.cs @@ -14,7 +14,7 @@ public sealed class Person : Identifiable public string? FirstName { get; set; } [Attr] - public string LastName { get; set; } = null!; + public required string LastName { get; set; } [Attr(Capabilities = AttrCapabilities.AllowView)] [NotMapped] diff --git a/src/Examples/NoEntityFrameworkExample/Models/Tag.cs b/src/Examples/NoEntityFrameworkExample/Models/Tag.cs index 4a6ae70f49..464459f8ce 100644 --- a/src/Examples/NoEntityFrameworkExample/Models/Tag.cs +++ b/src/Examples/NoEntityFrameworkExample/Models/Tag.cs @@ -12,7 +12,7 @@ public sealed class Tag : Identifiable { [Attr] [MinLength(1)] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasMany] public ISet TodoItems { get; set; } = new HashSet(); diff --git a/src/Examples/NoEntityFrameworkExample/Models/TodoItem.cs b/src/Examples/NoEntityFrameworkExample/Models/TodoItem.cs index 75d948ca7c..eb158cd7bb 100644 --- a/src/Examples/NoEntityFrameworkExample/Models/TodoItem.cs +++ b/src/Examples/NoEntityFrameworkExample/Models/TodoItem.cs @@ -11,7 +11,7 @@ namespace NoEntityFrameworkExample.Models; public sealed class TodoItem : Identifiable { [Attr] - public string Description { get; set; } = null!; + public required string Description { get; set; } [Attr] [Required] @@ -21,7 +21,7 @@ public sealed class TodoItem : Identifiable public long? DurationInHours { get; set; } [HasOne] - public Person Owner { get; set; } = null!; + public required Person Owner { get; set; } [HasOne] public Person? Assignee { get; set; } diff --git a/src/Examples/ReportsExample/Models/Report.cs b/src/Examples/ReportsExample/Models/Report.cs index e05f8e61a1..688d8a562e 100644 --- a/src/Examples/ReportsExample/Models/Report.cs +++ b/src/Examples/ReportsExample/Models/Report.cs @@ -10,8 +10,8 @@ namespace ReportsExample.Models; public sealed class Report : Identifiable { [Attr] - public string Title { get; set; } = null!; + public required string Title { get; set; } [Attr] - public ReportStatistics Statistics { get; set; } = null!; + public required ReportStatistics Statistics { get; set; } } diff --git a/src/Examples/ReportsExample/Models/ReportStatistics.cs b/src/Examples/ReportsExample/Models/ReportStatistics.cs index 2df01f9b5e..c477596b6f 100644 --- a/src/Examples/ReportsExample/Models/ReportStatistics.cs +++ b/src/Examples/ReportsExample/Models/ReportStatistics.cs @@ -5,6 +5,6 @@ namespace ReportsExample.Models; [UsedImplicitly(ImplicitUseTargetFlags.Members)] public sealed class ReportStatistics { - public string ProgressIndication { get; set; } = null!; + public required string ProgressIndication { get; set; } public int HoursSpent { get; set; } } From bce3e8f6803bca3df7a267a9b4fd9e2a2981837b Mon Sep 17 00:00:00 2001 From: niteshsinghal85 Date: Fri, 26 Dec 2025 16:37:46 +0530 Subject: [PATCH 04/10] Refactor properties to use 'required' instead of nullable with null default --- test/OpenApiTests/ResourceInheritance/Models/Mansion.cs | 2 +- test/OpenApiTests/ResourceInheritance/Models/Room.cs | 2 +- test/OpenApiTests/RestrictedControllers/Channel.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/OpenApiTests/ResourceInheritance/Models/Mansion.cs b/test/OpenApiTests/ResourceInheritance/Models/Mansion.cs index acf87c8eee..cd9bcbc7b1 100644 --- a/test/OpenApiTests/ResourceInheritance/Models/Mansion.cs +++ b/test/OpenApiTests/ResourceInheritance/Models/Mansion.cs @@ -8,7 +8,7 @@ namespace OpenApiTests.ResourceInheritance.Models; public sealed class Mansion : Residence { [Attr] - public string OwnerName { get; set; } = null!; + public required string OwnerName { get; set; } [HasMany] public ISet Staff { get; set; } = new HashSet(); diff --git a/test/OpenApiTests/ResourceInheritance/Models/Room.cs b/test/OpenApiTests/ResourceInheritance/Models/Room.cs index 6cf38598b7..cb25ecdaad 100644 --- a/test/OpenApiTests/ResourceInheritance/Models/Room.cs +++ b/test/OpenApiTests/ResourceInheritance/Models/Room.cs @@ -14,5 +14,5 @@ public abstract class Room : Identifiable public int? SurfaceInSquareMeters { get; set; } [HasOne] - public Residence Residence { get; set; } = null!; + public required Residence Residence { get; set; } } diff --git a/test/OpenApiTests/RestrictedControllers/Channel.cs b/test/OpenApiTests/RestrictedControllers/Channel.cs index a91555582d..9fa050de66 100644 --- a/test/OpenApiTests/RestrictedControllers/Channel.cs +++ b/test/OpenApiTests/RestrictedControllers/Channel.cs @@ -17,7 +17,7 @@ public abstract class Channel : Identifiable public bool? IsAdultOnly { get; set; } [HasOne] - public DataStream VideoStream { get; set; } = null!; + public required DataStream VideoStream { get; set; } [HasOne] public DataStream? UltraHighDefinitionVideoStream { get; set; } From 457c2ba0099e90d291dc4a460b823a1e7e220179 Mon Sep 17 00:00:00 2001 From: niteshsinghal85 Date: Fri, 26 Dec 2025 16:55:35 +0530 Subject: [PATCH 05/10] Refactor properties to use 'required' instead of nullable with null default --- .../SerializationBenchmarkBase.cs | 20 ++++++------- .../DapperExample/Models/AccountRecovery.cs | 2 +- .../DapperExample/Models/LoginAccount.cs | 4 +-- src/Examples/DapperExample/Models/RgbColor.cs | 2 +- .../Resources/Annotations/AttrAttribute.cs | 2 +- .../AddToRelationshipOperation.cs | 6 ++-- .../AtomicOperations/AtomicOperation.cs | 2 +- .../AtomicOperations/AtomicResult.cs | 4 +-- .../AtomicOperations/CreateOperation.cs | 4 +-- .../AtomicOperations/DeleteOperation.cs | 4 +-- .../RemoveFromRelationshipOperation.cs | 6 ++-- .../AtomicOperations/UpdateOperation.cs | 6 ++-- .../UpdateToManyRelationshipOperation.cs | 6 ++-- .../UpdateToOneRelationshipOperation.cs | 4 +-- .../Documents/CollectionResponseDocument.cs | 10 +++---- .../Documents/CreateRequestDocument.cs | 4 +-- .../Documents/ErrorResponseDocument.cs | 6 ++-- .../IdentifierCollectionResponseDocument.cs | 8 +++--- .../Documents/IdentifierResponseDocument.cs | 8 +++--- .../NullableIdentifierResponseDocument.cs | 6 ++-- .../NullableSecondaryResponseDocument.cs | 8 +++--- .../Documents/OperationsRequestDocument.cs | 4 +-- .../Documents/OperationsResponseDocument.cs | 8 +++--- .../Documents/PrimaryResponseDocument.cs | 10 +++---- .../Documents/SecondaryResponseDocument.cs | 10 +++---- .../Documents/UpdateRequestDocument.cs | 4 +-- .../JsonApiObjects/Jsonapi.cs | 8 +++--- .../Links/ErrorTopLevelLinks.cs | 4 +-- .../JsonApiObjects/Links/RelationshipLinks.cs | 4 +-- .../Links/ResourceCollectionTopLevelLinks.cs | 12 ++++---- ...sourceIdentifierCollectionTopLevelLinks.cs | 14 +++++----- .../Links/ResourceIdentifierTopLevelLinks.cs | 6 ++-- .../JsonApiObjects/Links/ResourceLinks.cs | 2 +- .../Links/ResourceTopLevelLinks.cs | 4 +-- .../Relationships/NullableToOneInRequest.cs | 2 +- .../Relationships/NullableToOneInResponse.cs | 4 +-- .../Relationships/ToManyInRequest.cs | 4 +-- .../Relationships/ToManyInResponse.cs | 6 ++-- .../Relationships/ToOneInRequest.cs | 4 +-- .../Relationships/ToOneInResponse.cs | 6 ++-- .../ResourceObjects/DataInCreateRequest.cs | 8 +++--- .../ResourceObjects/DataInResponse.cs | 8 +++--- .../ResourceObjects/DataInUpdateRequest.cs | 8 +++--- .../ResourceObjects/IdentifierInRequest.cs | 8 +++--- .../ResourceObjects/IdentifierInResponse.cs | 6 ++-- .../ResourceObjects/RelationshipIdentifier.cs | 2 +- .../ResourceObjects/ResourceData.cs | 4 +-- .../Archiving/BroadcastComment.cs | 4 +-- .../Archiving/TelevisionBroadcast.cs | 2 +- .../Archiving/TelevisionNetwork.cs | 2 +- .../Archiving/TelevisionStation.cs | 2 +- .../AtomicOperations/Lyric.cs | 2 +- .../AtomicOperations/MusicTrack.cs | 2 +- .../AtomicOperations/Playlist.cs | 2 +- .../AtomicOperations/RecordCompany.cs | 2 +- .../Authorization/Scopes/Actor.cs | 2 +- .../Authorization/Scopes/Genre.cs | 2 +- .../Authorization/Scopes/Movie.cs | 4 +-- .../IntegrationTests/Blobs/ImageContainer.cs | 2 +- .../CompositeKeys/Dealership.cs | 2 +- .../IntegrationTests/CompositeKeys/Engine.cs | 2 +- .../ContentNegotiation/Policy.cs | 2 +- .../IntegrationTests/CustomRoutes/Civilian.cs | 2 +- .../IntegrationTests/CustomRoutes/Town.cs | 2 +- .../IntegrationTests/EagerLoading/Building.cs | 2 +- .../IntegrationTests/EagerLoading/City.cs | 2 +- .../IntegrationTests/EagerLoading/Door.cs | 2 +- .../IntegrationTests/EagerLoading/State.cs | 2 +- .../IntegrationTests/EagerLoading/Street.cs | 2 +- .../ExceptionHandling/ConsumerArticle.cs | 2 +- .../HostingInIIS/ArtGallery.cs | 2 +- .../IntegrationTests/HostingInIIS/Painting.cs | 2 +- .../IdObfuscation/BankAccount.cs | 2 +- .../IdObfuscation/DebitCard.cs | 4 +-- .../ModelState/SystemDirectory.cs | 2 +- .../InputValidation/ModelState/SystemFile.cs | 2 +- .../ModelState/SystemVolume.cs | 2 +- .../IntegrationTests/Links/PhotoAlbum.cs | 2 +- .../IntegrationTests/Links/PhotoLocation.cs | 2 +- .../IntegrationTests/Logging/AuditEntry.cs | 2 +- .../IntegrationTests/Meta/ProductFamily.cs | 2 +- .../IntegrationTests/Meta/SupportTicket.cs | 2 +- .../Microservices/DomainGroup.cs | 2 +- .../Microservices/DomainUser.cs | 2 +- .../MultiTenancy/WebProduct.cs | 4 +-- .../IntegrationTests/MultiTenancy/WebShop.cs | 2 +- .../QueryStrings/Appointment.cs | 2 +- .../IntegrationTests/QueryStrings/Blog.cs | 4 +-- .../IntegrationTests/QueryStrings/BlogPost.cs | 4 +-- .../IntegrationTests/QueryStrings/Comment.cs | 4 +-- .../IntegrationTests/QueryStrings/Human.cs | 2 +- .../IntegrationTests/QueryStrings/Label.cs | 2 +- .../QueryStrings/WebAccount.cs | 8 +++--- .../IntegrationTests/QueryStrings/Woman.cs | 2 +- .../IntegrationTests/ReadWrite/RgbColor.cs | 2 +- .../ReadWrite/WorkItemGroup.cs | 2 +- .../ReadWrite/WorkItemToWorkItem.cs | 4 +-- .../RequiredRelationships/Customer.cs | 2 +- .../RequiredRelationships/Order.cs | 4 +-- .../RequiredRelationships/Shipment.cs | 4 +-- .../InjectionFakers.cs | 6 ++-- .../PostOffice.cs | 2 +- .../Reading/Constellation.cs | 2 +- .../ResourceDefinitions/Reading/Moon.cs | 4 +-- .../ResourceDefinitions/Reading/Planet.cs | 2 +- .../ResourceDefinitions/Reading/Star.cs | 2 +- .../Serialization/Scholarship.cs | 2 +- .../Serialization/Student.cs | 4 +-- .../Models/BicycleLight.cs | 2 +- .../Models/GenericFeature.cs | 2 +- .../Models/GenericProperty.cs | 2 +- .../Models/MotorVehicle.cs | 4 +-- .../Models/NavigationSystem.cs | 2 +- .../Models/NumberProperty.cs | 2 +- .../Models/StringProperty.cs | 2 +- .../ResourceInheritance/Models/StringValue.cs | 2 +- .../RestrictedControllers/Pillow.cs | 2 +- .../IntegrationTests/Serialization/Address.cs | 6 ++-- .../IntegrationTests/Serialization/Meeting.cs | 2 +- .../Serialization/MeetingAttendee.cs | 4 +-- .../IntegrationTests/SoftDeletion/Company.cs | 2 +- .../SoftDeletion/Department.cs | 2 +- .../IntegrationTests/ZeroKeys/Game.cs | 2 +- .../IntegrationTests/ZeroKeys/Map.cs | 2 +- .../IntegrationTests/ZeroKeys/Player.cs | 2 +- .../FieldChainPatternInheritanceMatchTests.cs | 2 +- .../ModelStateValidationTests.cs | 6 ++-- .../CreateSortExpressionFromLambdaTests.cs | 6 ++-- .../Serialization/Response/Models/Article.cs | 4 +-- .../Serialization/Response/Models/Blog.cs | 6 ++-- .../Serialization/Response/Models/Food.cs | 2 +- .../Serialization/Response/Models/Person.cs | 6 ++-- .../Serialization/Response/Models/Song.cs | 2 +- test/OpenApiTests/AtomicOperations/Course.cs | 2 +- .../AtomicOperations/Enrollment.cs | 4 +-- .../AtomicOperations/OperationsFakers.cs | 28 ++++++++++++++----- test/OpenApiTests/AtomicOperations/Student.cs | 2 +- test/OpenApiTests/AtomicOperations/Teacher.cs | 2 +- .../ClientIdGenerationModes/Game.cs | 2 +- .../ClientIdGenerationModes/Player.cs | 2 +- .../ClientIdGenerationModes/PlayerGroup.cs | 2 +- test/OpenApiTests/Documentation/Elevator.cs | 2 +- test/OpenApiTests/Documentation/Space.cs | 2 +- test/OpenApiTests/Headers/Country.cs | 2 +- test/OpenApiTests/Headers/Language.cs | 4 +-- .../OpenApiTests/IdObfuscation/BankAccount.cs | 2 +- test/OpenApiTests/IdObfuscation/DebitCard.cs | 4 +-- test/OpenApiTests/LegacyOpenApi/Airplane.cs | 2 +- test/OpenApiTests/LegacyOpenApi/Flight.cs | 4 +-- .../LegacyOpenApi/FlightAttendant.cs | 2 +- test/OpenApiTests/LegacyOpenApi/Passenger.cs | 2 +- test/OpenApiTests/Links/Accommodation.cs | 2 +- test/OpenApiTests/Links/Excursion.cs | 2 +- test/OpenApiTests/Links/Vacation.cs | 2 +- .../SocialMediaAccount.cs | 2 +- .../NamingConventions/StaffMember.cs | 2 +- .../NamingConventions/Supermarket.cs | 4 +-- .../QueryStrings/NameValuePair.cs | 4 +-- test/OpenApiTests/QueryStrings/Node.cs | 2 +- .../NullableReferenceTypesOn/NrtOnResource.cs | 8 +++--- .../ResourceInheritance/Models/District.cs | 2 +- .../ResourceInheritance/Models/StaffMember.cs | 2 +- 162 files changed, 316 insertions(+), 300 deletions(-) diff --git a/benchmarks/Serialization/SerializationBenchmarkBase.cs b/benchmarks/Serialization/SerializationBenchmarkBase.cs index bd3c8ce95e..3b1f77c15c 100644 --- a/benchmarks/Serialization/SerializationBenchmarkBase.cs +++ b/benchmarks/Serialization/SerializationBenchmarkBase.cs @@ -88,33 +88,33 @@ public sealed class OutgoingResource : Identifiable public DayOfWeek Attribute10 { get; set; } [HasOne] - public required OutgoingResource Single1 { get; set; } + public OutgoingResource Single1 { get; set; } = null!; [HasOne] - public required OutgoingResource Single2 { get; set; } + public OutgoingResource Single2 { get; set; } = null!; [HasOne] - public required OutgoingResource Single3 { get; set; } + public OutgoingResource Single3 { get; set; } = null!; [HasOne] - public required OutgoingResource Single4 { get; set; } + public OutgoingResource Single4 { get; set; } = null!; [HasOne] - public required OutgoingResource Single5 { get; set; } + public OutgoingResource Single5 { get; set; } = null!; [HasMany] - public required ISet Multi1 { get; set; } + public ISet Multi1 { get; set; } = null!; [HasMany] - public required ISet Multi2 { get; set; } + public ISet Multi2 { get; set; } = null!; [HasMany] - public required ISet Multi3 { get; set; } + public ISet Multi3 { get; set; } = null!; [HasMany] - public required ISet Multi4 { get; set; } + public ISet Multi4 { get; set; } = null!; [HasMany] - public required ISet Multi5 { get; set; } + public ISet Multi5 { get; set; } = null!; } } diff --git a/src/Examples/DapperExample/Models/AccountRecovery.cs b/src/Examples/DapperExample/Models/AccountRecovery.cs index 379d54424e..38410c203c 100644 --- a/src/Examples/DapperExample/Models/AccountRecovery.cs +++ b/src/Examples/DapperExample/Models/AccountRecovery.cs @@ -15,5 +15,5 @@ public sealed class AccountRecovery : Identifiable public string? EmailAddress { get; set; } [HasOne] - public required LoginAccount Account { get; set; } + public LoginAccount Account { get; set; } = null!; } diff --git a/src/Examples/DapperExample/Models/LoginAccount.cs b/src/Examples/DapperExample/Models/LoginAccount.cs index 1220b3355d..a40fcaa46e 100644 --- a/src/Examples/DapperExample/Models/LoginAccount.cs +++ b/src/Examples/DapperExample/Models/LoginAccount.cs @@ -14,8 +14,8 @@ public sealed class LoginAccount : Identifiable public DateTimeOffset? LastUsedAt { get; set; } [HasOne] - public required AccountRecovery Recovery { get; set; } + public AccountRecovery Recovery { get; set; } = null!; [HasOne] - public required Person Person { get; set; } + public Person Person { get; set; } = null!; } diff --git a/src/Examples/DapperExample/Models/RgbColor.cs b/src/Examples/DapperExample/Models/RgbColor.cs index 3e44f1054e..c29e1b1ba1 100644 --- a/src/Examples/DapperExample/Models/RgbColor.cs +++ b/src/Examples/DapperExample/Models/RgbColor.cs @@ -19,7 +19,7 @@ public override int? Id } [HasOne] - public required Tag Tag { get; set; } + public Tag Tag { get; set; } = null!; [Attr(Capabilities = AttrCapabilities.AllowView)] [NotMapped] diff --git a/src/JsonApiDotNetCore.Annotations/Resources/Annotations/AttrAttribute.cs b/src/JsonApiDotNetCore.Annotations/Resources/Annotations/AttrAttribute.cs index 26a660775a..fa18f9d8bd 100644 --- a/src/JsonApiDotNetCore.Annotations/Resources/Annotations/AttrAttribute.cs +++ b/src/JsonApiDotNetCore.Annotations/Resources/Annotations/AttrAttribute.cs @@ -21,7 +21,7 @@ public sealed class AttrAttribute : ResourceFieldAttribute /// public class Author : Identifiable /// { /// [Attr(Capabilities = AttrCapabilities.AllowFilter | AttrCapabilities.AllowSort)] - /// public string Name { get; set; } = null!; + /// public required string Name { get; set; } /// } /// ]]> /// diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AddToRelationshipOperation.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AddToRelationshipOperation.cs index bf461fe41a..c932e35f16 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AddToRelationshipOperation.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AddToRelationshipOperation.cs @@ -12,13 +12,13 @@ internal sealed class AddToRelationshipOperation : AtomicOperation { [Required] [JsonPropertyName("op")] - public string Op { get; set; } = null!; + public required string Op { get; set; } [Required] [JsonPropertyName("ref")] - public object Ref { get; set; } = null!; + public required object Ref { get; set; } [Required] [JsonPropertyName("data")] - public ICollection> Data { get; set; } = null!; + public required ICollection> Data { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AtomicOperation.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AtomicOperation.cs index 6f0934008d..5ebdfa5244 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AtomicOperation.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AtomicOperation.cs @@ -7,5 +7,5 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.AtomicOperations; internal abstract class AtomicOperation : IHasMeta { [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AtomicResult.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AtomicResult.cs index f4dec21cbf..5f0fdebee0 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AtomicResult.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AtomicResult.cs @@ -8,8 +8,8 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.AtomicOperations; internal sealed class AtomicResult : IHasMeta { [JsonPropertyName("data")] - public ResourceInResponse Data { get; set; } = null!; + public required ResourceInResponse Data { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/CreateOperation.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/CreateOperation.cs index 266712e666..1b825bb398 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/CreateOperation.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/CreateOperation.cs @@ -12,9 +12,9 @@ internal sealed class CreateOperation : AtomicOperation { [Required] [JsonPropertyName("op")] - public string Op { get; set; } = null!; + public required string Op { get; set; } [Required] [JsonPropertyName("data")] - public DataInCreateRequest Data { get; set; } = null!; + public required DataInCreateRequest Data { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/DeleteOperation.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/DeleteOperation.cs index 838b4400dd..e81a2e9571 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/DeleteOperation.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/DeleteOperation.cs @@ -12,9 +12,9 @@ internal sealed class DeleteOperation : AtomicOperation { [Required] [JsonPropertyName("op")] - public string Op { get; set; } = null!; + public required string Op { get; set; } [Required] [JsonPropertyName("ref")] - public IdentifierInRequest Ref { get; set; } = null!; + public required IdentifierInRequest Ref { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/RemoveFromRelationshipOperation.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/RemoveFromRelationshipOperation.cs index eafe36028e..70a805fc0f 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/RemoveFromRelationshipOperation.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/RemoveFromRelationshipOperation.cs @@ -12,13 +12,13 @@ internal sealed class RemoveFromRelationshipOperation : AtomicOperati { [Required] [JsonPropertyName("op")] - public string Op { get; set; } = null!; + public required string Op { get; set; } [Required] [JsonPropertyName("ref")] - public object Ref { get; set; } = null!; + public required object Ref { get; set; } [Required] [JsonPropertyName("data")] - public ICollection> Data { get; set; } = null!; + public required ICollection> Data { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateOperation.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateOperation.cs index cb576c3a4f..758838f8bd 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateOperation.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateOperation.cs @@ -12,12 +12,12 @@ internal sealed class UpdateOperation : AtomicOperation { [Required] [JsonPropertyName("op")] - public string Op { get; set; } = null!; + public required string Op { get; set; } [JsonPropertyName("ref")] - public IdentifierInRequest Ref { get; set; } = null!; + public required IdentifierInRequest Ref { get; set; } [Required] [JsonPropertyName("data")] - public DataInUpdateRequest Data { get; set; } = null!; + public required DataInUpdateRequest Data { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateToManyRelationshipOperation.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateToManyRelationshipOperation.cs index 2725b3dd9f..864ae52d83 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateToManyRelationshipOperation.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateToManyRelationshipOperation.cs @@ -12,13 +12,13 @@ internal sealed class UpdateToManyRelationshipOperation : AtomicOpera { [Required] [JsonPropertyName("op")] - public string Op { get; set; } = null!; + public required string Op { get; set; } [Required] [JsonPropertyName("ref")] - public object Ref { get; set; } = null!; + public required object Ref { get; set; } [Required] [JsonPropertyName("data")] - public ICollection> Data { get; set; } = null!; + public required ICollection> Data { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateToOneRelationshipOperation.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateToOneRelationshipOperation.cs index 71c6528605..e2015a1d17 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateToOneRelationshipOperation.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateToOneRelationshipOperation.cs @@ -12,11 +12,11 @@ internal sealed class UpdateToOneRelationshipOperation : AtomicOperat { [Required] [JsonPropertyName("op")] - public string Op { get; set; } = null!; + public required string Op { get; set; } [Required] [JsonPropertyName("ref")] - public object Ref { get; set; } = null!; + public required object Ref { get; set; } [Required] [JsonPropertyName("data")] diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/CollectionResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/CollectionResponseDocument.cs index bfb0131f07..b637cedfbe 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/CollectionResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/CollectionResponseDocument.cs @@ -12,19 +12,19 @@ internal sealed class CollectionResponseDocument : IHasMeta where TResource : IIdentifiable { [JsonPropertyName("jsonapi")] - public Jsonapi Jsonapi { get; set; } = null!; + public required Jsonapi Jsonapi { get; set; } [Required] [JsonPropertyName("links")] - public ResourceCollectionTopLevelLinks Links { get; set; } = null!; + public required ResourceCollectionTopLevelLinks Links { get; set; } [Required] [JsonPropertyName("data")] - public ICollection> Data { get; set; } = null!; + public required ICollection> Data { get; set; } [JsonPropertyName("included")] - public IList Included { get; set; } = null!; + public required IList Included { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/CreateRequestDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/CreateRequestDocument.cs index 388d659398..53e5611cef 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/CreateRequestDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/CreateRequestDocument.cs @@ -12,8 +12,8 @@ internal sealed class CreateRequestDocument : IHasMeta { [Required] [JsonPropertyName("data")] - public DataInCreateRequest Data { get; set; } = null!; + public required DataInCreateRequest Data { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/ErrorResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/ErrorResponseDocument.cs index 750c83ef74..cf61ed4db1 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/ErrorResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/ErrorResponseDocument.cs @@ -10,16 +10,16 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Documents; internal sealed class ErrorResponseDocument : IHasMeta { [JsonPropertyName("jsonapi")] - public Jsonapi Jsonapi { get; set; } = null!; + public required Jsonapi Jsonapi { get; set; } [Required] [JsonPropertyName("links")] - public ErrorTopLevelLinks Links { get; set; } = null!; + public required ErrorTopLevelLinks Links { get; set; } [Required] [JsonPropertyName("errors")] public IList Errors { get; set; } = new List(); [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/IdentifierCollectionResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/IdentifierCollectionResponseDocument.cs index bf50821888..7a0dba363b 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/IdentifierCollectionResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/IdentifierCollectionResponseDocument.cs @@ -12,16 +12,16 @@ internal sealed class IdentifierCollectionResponseDocument : IHasMeta where TResource : IIdentifiable { [JsonPropertyName("jsonapi")] - public Jsonapi Jsonapi { get; set; } = null!; + public required Jsonapi Jsonapi { get; set; } [Required] [JsonPropertyName("links")] - public ResourceIdentifierCollectionTopLevelLinks Links { get; set; } = null!; + public required ResourceIdentifierCollectionTopLevelLinks Links { get; set; } [Required] [JsonPropertyName("data")] - public ICollection> Data { get; set; } = null!; + public required ICollection> Data { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/IdentifierResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/IdentifierResponseDocument.cs index 3c44955edc..fbeedce9e3 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/IdentifierResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/IdentifierResponseDocument.cs @@ -12,16 +12,16 @@ internal sealed class IdentifierResponseDocument : IHasMeta where TResource : IIdentifiable { [JsonPropertyName("jsonapi")] - public Jsonapi Jsonapi { get; set; } = null!; + public required Jsonapi Jsonapi { get; set; } [Required] [JsonPropertyName("links")] - public ResourceIdentifierTopLevelLinks Links { get; set; } = null!; + public required ResourceIdentifierTopLevelLinks Links { get; set; } [Required] [JsonPropertyName("data")] - public IdentifierInResponse Data { get; set; } = null!; + public required IdentifierInResponse Data { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/NullableIdentifierResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/NullableIdentifierResponseDocument.cs index 1386bec001..7a2409b2f9 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/NullableIdentifierResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/NullableIdentifierResponseDocument.cs @@ -14,16 +14,16 @@ internal sealed class NullableIdentifierResponseDocument : IHasMeta where TResource : IIdentifiable { [JsonPropertyName("jsonapi")] - public Jsonapi Jsonapi { get; set; } = null!; + public required Jsonapi Jsonapi { get; set; } [Required] [JsonPropertyName("links")] - public ResourceIdentifierTopLevelLinks Links { get; set; } = null!; + public required ResourceIdentifierTopLevelLinks Links { get; set; } [Required] [JsonPropertyName("data")] public IdentifierInResponse? Data { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/NullableSecondaryResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/NullableSecondaryResponseDocument.cs index 6d6d240a5b..fec66e9c35 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/NullableSecondaryResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/NullableSecondaryResponseDocument.cs @@ -12,19 +12,19 @@ internal sealed class NullableSecondaryResponseDocument : IHasMeta where TResource : IIdentifiable { [JsonPropertyName("jsonapi")] - public Jsonapi Jsonapi { get; set; } = null!; + public required Jsonapi Jsonapi { get; set; } [Required] [JsonPropertyName("links")] - public ResourceTopLevelLinks Links { get; set; } = null!; + public required ResourceTopLevelLinks Links { get; set; } [Required] [JsonPropertyName("data")] public DataInResponse? Data { get; set; } [JsonPropertyName("included")] - public IList Included { get; set; } = null!; + public required IList Included { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/OperationsRequestDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/OperationsRequestDocument.cs index 6bd3a1dad2..ccfd9ca3ac 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/OperationsRequestDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/OperationsRequestDocument.cs @@ -11,8 +11,8 @@ internal sealed class OperationsRequestDocument : IHasMeta [Required] [MinLength(1)] [JsonPropertyName("atomic:operations")] - public ICollection Operations { get; set; } = null!; + public required ICollection Operations { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/OperationsResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/OperationsResponseDocument.cs index 1c962fba84..6cd7a5f01d 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/OperationsResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/OperationsResponseDocument.cs @@ -10,17 +10,17 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Documents; internal sealed class OperationsResponseDocument : IHasMeta { [JsonPropertyName("jsonapi")] - public Jsonapi Jsonapi { get; set; } = null!; + public required Jsonapi Jsonapi { get; set; } [Required] [JsonPropertyName("links")] - public ResourceTopLevelLinks Links { get; set; } = null!; + public required ResourceTopLevelLinks Links { get; set; } [Required] [MinLength(1)] [JsonPropertyName("atomic:results")] - public IList Results { get; set; } = null!; + public required IList Results { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/PrimaryResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/PrimaryResponseDocument.cs index 1956fb8758..8b7983ab9f 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/PrimaryResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/PrimaryResponseDocument.cs @@ -12,19 +12,19 @@ internal sealed class PrimaryResponseDocument : IHasMeta where TResource : IIdentifiable { [JsonPropertyName("jsonapi")] - public Jsonapi Jsonapi { get; set; } = null!; + public required Jsonapi Jsonapi { get; set; } [Required] [JsonPropertyName("links")] - public ResourceTopLevelLinks Links { get; set; } = null!; + public required ResourceTopLevelLinks Links { get; set; } [Required] [JsonPropertyName("data")] - public DataInResponse Data { get; set; } = null!; + public required DataInResponse Data { get; set; } [JsonPropertyName("included")] - public IList Included { get; set; } = null!; + public required IList Included { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/SecondaryResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/SecondaryResponseDocument.cs index 6a90db36e1..e95f485b25 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/SecondaryResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/SecondaryResponseDocument.cs @@ -12,19 +12,19 @@ internal sealed class SecondaryResponseDocument : IHasMeta where TResource : IIdentifiable { [JsonPropertyName("jsonapi")] - public Jsonapi Jsonapi { get; set; } = null!; + public required Jsonapi Jsonapi { get; set; } [Required] [JsonPropertyName("links")] - public ResourceTopLevelLinks Links { get; set; } = null!; + public required ResourceTopLevelLinks Links { get; set; } [Required] [JsonPropertyName("data")] - public DataInResponse Data { get; set; } = null!; + public required DataInResponse Data { get; set; } [JsonPropertyName("included")] - public IList Included { get; set; } = null!; + public required IList Included { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/UpdateRequestDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/UpdateRequestDocument.cs index cbeec3e86b..c33b65c145 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/UpdateRequestDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/UpdateRequestDocument.cs @@ -12,8 +12,8 @@ internal sealed class UpdateRequestDocument : IHasMeta { [Required] [JsonPropertyName("data")] - public DataInUpdateRequest Data { get; set; } = null!; + public required DataInUpdateRequest Data { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Jsonapi.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Jsonapi.cs index 692b5d77ac..88c479bfc3 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Jsonapi.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Jsonapi.cs @@ -7,14 +7,14 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects; internal sealed class Jsonapi : IHasMeta { [JsonPropertyName("version")] - public string Version { get; set; } = null!; + public required string Version { get; set; } [JsonPropertyName("ext")] - public ICollection Ext { get; set; } = null!; + public required ICollection Ext { get; set; } [JsonPropertyName("profile")] - public ICollection Profile { get; set; } = null!; + public required ICollection Profile { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ErrorTopLevelLinks.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ErrorTopLevelLinks.cs index f98c9eb480..1dae0cc00b 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ErrorTopLevelLinks.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ErrorTopLevelLinks.cs @@ -7,8 +7,8 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Links; internal sealed class ErrorTopLevelLinks { [JsonPropertyName("self")] - public string Self { get; set; } = null!; + public required string Self { get; set; } [JsonPropertyName("describedby")] - public string Describedby { get; set; } = null!; + public required string Describedby { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/RelationshipLinks.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/RelationshipLinks.cs index 0bdae58dee..7fd48e90e2 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/RelationshipLinks.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/RelationshipLinks.cs @@ -7,8 +7,8 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Links; internal sealed class RelationshipLinks { [JsonPropertyName("self")] - public string Self { get; set; } = null!; + public required string Self { get; set; } [JsonPropertyName("related")] - public string Related { get; set; } = null!; + public required string Related { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceCollectionTopLevelLinks.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceCollectionTopLevelLinks.cs index 65710af45f..338a43fa27 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceCollectionTopLevelLinks.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceCollectionTopLevelLinks.cs @@ -7,20 +7,20 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Links; internal sealed class ResourceCollectionTopLevelLinks { [JsonPropertyName("self")] - public string Self { get; set; } = null!; + public required string Self { get; set; } [JsonPropertyName("describedby")] - public string Describedby { get; set; } = null!; + public required string Describedby { get; set; } [JsonPropertyName("first")] - public string First { get; set; } = null!; + public required string First { get; set; } [JsonPropertyName("last")] - public string Last { get; set; } = null!; + public required string Last { get; set; } [JsonPropertyName("prev")] - public string Prev { get; set; } = null!; + public required string Prev { get; set; } [JsonPropertyName("next")] - public string Next { get; set; } = null!; + public required string Next { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceIdentifierCollectionTopLevelLinks.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceIdentifierCollectionTopLevelLinks.cs index 8b9a3aaf55..7aff221c8e 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceIdentifierCollectionTopLevelLinks.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceIdentifierCollectionTopLevelLinks.cs @@ -7,23 +7,23 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Links; internal sealed class ResourceIdentifierCollectionTopLevelLinks { [JsonPropertyName("self")] - public string Self { get; set; } = null!; + public required string Self { get; set; } [JsonPropertyName("related")] - public string Related { get; set; } = null!; + public required string Related { get; set; } [JsonPropertyName("describedby")] - public string Describedby { get; set; } = null!; + public required string Describedby { get; set; } [JsonPropertyName("first")] - public string First { get; set; } = null!; + public required string First { get; set; } [JsonPropertyName("last")] - public string Last { get; set; } = null!; + public required string Last { get; set; } [JsonPropertyName("prev")] - public string Prev { get; set; } = null!; + public required string Prev { get; set; } [JsonPropertyName("next")] - public string Next { get; set; } = null!; + public required string Next { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceIdentifierTopLevelLinks.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceIdentifierTopLevelLinks.cs index 9af21cf6a1..fca50bfc9d 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceIdentifierTopLevelLinks.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceIdentifierTopLevelLinks.cs @@ -7,11 +7,11 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Links; internal sealed class ResourceIdentifierTopLevelLinks { [JsonPropertyName("self")] - public string Self { get; set; } = null!; + public required string Self { get; set; } [JsonPropertyName("related")] - public string Related { get; set; } = null!; + public required string Related { get; set; } [JsonPropertyName("describedby")] - public string Describedby { get; set; } = null!; + public required string Describedby { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceLinks.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceLinks.cs index a37ef69523..647ce04093 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceLinks.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceLinks.cs @@ -7,5 +7,5 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Links; internal sealed class ResourceLinks { [JsonPropertyName("self")] - public string Self { get; set; } = null!; + public required string Self { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceTopLevelLinks.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceTopLevelLinks.cs index 531c8d10ad..fd1ef54a28 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceTopLevelLinks.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceTopLevelLinks.cs @@ -7,8 +7,8 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Links; internal sealed class ResourceTopLevelLinks { [JsonPropertyName("self")] - public string Self { get; set; } = null!; + public required string Self { get; set; } [JsonPropertyName("describedby")] - public string Describedby { get; set; } = null!; + public required string Describedby { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/NullableToOneInRequest.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/NullableToOneInRequest.cs index 13f3290102..4940aef38e 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/NullableToOneInRequest.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/NullableToOneInRequest.cs @@ -15,5 +15,5 @@ internal sealed class NullableToOneInRequest : IHasMeta public IdentifierInRequest? Data { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/NullableToOneInResponse.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/NullableToOneInResponse.cs index 29d13dd1c2..d3dce45f6a 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/NullableToOneInResponse.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/NullableToOneInResponse.cs @@ -12,12 +12,12 @@ internal sealed class NullableToOneInResponse : IHasMeta { // Non-required because the related controller may be unavailable when used in an include. [JsonPropertyName("links")] - public RelationshipLinks Links { get; set; } = null!; + public required RelationshipLinks Links { get; set; } // Non-required because related data may not be included in the response. [JsonPropertyName("data")] public IdentifierInResponse? Data { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToManyInRequest.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToManyInRequest.cs index b80ab3a004..0a718ff93e 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToManyInRequest.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToManyInRequest.cs @@ -12,8 +12,8 @@ internal sealed class ToManyInRequest : IHasMeta { [Required] [JsonPropertyName("data")] - public ICollection> Data { get; set; } = null!; + public required ICollection> Data { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToManyInResponse.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToManyInResponse.cs index e60ab7f451..f85493526b 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToManyInResponse.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToManyInResponse.cs @@ -12,12 +12,12 @@ internal sealed class ToManyInResponse : IHasMeta { // Non-required because the related controller may be unavailable when used in an include. [JsonPropertyName("links")] - public RelationshipLinks Links { get; set; } = null!; + public required RelationshipLinks Links { get; set; } // Non-required because related data may not be included in the response. [JsonPropertyName("data")] - public ICollection> Data { get; set; } = null!; + public required ICollection> Data { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToOneInRequest.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToOneInRequest.cs index 6404e84545..384f6ffad9 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToOneInRequest.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToOneInRequest.cs @@ -12,8 +12,8 @@ internal sealed class ToOneInRequest : IHasMeta { [Required] [JsonPropertyName("data")] - public IdentifierInRequest Data { get; set; } = null!; + public required IdentifierInRequest Data { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToOneInResponse.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToOneInResponse.cs index 859a1de929..eb39f24f3c 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToOneInResponse.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToOneInResponse.cs @@ -12,12 +12,12 @@ internal sealed class ToOneInResponse : IHasMeta { // Non-required because the related controller may be unavailable when used in an include. [JsonPropertyName("links")] - public RelationshipLinks Links { get; set; } = null!; + public required RelationshipLinks Links { get; set; } // Non-required because related data may not be included in the response. [JsonPropertyName("data")] - public IdentifierInResponse Data { get; set; } = null!; + public required IdentifierInResponse Data { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInCreateRequest.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInCreateRequest.cs index ac416a1614..baddce0874 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInCreateRequest.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInCreateRequest.cs @@ -11,15 +11,15 @@ internal sealed class DataInCreateRequest : ResourceInCreateRequest { [MinLength(1)] [JsonPropertyName("id")] - public override string Id { get; set; } = null!; + public override required string Id { get; set; } [MinLength(1)] [JsonPropertyName("lid")] - public string Lid { get; set; } = null!; + public required string Lid { get; set; } [JsonPropertyName("attributes")] - public AttributesInCreateRequest Attributes { get; set; } = null!; + public required AttributesInCreateRequest Attributes { get; set; } [JsonPropertyName("relationships")] - public RelationshipsInCreateRequest Relationships { get; set; } = null!; + public required RelationshipsInCreateRequest Relationships { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInResponse.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInResponse.cs index 6015a3511d..d0115c28bd 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInResponse.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInResponse.cs @@ -12,15 +12,15 @@ internal sealed class DataInResponse : ResourceInResponse { [Required] [JsonPropertyName("id")] - public override string Id { get; set; } = null!; + public override required string Id { get; set; } [JsonPropertyName("attributes")] - public AttributesInResponse Attributes { get; set; } = null!; + public required AttributesInResponse Attributes { get; set; } [JsonPropertyName("relationships")] - public RelationshipsInResponse Relationships { get; set; } = null!; + public required RelationshipsInResponse Relationships { get; set; } // Non-required because the related controller may be unavailable when used in an include. [JsonPropertyName("links")] - public ResourceLinks Links { get; set; } = null!; + public required ResourceLinks Links { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInUpdateRequest.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInUpdateRequest.cs index 25167a5437..2573e92c7b 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInUpdateRequest.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInUpdateRequest.cs @@ -11,15 +11,15 @@ internal sealed class DataInUpdateRequest : ResourceInUpdateRequest { [MinLength(1)] [JsonPropertyName("id")] - public override string Id { get; set; } = null!; + public override required string Id { get; set; } [MinLength(1)] [JsonPropertyName("lid")] - public string Lid { get; set; } = null!; + public required string Lid { get; set; } [JsonPropertyName("attributes")] - public AttributesInUpdateRequest Attributes { get; set; } = null!; + public required AttributesInUpdateRequest Attributes { get; set; } [JsonPropertyName("relationships")] - public RelationshipsInUpdateRequest Relationships { get; set; } = null!; + public required RelationshipsInUpdateRequest Relationships { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/IdentifierInRequest.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/IdentifierInRequest.cs index f317498810..d5ba6b7e1a 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/IdentifierInRequest.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/IdentifierInRequest.cs @@ -9,10 +9,10 @@ internal class IdentifierInRequest : IHasMeta { [Required] [JsonPropertyName("type")] - public string Type { get; set; } = null!; + public required string Type { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } // ReSharper disable once UnusedTypeParameter @@ -22,9 +22,9 @@ internal class IdentifierInRequest : IdentifierInRequest, IResourceId { [MinLength(1)] [JsonPropertyName("id")] - public string Id { get; set; } = null!; + public required string Id { get; set; } [MinLength(1)] [JsonPropertyName("lid")] - public string Lid { get; set; } = null!; + public required string Lid { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/IdentifierInResponse.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/IdentifierInResponse.cs index 47bf94ce17..f512f98bce 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/IdentifierInResponse.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/IdentifierInResponse.cs @@ -12,12 +12,12 @@ internal sealed class IdentifierInResponse : IResourceIdentity { [Required] [JsonPropertyName("type")] - public string Type { get; set; } = null!; + public required string Type { get; set; } [Required] [JsonPropertyName("id")] - public string Id { get; set; } = null!; + public required string Id { get; set; } [JsonPropertyName("meta")] - public Meta Meta { get; set; } = null!; + public required Meta Meta { get; set; } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/RelationshipIdentifier.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/RelationshipIdentifier.cs index 34afbf1dc2..7c8730ff70 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/RelationshipIdentifier.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/RelationshipIdentifier.cs @@ -11,7 +11,7 @@ internal sealed class RelationshipIdentifier : IdentifierInRequest { [Attr] - public string Text { get; set; } = null!; + public required string Text { get; set; } [Attr] public DateTimeOffset CreatedAt { get; set; } [HasOne] - public TelevisionBroadcast AppliesTo { get; set; } = null!; + public required TelevisionBroadcast AppliesTo { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Archiving/TelevisionBroadcast.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Archiving/TelevisionBroadcast.cs index 8476036013..14a1776360 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/Archiving/TelevisionBroadcast.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Archiving/TelevisionBroadcast.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.Archiving; public sealed class TelevisionBroadcast : Identifiable { [Attr] - public string Title { get; set; } = null!; + public required string Title { get; set; } [Attr] public DateTimeOffset AiredAt { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Archiving/TelevisionNetwork.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Archiving/TelevisionNetwork.cs index cbbe3219cc..4dbc8338e0 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/Archiving/TelevisionNetwork.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Archiving/TelevisionNetwork.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.Archiving; public sealed class TelevisionNetwork : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasMany] public ISet Stations { get; set; } = new HashSet(); diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Archiving/TelevisionStation.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Archiving/TelevisionStation.cs index 1bfab54405..9f8d47e076 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/Archiving/TelevisionStation.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Archiving/TelevisionStation.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.Archiving; public sealed class TelevisionStation : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasMany] public ISet Broadcasts { get; set; } = new HashSet(); diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Lyric.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Lyric.cs index af1ac9e18b..b0c5df488c 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Lyric.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Lyric.cs @@ -12,7 +12,7 @@ public sealed class Lyric : Identifiable public string? Format { get; set; } [Attr] - public string Text { get; set; } = null!; + public required string Text { get; set; } [Attr(Capabilities = AttrCapabilities.None)] public DateTimeOffset CreatedAt { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/MusicTrack.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/MusicTrack.cs index 0abf7385ee..8869171be9 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/MusicTrack.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/MusicTrack.cs @@ -13,7 +13,7 @@ public sealed class MusicTrack : Identifiable public override Guid Id { get; set; } [Attr] - public string Title { get; set; } = null!; + public required string Title { get; set; } [Attr] [Range(1, 24 * 60)] diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Playlist.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Playlist.cs index 0d6409e761..653b3aede8 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Playlist.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Playlist.cs @@ -10,7 +10,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.AtomicOperations; public sealed class Playlist : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] [NotMapped] diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/RecordCompany.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/RecordCompany.cs index 5e0509a57f..005cad3611 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/RecordCompany.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/RecordCompany.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.AtomicOperations; public sealed class RecordCompany : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] public string? CountryOfResidence { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/Actor.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/Actor.cs index 262fab70f1..ae431f9c30 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/Actor.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/Actor.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.Authorization.Scopes; public sealed class Actor : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] public DateTime BornAt { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/Genre.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/Genre.cs index f5bcba8fe2..d48443caae 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/Genre.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/Genre.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.Authorization.Scopes; public sealed class Genre : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasMany] public ISet Movies { get; set; } = new HashSet(); diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/Movie.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/Movie.cs index 4e52ff2728..eace8d3741 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/Movie.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/Movie.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.Authorization.Scopes; public sealed class Movie : Identifiable { [Attr] - public string Title { get; set; } = null!; + public required string Title { get; set; } [Attr] public int ReleaseYear { get; set; } @@ -18,7 +18,7 @@ public sealed class Movie : Identifiable public int DurationInSeconds { get; set; } [HasOne] - public Genre Genre { get; set; } = null!; + public required Genre Genre { get; set; } [HasMany] public ISet Cast { get; set; } = new HashSet(); diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Blobs/ImageContainer.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Blobs/ImageContainer.cs index 3462cdb2df..6b746389a5 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/Blobs/ImageContainer.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Blobs/ImageContainer.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.Blobs; public sealed class ImageContainer : Identifiable { [Attr] - public string FileName { get; set; } = null!; + public required string FileName { get; set; } [Attr] public byte[] Data { get; set; } = []; diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/CompositeKeys/Dealership.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/CompositeKeys/Dealership.cs index c8574b320e..15275a10fc 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/CompositeKeys/Dealership.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/CompositeKeys/Dealership.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.CompositeKeys; public sealed class Dealership : Identifiable { [Attr] - public string Address { get; set; } = null!; + public required string Address { get; set; } [HasMany] public ISet Inventory { get; set; } = new HashSet(); diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/CompositeKeys/Engine.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/CompositeKeys/Engine.cs index 428b65fbb7..11f33a5230 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/CompositeKeys/Engine.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/CompositeKeys/Engine.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.CompositeKeys; public sealed class Engine : Identifiable { [Attr] - public string SerialCode { get; set; } = null!; + public required string SerialCode { get; set; } [HasOne] public Car? Car { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/Policy.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/Policy.cs index 745b137069..a49a2217fd 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/Policy.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/Policy.cs @@ -9,5 +9,5 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ContentNegotiation; public sealed class Policy : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/Civilian.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/Civilian.cs index bd8d401fcb..5c11d5b464 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/Civilian.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/Civilian.cs @@ -10,7 +10,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.CustomRoutes; public sealed class Civilian : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] [Range(1900, 2050)] diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/Town.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/Town.cs index 5ef7dee922..c7d97e81ff 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/Town.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/Town.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.CustomRoutes; public sealed class Town : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] public double Latitude { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/Building.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/Building.cs index 84cce7149c..3c45d68341 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/Building.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/Building.cs @@ -10,7 +10,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.EagerLoading; public sealed class Building : Identifiable { [Attr] - public string Number { get; set; } = null!; + public required string Number { get; set; } [Attr] [NotMapped] diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/City.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/City.cs index 03ab50c832..bc302574a6 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/City.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/City.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.EagerLoading; public sealed class City : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasMany] public IList Streets { get; set; } = new List(); diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/Door.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/Door.cs index 1e60b1bd71..5f564732a7 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/Door.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/Door.cs @@ -8,5 +8,5 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.EagerLoading; public sealed class Door { public int Id { get; set; } - public string Color { get; set; } = null!; + public required string Color { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/State.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/State.cs index 190c745988..1ce3840f5a 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/State.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/State.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.EagerLoading; public sealed class State : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasMany] public IList Cities { get; set; } = new List(); diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/Street.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/Street.cs index 05673ec5d9..55b41020cf 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/Street.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/Street.cs @@ -10,7 +10,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.EagerLoading; public sealed class Street : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr(Capabilities = AttrCapabilities.AllowView)] [NotMapped] diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ExceptionHandling/ConsumerArticle.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ExceptionHandling/ConsumerArticle.cs index 64ba92a917..9695cabbf4 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ExceptionHandling/ConsumerArticle.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ExceptionHandling/ConsumerArticle.cs @@ -9,5 +9,5 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ExceptionHandling; public sealed class ConsumerArticle : Identifiable { [Attr] - public string Code { get; set; } = null!; + public required string Code { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/HostingInIIS/ArtGallery.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/HostingInIIS/ArtGallery.cs index 7331130cf2..bdee0f3d01 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/HostingInIIS/ArtGallery.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/HostingInIIS/ArtGallery.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.HostingInIIS; public sealed class ArtGallery : Identifiable { [Attr] - public string Theme { get; set; } = null!; + public required string Theme { get; set; } [HasMany] public ISet Paintings { get; set; } = new HashSet(); diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/HostingInIIS/Painting.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/HostingInIIS/Painting.cs index 0053dc9c2b..c5cf50b2d6 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/HostingInIIS/Painting.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/HostingInIIS/Painting.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.HostingInIIS; public sealed class Painting : Identifiable { [Attr] - public string Title { get; set; } = null!; + public required string Title { get; set; } [HasOne] public ArtGallery? ExposedAt { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/IdObfuscation/BankAccount.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/IdObfuscation/BankAccount.cs index 663b2a3bd6..b22a964547 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/IdObfuscation/BankAccount.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/IdObfuscation/BankAccount.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.IdObfuscation; public sealed class BankAccount : ObfuscatedIdentifiable { [Attr] - public string Iban { get; set; } = null!; + public required string Iban { get; set; } [HasMany] public IList Cards { get; set; } = new List(); diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/IdObfuscation/DebitCard.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/IdObfuscation/DebitCard.cs index 99f0154147..249d5f58e4 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/IdObfuscation/DebitCard.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/IdObfuscation/DebitCard.cs @@ -9,11 +9,11 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.IdObfuscation; public sealed class DebitCard : ObfuscatedIdentifiable { [Attr] - public string OwnerName { get; set; } = null!; + public required string OwnerName { get; set; } [Attr] public short PinCode { get; set; } [HasOne] - public BankAccount Account { get; set; } = null!; + public required BankAccount Account { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/SystemDirectory.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/SystemDirectory.cs index 4265dc688e..4b15539403 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/SystemDirectory.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/SystemDirectory.cs @@ -14,7 +14,7 @@ public sealed class SystemDirectory : Identifiable [Attr(PublicName = "directoryName")] [RegularExpression(@"^[\w\s]+$")] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] [Required] diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/SystemFile.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/SystemFile.cs index d2845cca84..1dd249f80a 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/SystemFile.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/SystemFile.cs @@ -11,7 +11,7 @@ public sealed class SystemFile : Identifiable { [Attr] [MinLength(1)] - public string FileName { get; set; } = null!; + public required string FileName { get; set; } [Attr] [Required] diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/SystemVolume.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/SystemVolume.cs index b283b551b1..6622088531 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/SystemVolume.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/SystemVolume.cs @@ -12,5 +12,5 @@ public sealed class SystemVolume : Identifiable public string? Name { get; set; } [HasOne] - public SystemDirectory RootDirectory { get; set; } = null!; + public required SystemDirectory RootDirectory { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/PhotoAlbum.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/PhotoAlbum.cs index 32bdf79a40..8669f37843 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/PhotoAlbum.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/PhotoAlbum.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.Links; public sealed class PhotoAlbum : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasMany] public ISet Photos { get; set; } = new HashSet(); diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/PhotoLocation.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/PhotoLocation.cs index 092851fbdd..9ac9f51ac4 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/PhotoLocation.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/PhotoLocation.cs @@ -19,7 +19,7 @@ public sealed class PhotoLocation : Identifiable public double Longitude { get; set; } [HasOne] - public Photo Photo { get; set; } = null!; + public required Photo Photo { get; set; } [HasOne(Links = LinkTypes.None)] public PhotoAlbum? Album { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Logging/AuditEntry.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Logging/AuditEntry.cs index 827a8cf472..1a7835817f 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/Logging/AuditEntry.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Logging/AuditEntry.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.Logging; public sealed class AuditEntry : Identifiable { [Attr] - public string UserName { get; set; } = null!; + public required string UserName { get; set; } [Attr] public DateTimeOffset CreatedAt { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Meta/ProductFamily.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Meta/ProductFamily.cs index bb72fd5392..e750563843 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/Meta/ProductFamily.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Meta/ProductFamily.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.Meta; public sealed class ProductFamily : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasMany] public IList Tickets { get; set; } = new List(); diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Meta/SupportTicket.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Meta/SupportTicket.cs index b04c0ec2ab..2e5a94fa31 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/Meta/SupportTicket.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Meta/SupportTicket.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.Meta; public sealed class SupportTicket : Identifiable { [Attr] - public string Description { get; set; } = null!; + public required string Description { get; set; } [HasOne] public ProductFamily? ProductFamily { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/DomainGroup.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/DomainGroup.cs index dd87456892..cc4e33e4cd 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/DomainGroup.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/DomainGroup.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.Microservices; public sealed class DomainGroup : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasMany] public ISet Users { get; set; } = new HashSet(); diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/DomainUser.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/DomainUser.cs index 0efb562355..d47d518e25 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/DomainUser.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/DomainUser.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.Microservices; public sealed class DomainUser : Identifiable { [Attr] - public string LoginName { get; set; } = null!; + public required string LoginName { get; set; } [Attr] public string? DisplayName { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/MultiTenancy/WebProduct.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/MultiTenancy/WebProduct.cs index a2c41c5ede..dbcac94b7a 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/MultiTenancy/WebProduct.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/MultiTenancy/WebProduct.cs @@ -9,11 +9,11 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.MultiTenancy; public sealed class WebProduct : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] public decimal Price { get; set; } [HasOne] - public WebShop Shop { get; set; } = null!; + public required WebShop Shop { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/MultiTenancy/WebShop.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/MultiTenancy/WebShop.cs index f191344fcc..2da0d679f6 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/MultiTenancy/WebShop.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/MultiTenancy/WebShop.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.MultiTenancy; public sealed class WebShop : Identifiable, IHasTenant { [Attr] - public string Url { get; set; } = null!; + public required string Url { get; set; } public Guid TenantId { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Appointment.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Appointment.cs index ba3ea783df..d9529099ea 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Appointment.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Appointment.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.QueryStrings; public sealed class Appointment : Identifiable { [Attr] - public string Title { get; set; } = null!; + public required string Title { get; set; } [Attr] public string? Description { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Blog.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Blog.cs index b58c446ced..3e23b11a38 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Blog.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Blog.cs @@ -9,10 +9,10 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.QueryStrings; public sealed class Blog : Identifiable { [Attr] - public string Title { get; set; } = null!; + public required string Title { get; set; } [Attr] - public string PlatformName { get; set; } = null!; + public required string PlatformName { get; set; } [Attr(Capabilities = AttrCapabilities.All & ~(AttrCapabilities.AllowCreate | AttrCapabilities.AllowChange))] public bool ShowAdvertisements => PlatformName.EndsWith("(using free account)", StringComparison.Ordinal); diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/BlogPost.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/BlogPost.cs index f0382f90a4..c72ee7256a 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/BlogPost.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/BlogPost.cs @@ -9,10 +9,10 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.QueryStrings; public sealed class BlogPost : Identifiable { [Attr] - public string Caption { get; set; } = null!; + public required string Caption { get; set; } [Attr] - public string Url { get; set; } = null!; + public required string Url { get; set; } [HasOne] public WebAccount? Author { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Comment.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Comment.cs index 2e78f4e999..c7442d8bc3 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Comment.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Comment.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.QueryStrings; public sealed class Comment : Identifiable { [Attr] - public string Text { get; set; } = null!; + public required string Text { get; set; } [Attr] public DateTime CreatedAt { get; set; } @@ -21,5 +21,5 @@ public sealed class Comment : Identifiable public WebAccount? Author { get; set; } [HasOne] - public BlogPost Parent { get; set; } = null!; + public required BlogPost Parent { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Human.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Human.cs index 1e2c01d73b..709e74e0c9 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Human.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Human.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.QueryStrings; public abstract class Human : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasOne] public Man? Father { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Label.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Label.cs index 9b22c051cf..6e69efd324 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Label.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Label.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.QueryStrings; public sealed class Label : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] public LabelColor Color { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/WebAccount.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/WebAccount.cs index c32431ec84..02fa63124c 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/WebAccount.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/WebAccount.cs @@ -9,19 +9,19 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.QueryStrings; public sealed class WebAccount : Identifiable { [Attr] - public string UserName { get; set; } = null!; + public required string UserName { get; set; } [Attr(Capabilities = AttrCapabilities.All & ~AttrCapabilities.AllowView)] - public string Password { get; set; } = null!; + public required string Password { get; set; } [Attr] - public string DisplayName { get; set; } = null!; + public required string DisplayName { get; set; } [Attr(Capabilities = AttrCapabilities.All & ~(AttrCapabilities.AllowFilter | AttrCapabilities.AllowSort))] public DateTime? DateOfBirth { get; set; } [Attr] - public string EmailAddress { get; set; } = null!; + public required string EmailAddress { get; set; } [HasOne(Capabilities = HasOneCapabilities.All & ~HasOneCapabilities.AllowView)] public Human? Person { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Woman.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Woman.cs index 8e1044b2de..29348c83c1 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Woman.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Woman.cs @@ -8,7 +8,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.QueryStrings; public sealed class Woman : Human { [Attr] - public string MaidenName { get; set; } = null!; + public required string MaidenName { get; set; } [Attr] public int Age { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/RgbColor.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/RgbColor.cs index 28762384c9..9fd97e08df 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/RgbColor.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/RgbColor.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ReadWrite; public sealed class RgbColor : Identifiable { [Attr] - public string DisplayName { get; set; } = null!; + public required string DisplayName { get; set; } [HasOne] public WorkItemGroup? Group { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/WorkItemGroup.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/WorkItemGroup.cs index b5b94258f2..d65f8b8fa9 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/WorkItemGroup.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/WorkItemGroup.cs @@ -10,7 +10,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ReadWrite; public sealed class WorkItemGroup : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] public bool IsPublic { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/WorkItemToWorkItem.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/WorkItemToWorkItem.cs index 23a62b0e4a..ffc574a551 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/WorkItemToWorkItem.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/WorkItemToWorkItem.cs @@ -7,6 +7,6 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ReadWrite; [NoResource] public sealed class WorkItemToWorkItem { - public WorkItem FromItem { get; set; } = null!; - public WorkItem ToItem { get; set; } = null!; + public required WorkItem FromItem { get; set; } + public required WorkItem ToItem { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/RequiredRelationships/Customer.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/RequiredRelationships/Customer.cs index 952eed4e1f..e4fad311c1 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/RequiredRelationships/Customer.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/RequiredRelationships/Customer.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.RequiredRelationships; public sealed class Customer : Identifiable { [Attr] - public string EmailAddress { get; set; } = null!; + public required string EmailAddress { get; set; } [HasMany] public ISet Orders { get; set; } = new HashSet(); diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/RequiredRelationships/Order.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/RequiredRelationships/Order.cs index 390556bf9f..e4226257cf 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/RequiredRelationships/Order.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/RequiredRelationships/Order.cs @@ -12,8 +12,8 @@ public sealed class Order : Identifiable public decimal Amount { get; set; } [HasOne] - public Customer Customer { get; set; } = null!; + public required Customer Customer { get; set; } [HasOne] - public Shipment Shipment { get; set; } = null!; + public required Shipment Shipment { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/RequiredRelationships/Shipment.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/RequiredRelationships/Shipment.cs index ed14d0a946..8d6242b284 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/RequiredRelationships/Shipment.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/RequiredRelationships/Shipment.cs @@ -11,11 +11,11 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.RequiredRelationships; public sealed class Shipment : Identifiable { [Attr] - public string TrackAndTraceCode { get; set; } = null!; + public required string TrackAndTraceCode { get; set; } [Attr] public DateTimeOffset ShippedAt { get; set; } [HasOne] - public Order Order { get; set; } = null!; + public required Order Order { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceConstructorInjection/InjectionFakers.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceConstructorInjection/InjectionFakers.cs index fc6cda269a..6db1321c55 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceConstructorInjection/InjectionFakers.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceConstructorInjection/InjectionFakers.cs @@ -28,8 +28,10 @@ public InjectionFakers(IServiceProvider serviceProvider) _lazyPostOfficeFaker = new Lazy>(() => new Faker() .MakeDeterministic(systemTimeUtc) - .CustomInstantiator(_ => new PostOffice(ResolveDbContext())) - .RuleFor(postOffice => postOffice.Address, faker => faker.Address.FullAddress())); + .CustomInstantiator(faker => new PostOffice(ResolveDbContext()) + { + Address = faker.Address.FullAddress() + })); _lazyGiftCertificateFaker = new Lazy>(() => new Faker() .MakeDeterministic(systemTimeUtc) diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceConstructorInjection/PostOffice.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceConstructorInjection/PostOffice.cs index ef91b2b1a6..70b3f4bb01 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceConstructorInjection/PostOffice.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceConstructorInjection/PostOffice.cs @@ -12,7 +12,7 @@ public sealed class PostOffice(InjectionDbContext injectionDbContext) : Identifi private readonly TimeProvider _timeProvider = injectionDbContext.TimeProvider; [Attr] - public string Address { get; set; } = null!; + public required string Address { get; set; } [Attr(Capabilities = AttrCapabilities.AllowView)] [NotMapped] diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Reading/Constellation.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Reading/Constellation.cs index 72bd00a662..8b60a25fe1 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Reading/Constellation.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Reading/Constellation.cs @@ -10,7 +10,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ResourceDefinitions.Reading; public sealed class Constellation : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] [Required] diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Reading/Moon.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Reading/Moon.cs index 3ce6cde44c..84b4ccef7c 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Reading/Moon.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Reading/Moon.cs @@ -9,13 +9,13 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ResourceDefinitions.Reading; public sealed class Moon : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] public decimal SolarRadius { get; set; } [HasOne] - public Planet OrbitsAround { get; set; } = null!; + public required Planet OrbitsAround { get; set; } [HasOne] public Star? IsGivenLightBy { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Reading/Planet.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Reading/Planet.cs index 33a5fe1081..e41905eaa8 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Reading/Planet.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Reading/Planet.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ResourceDefinitions.Reading; public sealed class Planet : Identifiable { [Attr] - public string PublicName { get; set; } = null!; + public required string PublicName { get; set; } [Attr] public string? PrivateName { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Reading/Star.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Reading/Star.cs index 48bc6f0e44..d1bdf69f1d 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Reading/Star.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Reading/Star.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ResourceDefinitions.Reading; public sealed class Star : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] public StarKind Kind { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Serialization/Scholarship.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Serialization/Scholarship.cs index a5a75eb939..4db5f82dfe 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Serialization/Scholarship.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Serialization/Scholarship.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ResourceDefinitions.Serializat public sealed class Scholarship : Identifiable { [Attr] - public string ProgramName { get; set; } = null!; + public required string ProgramName { get; set; } [Attr] public decimal Amount { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Serialization/Student.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Serialization/Student.cs index fa20cb05c6..e2c544310a 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Serialization/Student.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceDefinitions/Serialization/Student.cs @@ -9,10 +9,10 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ResourceDefinitions.Serializat public sealed class Student : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] - public string SocialSecurityNumber { get; set; } = null!; + public required string SocialSecurityNumber { get; set; } [HasOne] public Scholarship? Scholarship { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/BicycleLight.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/BicycleLight.cs index f1d41f44af..e84c05b3d1 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/BicycleLight.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/BicycleLight.cs @@ -9,5 +9,5 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ResourceInheritance.Models; public sealed class BicycleLight : Identifiable { [Attr] - public string Color { get; set; } = null!; + public required string Color { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/GenericFeature.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/GenericFeature.cs index 79de2d858e..1e34065aed 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/GenericFeature.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/GenericFeature.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ResourceInheritance.Models; public sealed class GenericFeature : Identifiable { [Attr] - public string Description { get; set; } = null!; + public required string Description { get; set; } [HasMany] public ISet Properties { get; set; } = new HashSet(); diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/GenericProperty.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/GenericProperty.cs index e410b9a803..1c188a02e7 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/GenericProperty.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/GenericProperty.cs @@ -9,5 +9,5 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ResourceInheritance.Models; public abstract class GenericProperty : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/MotorVehicle.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/MotorVehicle.cs index 2578d5d128..07170c6770 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/MotorVehicle.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/MotorVehicle.cs @@ -11,10 +11,10 @@ public abstract class MotorVehicle : Vehicle public override bool RequiresDriverLicense { get; set; } [Attr] - public string LicensePlate { get; set; } = null!; + public required string LicensePlate { get; set; } [HasOne] - public Engine Engine { get; set; } = null!; + public required Engine Engine { get; set; } [HasOne] public NavigationSystem? NavigationSystem { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/NavigationSystem.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/NavigationSystem.cs index 015c1089c7..64d67f8e8b 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/NavigationSystem.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/NavigationSystem.cs @@ -9,5 +9,5 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ResourceInheritance.Models; public sealed class NavigationSystem : Identifiable { [Attr] - public string ModelType { get; set; } = null!; + public required string ModelType { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/NumberProperty.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/NumberProperty.cs index e3d924f206..49c9978c8d 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/NumberProperty.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/NumberProperty.cs @@ -8,5 +8,5 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ResourceInheritance.Models; public sealed class NumberProperty : GenericProperty { [HasOne] - public NumberValue Value { get; set; } = null!; + public required NumberValue Value { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/StringProperty.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/StringProperty.cs index a145d17978..13f33b10f5 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/StringProperty.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/StringProperty.cs @@ -8,5 +8,5 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ResourceInheritance.Models; public sealed class StringProperty : GenericProperty { [HasOne] - public StringValue Value { get; set; } = null!; + public required StringValue Value { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/StringValue.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/StringValue.cs index fc620f7bd2..e620d71f1b 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/StringValue.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ResourceInheritance/Models/StringValue.cs @@ -9,5 +9,5 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ResourceInheritance.Models; public sealed class StringValue : Identifiable { [Attr] - public string Content { get; set; } = null!; + public required string Content { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/RestrictedControllers/Pillow.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/RestrictedControllers/Pillow.cs index 221555555f..bd78207bb5 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/RestrictedControllers/Pillow.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/RestrictedControllers/Pillow.cs @@ -9,5 +9,5 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.RestrictedControllers; public sealed class Pillow : Identifiable { [Attr] - public string Color { get; set; } = null!; + public required string Color { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Serialization/Address.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Serialization/Address.cs index 97017706e0..45c9763762 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/Serialization/Address.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Serialization/Address.cs @@ -5,8 +5,8 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.Serialization; [UsedImplicitly(ImplicitUseTargetFlags.Members)] public sealed class Address { - public string Street { get; set; } = null!; + public required string Street { get; set; } public string? ZipCode { get; set; } - public string City { get; set; } = null!; - public string Country { get; set; } = null!; + public required string City { get; set; } + public required string Country { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Serialization/Meeting.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Serialization/Meeting.cs index f7599f6f01..0880d84e10 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/Serialization/Meeting.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Serialization/Meeting.cs @@ -12,7 +12,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.Serialization; public sealed class Meeting : Identifiable { [Attr] - public string Title { get; set; } = null!; + public required string Title { get; set; } [Attr] public DateTimeOffset StartTime { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Serialization/MeetingAttendee.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Serialization/MeetingAttendee.cs index 118e0c9df5..1351ed4ef3 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/Serialization/MeetingAttendee.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Serialization/MeetingAttendee.cs @@ -9,10 +9,10 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.Serialization; public sealed class MeetingAttendee : Identifiable { [Attr] - public string DisplayName { get; set; } = null!; + public required string DisplayName { get; set; } [Attr] - public Address HomeAddress { get; set; } = null!; + public required Address HomeAddress { get; set; } [HasOne] public Meeting? Meeting { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/SoftDeletion/Company.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/SoftDeletion/Company.cs index d1ea71a8d8..03edc14321 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/SoftDeletion/Company.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/SoftDeletion/Company.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.SoftDeletion; public sealed class Company : Identifiable, ISoftDeletable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } public DateTimeOffset? SoftDeletedAt { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/SoftDeletion/Department.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/SoftDeletion/Department.cs index f006ff015d..1ab79ccdde 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/SoftDeletion/Department.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/SoftDeletion/Department.cs @@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.SoftDeletion; public sealed class Department : Identifiable, ISoftDeletable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } public DateTimeOffset? SoftDeletedAt { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ZeroKeys/Game.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ZeroKeys/Game.cs index a983c66d7b..9a7af8d98c 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ZeroKeys/Game.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ZeroKeys/Game.cs @@ -11,7 +11,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ZeroKeys; public sealed class Game : Identifiable { [Attr] - public string Title { get; set; } = null!; + public required string Title { get; set; } [Attr] [NotMapped] diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ZeroKeys/Map.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ZeroKeys/Map.cs index c8226a4009..25b7253fb8 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ZeroKeys/Map.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ZeroKeys/Map.cs @@ -10,7 +10,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ZeroKeys; public sealed class Map : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasOne] public Game? Game { get; set; } diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ZeroKeys/Player.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ZeroKeys/Player.cs index 52f52d112c..ea6a2b6cf6 100644 --- a/test/JsonApiDotNetCoreTests/IntegrationTests/ZeroKeys/Player.cs +++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ZeroKeys/Player.cs @@ -10,7 +10,7 @@ namespace JsonApiDotNetCoreTests.IntegrationTests.ZeroKeys; public sealed class Player : Identifiable { [Attr] - public string EmailAddress { get; set; } = null!; + public required string EmailAddress { get; set; } [HasOne] public Game? ActiveGame { get; set; } diff --git a/test/JsonApiDotNetCoreTests/UnitTests/FieldChains/FieldChainPatternInheritanceMatchTests.cs b/test/JsonApiDotNetCoreTests/UnitTests/FieldChains/FieldChainPatternInheritanceMatchTests.cs index f5cd78f6ff..915a742bd2 100644 --- a/test/JsonApiDotNetCoreTests/UnitTests/FieldChains/FieldChainPatternInheritanceMatchTests.cs +++ b/test/JsonApiDotNetCoreTests/UnitTests/FieldChains/FieldChainPatternInheritanceMatchTests.cs @@ -173,7 +173,7 @@ private abstract class Base : Identifiable public string? Value { get; set; } [HasOne] - public Base SingleItem { get; set; } = null!; + public required Base SingleItem { get; set; } [HasMany] public ISet SetOfItems { get; set; } = new HashSet(); diff --git a/test/JsonApiDotNetCoreTests/UnitTests/ModelStateValidation/ModelStateValidationTests.cs b/test/JsonApiDotNetCoreTests/UnitTests/ModelStateValidation/ModelStateValidationTests.cs index 17a62b3de3..d494eaa86f 100644 --- a/test/JsonApiDotNetCoreTests/UnitTests/ModelStateValidation/ModelStateValidationTests.cs +++ b/test/JsonApiDotNetCoreTests/UnitTests/ModelStateValidation/ModelStateValidationTests.cs @@ -118,13 +118,13 @@ private sealed class Parent : Identifiable public ComplexObject? ComplexObject { get; set; } [Attr(PublicName = "publicNameOfComplexList")] - public IList ComplexList { get; set; } = null!; + public required IList ComplexList { get; set; } [HasOne(PublicName = "publicNameOfPrimaryChild")] public Child? PrimaryChild { get; set; } [HasMany(PublicName = "publicNameOfChildren")] - public ISet Children { get; set; } = null!; + public required ISet Children { get; set; } } [UsedImplicitly(ImplicitUseTargetFlags.Members)] @@ -149,6 +149,6 @@ private sealed class ComplexObject public ComplexObject? ParentObject { get; set; } [JsonPropertyName("jsonElements")] - public IList Elements { get; set; } = null!; + public required IList Elements { get; set; } } } diff --git a/test/JsonApiDotNetCoreTests/UnitTests/ResourceDefinitions/CreateSortExpressionFromLambdaTests.cs b/test/JsonApiDotNetCoreTests/UnitTests/ResourceDefinitions/CreateSortExpressionFromLambdaTests.cs index dc59dbe907..fae2e9addd 100644 --- a/test/JsonApiDotNetCoreTests/UnitTests/ResourceDefinitions/CreateSortExpressionFromLambdaTests.cs +++ b/test/JsonApiDotNetCoreTests/UnitTests/ResourceDefinitions/CreateSortExpressionFromLambdaTests.cs @@ -358,10 +358,10 @@ public SortExpression GetSortExpressionFromLambda(PropertySortOrder sortOrder) private abstract class FileSystemEntry : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasOne] - public FileSystemEntry Parent { get; set; } = null!; + public required FileSystemEntry Parent { get; set; } [HasMany] public List Children { get; set; } = []; @@ -381,7 +381,7 @@ private sealed class DirectoryEntry : FileSystemEntry private sealed class FileEntry : FileSystemEntry { [Attr] - public string Content { get; set; } = null!; + public required string Content { get; set; } [Attr] public ulong Length { get; set; } diff --git a/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Article.cs b/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Article.cs index dfb556bab3..236651abaf 100644 --- a/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Article.cs +++ b/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Article.cs @@ -8,11 +8,11 @@ namespace JsonApiDotNetCoreTests.UnitTests.Serialization.Response.Models; public sealed class Article : Identifiable { [Attr] - public string Title { get; set; } = null!; + public required string Title { get; set; } [HasOne] public Person? Reviewer { get; set; } [HasOne] - public Person Author { get; set; } = null!; + public required Person Author { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Blog.cs b/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Blog.cs index 55d75af2fa..8096676d4b 100644 --- a/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Blog.cs +++ b/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Blog.cs @@ -8,11 +8,11 @@ namespace JsonApiDotNetCoreTests.UnitTests.Serialization.Response.Models; public sealed class Blog : Identifiable { [Attr] - public string Title { get; set; } = null!; + public required string Title { get; set; } [HasOne] - public Person Reviewer { get; set; } = null!; + public required Person Reviewer { get; set; } [HasOne] - public Person Author { get; set; } = null!; + public required Person Author { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Food.cs b/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Food.cs index 3a06c037d7..1f966a99e8 100644 --- a/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Food.cs +++ b/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Food.cs @@ -8,5 +8,5 @@ namespace JsonApiDotNetCoreTests.UnitTests.Serialization.Response.Models; public sealed class Food : Identifiable { [Attr] - public string Dish { get; set; } = null!; + public required string Dish { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Person.cs b/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Person.cs index a5b86ed950..7d8fd5eb0f 100644 --- a/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Person.cs +++ b/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Person.cs @@ -8,14 +8,14 @@ namespace JsonApiDotNetCoreTests.UnitTests.Serialization.Response.Models; public sealed class Person : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasMany] public ISet Blogs { get; set; } = new HashSet(); [HasOne] - public Food FavoriteFood { get; set; } = null!; + public required Food FavoriteFood { get; set; } [HasOne] - public Song FavoriteSong { get; set; } = null!; + public required Song FavoriteSong { get; set; } } diff --git a/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Song.cs b/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Song.cs index b9822f95a0..ab1e9e6c81 100644 --- a/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Song.cs +++ b/test/JsonApiDotNetCoreTests/UnitTests/Serialization/Response/Models/Song.cs @@ -8,5 +8,5 @@ namespace JsonApiDotNetCoreTests.UnitTests.Serialization.Response.Models; public sealed class Song : Identifiable { [Attr] - public string Title { get; set; } = null!; + public required string Title { get; set; } } diff --git a/test/OpenApiTests/AtomicOperations/Course.cs b/test/OpenApiTests/AtomicOperations/Course.cs index de193c6893..9d5c6deea8 100644 --- a/test/OpenApiTests/AtomicOperations/Course.cs +++ b/test/OpenApiTests/AtomicOperations/Course.cs @@ -12,7 +12,7 @@ namespace OpenApiTests.AtomicOperations; public sealed class Course : Identifiable { [Attr] - public string Subject { get; set; } = null!; + public required string Subject { get; set; } [Attr] public string? Description { get; set; } diff --git a/test/OpenApiTests/AtomicOperations/Enrollment.cs b/test/OpenApiTests/AtomicOperations/Enrollment.cs index c89cf2537c..977b2d56f9 100644 --- a/test/OpenApiTests/AtomicOperations/Enrollment.cs +++ b/test/OpenApiTests/AtomicOperations/Enrollment.cs @@ -22,8 +22,8 @@ public sealed class Enrollment(OperationsDbContext dbContext) : Identifiable GraduatedAt != null && GraduatedAt <= Today; [HasOne] - public Student Student { get; set; } = null!; + public required Student Student { get; set; } [HasOne] - public Course Course { get; set; } = null!; + public required Course Course { get; set; } } diff --git a/test/OpenApiTests/AtomicOperations/OperationsFakers.cs b/test/OpenApiTests/AtomicOperations/OperationsFakers.cs index c77e045faa..4f682ec51b 100644 --- a/test/OpenApiTests/AtomicOperations/OperationsFakers.cs +++ b/test/OpenApiTests/AtomicOperations/OperationsFakers.cs @@ -13,8 +13,11 @@ public sealed class OperationsFakers { private readonly Lazy> _lazyCourseFaker = new(() => new Faker() .MakeDeterministic() - .RuleFor(course => course.Subject, faker => faker.Lorem.Word()) - .RuleFor(course => course.Description, faker => faker.Lorem.Sentence())); + .CustomInstantiator(faker => new Course + { + Subject = faker.Lorem.Word(), + Description = faker.Lorem.Sentence() + })); private readonly Lazy> _lazyTeacherFaker = new(() => new Faker() .MakeDeterministic() @@ -23,8 +26,11 @@ public sealed class OperationsFakers private readonly Lazy> _lazyStudentFaker = new(() => new Faker() .MakeDeterministic() - .RuleFor(student => student.Name, faker => faker.Person.FullName) - .RuleFor(student => student.EmailAddress, faker => faker.Person.Email)); + .CustomInstantiator(faker => new Student + { + Name = faker.Person.FullName, + EmailAddress = faker.Person.Email + })); private readonly Lazy> _lazyEnrollmentFaker; @@ -37,9 +43,17 @@ public OperationsFakers(IServiceProvider serviceProvider) { _lazyEnrollmentFaker = new Lazy>(() => new Faker() .MakeDeterministic() - .CustomInstantiator(_ => new Enrollment(ResolveDbContext(serviceProvider))) - .RuleFor(enrollment => enrollment.EnrolledAt, faker => faker.Date.PastDateOnly()) - .RuleFor(enrollment => enrollment.GraduatedAt, faker => faker.Date.RecentDateOnly())); + .CustomInstantiator(faker => + { + var dbContext = ResolveDbContext(serviceProvider); + return new Enrollment(dbContext) + { + Student = new Student { Name = faker.Name.FullName() }, + Course = new Course { Subject = faker.Commerce.Department() }, + EnrolledAt = faker.Date.PastDateOnly(), + GraduatedAt = faker.Date.RecentDateOnly() + }; + })); } private OperationsDbContext ResolveDbContext(IServiceProvider serviceProvider) diff --git a/test/OpenApiTests/AtomicOperations/Student.cs b/test/OpenApiTests/AtomicOperations/Student.cs index 465fa52bc0..613919a432 100644 --- a/test/OpenApiTests/AtomicOperations/Student.cs +++ b/test/OpenApiTests/AtomicOperations/Student.cs @@ -10,7 +10,7 @@ namespace OpenApiTests.AtomicOperations; public sealed class Student : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] public string? EmailAddress { get; set; } diff --git a/test/OpenApiTests/AtomicOperations/Teacher.cs b/test/OpenApiTests/AtomicOperations/Teacher.cs index 86ff5bb4d4..c7995a287d 100644 --- a/test/OpenApiTests/AtomicOperations/Teacher.cs +++ b/test/OpenApiTests/AtomicOperations/Teacher.cs @@ -9,7 +9,7 @@ namespace OpenApiTests.AtomicOperations; public sealed class Teacher : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] public string? EmailAddress { get; set; } diff --git a/test/OpenApiTests/ClientIdGenerationModes/Game.cs b/test/OpenApiTests/ClientIdGenerationModes/Game.cs index c4880054c1..243b2be6e8 100644 --- a/test/OpenApiTests/ClientIdGenerationModes/Game.cs +++ b/test/OpenApiTests/ClientIdGenerationModes/Game.cs @@ -12,7 +12,7 @@ namespace OpenApiTests.ClientIdGenerationModes; public sealed class Game : Identifiable { [Attr] - public string Title { get; set; } = null!; + public required string Title { get; set; } [Attr] public decimal PurchasePrice { get; set; } diff --git a/test/OpenApiTests/ClientIdGenerationModes/Player.cs b/test/OpenApiTests/ClientIdGenerationModes/Player.cs index e150af5756..d121039bf3 100644 --- a/test/OpenApiTests/ClientIdGenerationModes/Player.cs +++ b/test/OpenApiTests/ClientIdGenerationModes/Player.cs @@ -12,7 +12,7 @@ namespace OpenApiTests.ClientIdGenerationModes; public sealed class Player : Identifiable { [Attr] - public string UserName { get; set; } = null!; + public required string UserName { get; set; } [HasMany] public List OwnedGames { get; set; } = []; diff --git a/test/OpenApiTests/ClientIdGenerationModes/PlayerGroup.cs b/test/OpenApiTests/ClientIdGenerationModes/PlayerGroup.cs index 9f2547a61f..925f4a99ba 100644 --- a/test/OpenApiTests/ClientIdGenerationModes/PlayerGroup.cs +++ b/test/OpenApiTests/ClientIdGenerationModes/PlayerGroup.cs @@ -12,7 +12,7 @@ namespace OpenApiTests.ClientIdGenerationModes; public sealed class PlayerGroup : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasMany] public List Players { get; set; } = []; diff --git a/test/OpenApiTests/Documentation/Elevator.cs b/test/OpenApiTests/Documentation/Elevator.cs index c739454c55..dc7de07842 100644 --- a/test/OpenApiTests/Documentation/Elevator.cs +++ b/test/OpenApiTests/Documentation/Elevator.cs @@ -22,5 +22,5 @@ public sealed class Elevator : Identifiable /// The skyscraper this elevator exists in. /// [HasOne] - public Skyscraper ExistsIn { get; set; } = null!; + public required Skyscraper ExistsIn { get; set; } } diff --git a/test/OpenApiTests/Documentation/Space.cs b/test/OpenApiTests/Documentation/Space.cs index 196780dd34..61f3e663db 100644 --- a/test/OpenApiTests/Documentation/Space.cs +++ b/test/OpenApiTests/Documentation/Space.cs @@ -27,5 +27,5 @@ public sealed class Space : Identifiable /// The skyscraper this space exists in. /// [HasOne] - public Skyscraper ExistsIn { get; set; } = null!; + public required Skyscraper ExistsIn { get; set; } } diff --git a/test/OpenApiTests/Headers/Country.cs b/test/OpenApiTests/Headers/Country.cs index a0398c03bc..cc38c2c444 100644 --- a/test/OpenApiTests/Headers/Country.cs +++ b/test/OpenApiTests/Headers/Country.cs @@ -9,7 +9,7 @@ namespace OpenApiTests.Headers; public sealed class Country : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] public long Population { get; set; } diff --git a/test/OpenApiTests/Headers/Language.cs b/test/OpenApiTests/Headers/Language.cs index 3f2eae5ff3..cd43fa5f5d 100644 --- a/test/OpenApiTests/Headers/Language.cs +++ b/test/OpenApiTests/Headers/Language.cs @@ -9,8 +9,8 @@ namespace OpenApiTests.Headers; public sealed class Language : Identifiable { [Attr] - public string Code { get; set; } = null!; + public required string Code { get; set; } [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } } diff --git a/test/OpenApiTests/IdObfuscation/BankAccount.cs b/test/OpenApiTests/IdObfuscation/BankAccount.cs index 319b025856..9456c3351f 100644 --- a/test/OpenApiTests/IdObfuscation/BankAccount.cs +++ b/test/OpenApiTests/IdObfuscation/BankAccount.cs @@ -9,7 +9,7 @@ namespace OpenApiTests.IdObfuscation; public sealed class BankAccount : ObfuscatedIdentifiable { [Attr] - public string Iban { get; set; } = null!; + public required string Iban { get; set; } [HasMany] public IList Cards { get; set; } = new List(); diff --git a/test/OpenApiTests/IdObfuscation/DebitCard.cs b/test/OpenApiTests/IdObfuscation/DebitCard.cs index 7bbdb26a8e..694478f39e 100644 --- a/test/OpenApiTests/IdObfuscation/DebitCard.cs +++ b/test/OpenApiTests/IdObfuscation/DebitCard.cs @@ -9,11 +9,11 @@ namespace OpenApiTests.IdObfuscation; public sealed class DebitCard : ObfuscatedIdentifiable { [Attr] - public string OwnerName { get; set; } = null!; + public required string OwnerName { get; set; } [Attr] public short PinCode { get; set; } [HasOne] - public BankAccount Account { get; set; } = null!; + public required BankAccount Account { get; set; } } diff --git a/test/OpenApiTests/LegacyOpenApi/Airplane.cs b/test/OpenApiTests/LegacyOpenApi/Airplane.cs index aa89d99f61..df270b1243 100644 --- a/test/OpenApiTests/LegacyOpenApi/Airplane.cs +++ b/test/OpenApiTests/LegacyOpenApi/Airplane.cs @@ -11,7 +11,7 @@ public sealed class Airplane : Identifiable { [Attr(Capabilities = AttrCapabilities.AllowView | AttrCapabilities.AllowCreate | AttrCapabilities.AllowChange)] [MaxLength(255)] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr(Capabilities = AttrCapabilities.AllowView | AttrCapabilities.AllowCreate | AttrCapabilities.AllowChange)] [MaxLength(16)] diff --git a/test/OpenApiTests/LegacyOpenApi/Flight.cs b/test/OpenApiTests/LegacyOpenApi/Flight.cs index 5baa315523..36e0a747cf 100644 --- a/test/OpenApiTests/LegacyOpenApi/Flight.cs +++ b/test/OpenApiTests/LegacyOpenApi/Flight.cs @@ -12,7 +12,7 @@ public sealed class Flight : Identifiable { [Attr(Capabilities = AttrCapabilities.AllowView | AttrCapabilities.AllowChange)] [MaxLength(40)] - public string FinalDestination { get; set; } = null!; + public required string FinalDestination { get; set; } [Attr(Capabilities = AttrCapabilities.AllowView | AttrCapabilities.AllowChange)] [MaxLength(2000)] @@ -31,7 +31,7 @@ public sealed class Flight : Identifiable public ISet CabinCrewMembers { get; set; } = new HashSet(); [HasOne] - public FlightAttendant Purser { get; set; } = null!; + public required FlightAttendant Purser { get; set; } [HasOne] public FlightAttendant? BackupPurser { get; set; } diff --git a/test/OpenApiTests/LegacyOpenApi/FlightAttendant.cs b/test/OpenApiTests/LegacyOpenApi/FlightAttendant.cs index 6eb6872072..497c5034a0 100644 --- a/test/OpenApiTests/LegacyOpenApi/FlightAttendant.cs +++ b/test/OpenApiTests/LegacyOpenApi/FlightAttendant.cs @@ -26,7 +26,7 @@ public sealed class FlightAttendant : Identifiable [Attr(Capabilities = AttrCapabilities.AllowView | AttrCapabilities.AllowCreate)] [Url] - public string ProfileImageUrl { get; set; } = null!; + public required string ProfileImageUrl { get; set; } [Attr] public long DistanceTraveledInKilometers { get; set; } diff --git a/test/OpenApiTests/LegacyOpenApi/Passenger.cs b/test/OpenApiTests/LegacyOpenApi/Passenger.cs index c939562447..f345f10e0d 100644 --- a/test/OpenApiTests/LegacyOpenApi/Passenger.cs +++ b/test/OpenApiTests/LegacyOpenApi/Passenger.cs @@ -11,7 +11,7 @@ public sealed class Passenger : Identifiable { [Attr(PublicName = "document-number", Capabilities = AttrCapabilities.AllowCreate | AttrCapabilities.AllowChange)] [MaxLength(9)] - public string PassportNumber { get; set; } = null!; + public required string PassportNumber { get; set; } [Attr] public string? FullName { get; set; } diff --git a/test/OpenApiTests/Links/Accommodation.cs b/test/OpenApiTests/Links/Accommodation.cs index 5a793da701..42e4ecb6b9 100644 --- a/test/OpenApiTests/Links/Accommodation.cs +++ b/test/OpenApiTests/Links/Accommodation.cs @@ -9,5 +9,5 @@ namespace OpenApiTests.Links; public sealed class Accommodation : Identifiable { [Attr] - public string Address { get; set; } = null!; + public required string Address { get; set; } } diff --git a/test/OpenApiTests/Links/Excursion.cs b/test/OpenApiTests/Links/Excursion.cs index 92143cab73..29add4bc5d 100644 --- a/test/OpenApiTests/Links/Excursion.cs +++ b/test/OpenApiTests/Links/Excursion.cs @@ -14,5 +14,5 @@ public sealed class Excursion : Identifiable public DateTime? OccursAt { get; set; } [Attr] - public string Description { get; set; } = null!; + public required string Description { get; set; } } diff --git a/test/OpenApiTests/Links/Vacation.cs b/test/OpenApiTests/Links/Vacation.cs index df592a4423..130b9eb5da 100644 --- a/test/OpenApiTests/Links/Vacation.cs +++ b/test/OpenApiTests/Links/Vacation.cs @@ -18,7 +18,7 @@ public sealed class Vacation : Identifiable public DateTime? EndsAt { get; set; } [HasOne] - public Accommodation Accommodation { get; set; } = null!; + public required Accommodation Accommodation { get; set; } [HasOne] public Transport? Transport { get; set; } diff --git a/test/OpenApiTests/ModelStateValidation/SocialMediaAccount.cs b/test/OpenApiTests/ModelStateValidation/SocialMediaAccount.cs index 28fbd7148d..ed167a1a47 100644 --- a/test/OpenApiTests/ModelStateValidation/SocialMediaAccount.cs +++ b/test/OpenApiTests/ModelStateValidation/SocialMediaAccount.cs @@ -25,7 +25,7 @@ public sealed class SocialMediaAccount : Identifiable [Attr] [Required(AllowEmptyStrings = true)] - public string LastName { get; set; } = null!; + public required string LastName { get; set; } [Attr] [StringLength(18, MinimumLength = 3)] diff --git a/test/OpenApiTests/NamingConventions/StaffMember.cs b/test/OpenApiTests/NamingConventions/StaffMember.cs index beeeb3f997..ff5c3bf9a3 100644 --- a/test/OpenApiTests/NamingConventions/StaffMember.cs +++ b/test/OpenApiTests/NamingConventions/StaffMember.cs @@ -9,7 +9,7 @@ namespace OpenApiTests.NamingConventions; public sealed class StaffMember : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] public int Age { get; set; } diff --git a/test/OpenApiTests/NamingConventions/Supermarket.cs b/test/OpenApiTests/NamingConventions/Supermarket.cs index ea7a2cb8c4..39efa3f8d8 100644 --- a/test/OpenApiTests/NamingConventions/Supermarket.cs +++ b/test/OpenApiTests/NamingConventions/Supermarket.cs @@ -9,13 +9,13 @@ namespace OpenApiTests.NamingConventions; public sealed class Supermarket : Identifiable { [Attr] - public string NameOfCity { get; set; } = null!; + public required string NameOfCity { get; set; } [Attr] public SupermarketType Kind { get; set; } [HasOne] - public StaffMember StoreManager { get; set; } = null!; + public required StaffMember StoreManager { get; set; } [HasOne] public StaffMember? BackupStoreManager { get; set; } diff --git a/test/OpenApiTests/QueryStrings/NameValuePair.cs b/test/OpenApiTests/QueryStrings/NameValuePair.cs index ab7fd2f61e..a927920a13 100644 --- a/test/OpenApiTests/QueryStrings/NameValuePair.cs +++ b/test/OpenApiTests/QueryStrings/NameValuePair.cs @@ -9,11 +9,11 @@ namespace OpenApiTests.QueryStrings; public sealed class NameValuePair : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] public string? Value { get; set; } [HasOne] - public Node Owner { get; set; } = null!; + public required Node Owner { get; set; } } diff --git a/test/OpenApiTests/QueryStrings/Node.cs b/test/OpenApiTests/QueryStrings/Node.cs index e9da915295..9ea72c7b9d 100644 --- a/test/OpenApiTests/QueryStrings/Node.cs +++ b/test/OpenApiTests/QueryStrings/Node.cs @@ -9,7 +9,7 @@ namespace OpenApiTests.QueryStrings; public sealed class Node : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [Attr] public string? Comment { get; set; } diff --git a/test/OpenApiTests/ResourceFieldValidation/NullableReferenceTypesOn/NrtOnResource.cs b/test/OpenApiTests/ResourceFieldValidation/NullableReferenceTypesOn/NrtOnResource.cs index 69056d716a..4022d6bdd1 100644 --- a/test/OpenApiTests/ResourceFieldValidation/NullableReferenceTypesOn/NrtOnResource.cs +++ b/test/OpenApiTests/ResourceFieldValidation/NullableReferenceTypesOn/NrtOnResource.cs @@ -10,11 +10,11 @@ namespace OpenApiTests.ResourceFieldValidation.NullableReferenceTypesOn; public sealed class NrtOnResource : Identifiable { [Attr] - public string NonNullableReferenceType { get; set; } = null!; + public required string NonNullableReferenceType { get; set; } [Attr] [Required] - public string RequiredNonNullableReferenceType { get; set; } = null!; + public required string RequiredNonNullableReferenceType { get; set; } [Attr] public string? NullableReferenceType { get; set; } @@ -38,11 +38,11 @@ public sealed class NrtOnResource : Identifiable public int? RequiredNullableValueType { get; set; } [HasOne] - public NrtOnEmpty NonNullableToOne { get; set; } = null!; + public required NrtOnEmpty NonNullableToOne { get; set; } [Required] [HasOne] - public NrtOnEmpty RequiredNonNullableToOne { get; set; } = null!; + public required NrtOnEmpty RequiredNonNullableToOne { get; set; } [HasOne] public NrtOnEmpty? NullableToOne { get; set; } diff --git a/test/OpenApiTests/ResourceInheritance/Models/District.cs b/test/OpenApiTests/ResourceInheritance/Models/District.cs index 3ef752e386..d826c84cc6 100644 --- a/test/OpenApiTests/ResourceInheritance/Models/District.cs +++ b/test/OpenApiTests/ResourceInheritance/Models/District.cs @@ -9,7 +9,7 @@ namespace OpenApiTests.ResourceInheritance.Models; public sealed class District : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } [HasMany] public ISet Buildings { get; set; } = new HashSet(); diff --git a/test/OpenApiTests/ResourceInheritance/Models/StaffMember.cs b/test/OpenApiTests/ResourceInheritance/Models/StaffMember.cs index 0baa95db7e..1015891b43 100644 --- a/test/OpenApiTests/ResourceInheritance/Models/StaffMember.cs +++ b/test/OpenApiTests/ResourceInheritance/Models/StaffMember.cs @@ -9,5 +9,5 @@ namespace OpenApiTests.ResourceInheritance.Models; public sealed class StaffMember : Identifiable { [Attr] - public string Name { get; set; } = null!; + public required string Name { get; set; } } From b8c5accd794092d96b26ecb388335062bd595fe3 Mon Sep 17 00:00:00 2001 From: niteshsinghal85 Date: Fri, 26 Dec 2025 21:45:57 +0530 Subject: [PATCH 06/10] Refactor code to remove nullable types and ensure required properties are accessed directly --- .../PeopleMessageFormatter.cs | 10 +++++----- src/Examples/OpenApiNSwagClientExample/Worker.cs | 4 ++-- .../AtomicOperations/OperationsFakers.cs | 13 ++++++++++--- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/Examples/OpenApiNSwagClientExample/PeopleMessageFormatter.cs b/src/Examples/OpenApiNSwagClientExample/PeopleMessageFormatter.cs index 0a870d7682..a69177ae9b 100644 --- a/src/Examples/OpenApiNSwagClientExample/PeopleMessageFormatter.cs +++ b/src/Examples/OpenApiNSwagClientExample/PeopleMessageFormatter.cs @@ -36,9 +36,9 @@ private static string WritePeople(ApiResponse private static void WritePerson(DataInPersonResponse person, ICollection includes, StringBuilder builder) { - ICollection assignedTodoItems = person.Relationships?.AssignedTodoItems?.Data ?? []; + ICollection assignedTodoItems = person.Relationships.AssignedTodoItems?.Data ?? []; - builder.AppendLine($" Person {person.Id}: {person.Attributes?.DisplayName} with {assignedTodoItems.Count} assigned todo-items:"); + builder.AppendLine($" Person {person.Id}: {person.Attributes.DisplayName} with {assignedTodoItems.Count} assigned todo-items:"); WriteRelatedTodoItems(assignedTodoItems, includes, builder); } @@ -48,9 +48,9 @@ private static void WriteRelatedTodoItems(IEnumerable().Single(include => include.Id == todoItemIdentifier.Id); - ICollection tags = includedTodoItem.Relationships?.Tags?.Data ?? []; + ICollection tags = includedTodoItem.Relationships.Tags?.Data ?? []; - builder.AppendLine($" TodoItem {includedTodoItem.Id}: {includedTodoItem.Attributes?.Description} with {tags.Count} tags:"); + builder.AppendLine($" TodoItem {includedTodoItem.Id}: {includedTodoItem.Attributes.Description} with {tags.Count} tags:"); WriteRelatedTags(tags, includes, builder); } } @@ -60,7 +60,7 @@ private static void WriteRelatedTags(IEnumerable tagIde foreach (TagIdentifierInResponse tagIdentifier in tagIdentifiers) { DataInTagResponse includedTag = includes.OfType().Single(include => include.Id == tagIdentifier.Id); - builder.AppendLine($" Tag {includedTag.Id}: {includedTag.Attributes?.Name}"); + builder.AppendLine($" Tag {includedTag.Id}: {includedTag.Attributes.Name}"); } } } diff --git a/src/Examples/OpenApiNSwagClientExample/Worker.cs b/src/Examples/OpenApiNSwagClientExample/Worker.cs index 7727c88a15..a79a70fe29 100644 --- a/src/Examples/OpenApiNSwagClientExample/Worker.cs +++ b/src/Examples/OpenApiNSwagClientExample/Worker.cs @@ -165,7 +165,7 @@ private async Task SendOperationsRequestAsync(CancellationToken cancellationToke ApiResponse operationsResponse = await _apiClient.PostOperationsAsync(operationsRequest, cancellationToken); - var newTodoItem = (DataInTodoItemResponse)operationsResponse.Result.Atomic_results.ElementAt(3).Data!; - Console.WriteLine($"Created todo-item with ID {newTodoItem.Id}: {newTodoItem.Attributes!.Description}."); + var newTodoItem = (DataInTodoItemResponse)operationsResponse.Result.Atomic_results.ElementAt(3).Data; + Console.WriteLine($"Created todo-item with ID {newTodoItem.Id}: {newTodoItem.Attributes.Description}."); } } diff --git a/test/OpenApiTests/AtomicOperations/OperationsFakers.cs b/test/OpenApiTests/AtomicOperations/OperationsFakers.cs index 4f682ec51b..8f08e42d08 100644 --- a/test/OpenApiTests/AtomicOperations/OperationsFakers.cs +++ b/test/OpenApiTests/AtomicOperations/OperationsFakers.cs @@ -45,11 +45,18 @@ public OperationsFakers(IServiceProvider serviceProvider) .MakeDeterministic() .CustomInstantiator(faker => { - var dbContext = ResolveDbContext(serviceProvider); + OperationsDbContext dbContext = ResolveDbContext(serviceProvider); + return new Enrollment(dbContext) { - Student = new Student { Name = faker.Name.FullName() }, - Course = new Course { Subject = faker.Commerce.Department() }, + Student = new Student + { + Name = faker.Name.FullName() + }, + Course = new Course + { + Subject = faker.Commerce.Department() + }, EnrolledAt = faker.Date.PastDateOnly(), GraduatedAt = faker.Date.RecentDateOnly() }; From 978fb4695a823253c03cef3cacebd9a895453bb4 Mon Sep 17 00:00:00 2001 From: niteshsinghal85 Date: Fri, 26 Dec 2025 22:02:00 +0530 Subject: [PATCH 07/10] Refactor string interpolation to handle potential null values in PeopleMessageFormatter and Worker classes --- .../OpenApiNSwagClientExample/PeopleMessageFormatter.cs | 8 ++++---- src/Examples/OpenApiNSwagClientExample/Worker.cs | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Examples/OpenApiNSwagClientExample/PeopleMessageFormatter.cs b/src/Examples/OpenApiNSwagClientExample/PeopleMessageFormatter.cs index a69177ae9b..d2edb71d7f 100644 --- a/src/Examples/OpenApiNSwagClientExample/PeopleMessageFormatter.cs +++ b/src/Examples/OpenApiNSwagClientExample/PeopleMessageFormatter.cs @@ -38,7 +38,7 @@ private static void WritePerson(DataInPersonResponse person, ICollection assignedTodoItems = person.Relationships.AssignedTodoItems?.Data ?? []; - builder.AppendLine($" Person {person.Id}: {person.Attributes.DisplayName} with {assignedTodoItems.Count} assigned todo-items:"); + builder.AppendLine($" Person {person.Id}: {person.Attributes.DisplayName ?? string.Empty} with {assignedTodoItems.Count} assigned todo-items:"); WriteRelatedTodoItems(assignedTodoItems, includes, builder); } @@ -48,9 +48,9 @@ private static void WriteRelatedTodoItems(IEnumerable().Single(include => include.Id == todoItemIdentifier.Id); - ICollection tags = includedTodoItem.Relationships.Tags?.Data ?? []; + ICollection tags = includedTodoItem.Relationships?.Tags?.Data ?? []; - builder.AppendLine($" TodoItem {includedTodoItem.Id}: {includedTodoItem.Attributes.Description} with {tags.Count} tags:"); + builder.AppendLine($" TodoItem {includedTodoItem.Id}: {includedTodoItem.Attributes.Description ?? string.Empty} with {tags.Count} tags:"); WriteRelatedTags(tags, includes, builder); } } @@ -60,7 +60,7 @@ private static void WriteRelatedTags(IEnumerable tagIde foreach (TagIdentifierInResponse tagIdentifier in tagIdentifiers) { DataInTagResponse includedTag = includes.OfType().Single(include => include.Id == tagIdentifier.Id); - builder.AppendLine($" Tag {includedTag.Id}: {includedTag.Attributes.Name}"); + builder.AppendLine($" Tag {includedTag.Id}: {includedTag.Attributes?.Name ?? string.Empty}"); } } } diff --git a/src/Examples/OpenApiNSwagClientExample/Worker.cs b/src/Examples/OpenApiNSwagClientExample/Worker.cs index a79a70fe29..c013f502f1 100644 --- a/src/Examples/OpenApiNSwagClientExample/Worker.cs +++ b/src/Examples/OpenApiNSwagClientExample/Worker.cs @@ -166,6 +166,6 @@ private async Task SendOperationsRequestAsync(CancellationToken cancellationToke ApiResponse operationsResponse = await _apiClient.PostOperationsAsync(operationsRequest, cancellationToken); var newTodoItem = (DataInTodoItemResponse)operationsResponse.Result.Atomic_results.ElementAt(3).Data; - Console.WriteLine($"Created todo-item with ID {newTodoItem.Id}: {newTodoItem.Attributes.Description}."); + Console.WriteLine($"Created todo-item with ID {newTodoItem.Id}: {newTodoItem.Attributes?.Description ?? string.Empty}."); } } From cb8ceab6dcfefba54fe5f6ddbf5d68d17b93db0b Mon Sep 17 00:00:00 2001 From: niteshsinghal85 Date: Fri, 26 Dec 2025 22:27:27 +0530 Subject: [PATCH 08/10] Refactor PeopleMessageFormatter and Worker to handle potential null values and ensure required properties are accessed directly --- .../OpenApiNSwagClientExample/PeopleMessageFormatter.cs | 6 +++--- src/Examples/OpenApiNSwagClientExample/Worker.cs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Examples/OpenApiNSwagClientExample/PeopleMessageFormatter.cs b/src/Examples/OpenApiNSwagClientExample/PeopleMessageFormatter.cs index d2edb71d7f..285f5d4054 100644 --- a/src/Examples/OpenApiNSwagClientExample/PeopleMessageFormatter.cs +++ b/src/Examples/OpenApiNSwagClientExample/PeopleMessageFormatter.cs @@ -36,9 +36,9 @@ private static string WritePeople(ApiResponse private static void WritePerson(DataInPersonResponse person, ICollection includes, StringBuilder builder) { - ICollection assignedTodoItems = person.Relationships.AssignedTodoItems?.Data ?? []; + ICollection assignedTodoItems = person.Relationships?.AssignedTodoItems?.Data ?? []; - builder.AppendLine($" Person {person.Id}: {person.Attributes.DisplayName ?? string.Empty} with {assignedTodoItems.Count} assigned todo-items:"); + builder.AppendLine($" Person {person.Id}: {person.Attributes?.DisplayName ?? string.Empty} with {assignedTodoItems.Count} assigned todo-items:"); WriteRelatedTodoItems(assignedTodoItems, includes, builder); } @@ -50,7 +50,7 @@ private static void WriteRelatedTodoItems(IEnumerable().Single(include => include.Id == todoItemIdentifier.Id); ICollection tags = includedTodoItem.Relationships?.Tags?.Data ?? []; - builder.AppendLine($" TodoItem {includedTodoItem.Id}: {includedTodoItem.Attributes.Description ?? string.Empty} with {tags.Count} tags:"); + builder.AppendLine($" TodoItem {includedTodoItem.Id}: {includedTodoItem.Attributes?.Description ?? string.Empty} with {tags.Count} tags:"); WriteRelatedTags(tags, includes, builder); } } diff --git a/src/Examples/OpenApiNSwagClientExample/Worker.cs b/src/Examples/OpenApiNSwagClientExample/Worker.cs index c013f502f1..9712fed6cd 100644 --- a/src/Examples/OpenApiNSwagClientExample/Worker.cs +++ b/src/Examples/OpenApiNSwagClientExample/Worker.cs @@ -165,7 +165,7 @@ private async Task SendOperationsRequestAsync(CancellationToken cancellationToke ApiResponse operationsResponse = await _apiClient.PostOperationsAsync(operationsRequest, cancellationToken); - var newTodoItem = (DataInTodoItemResponse)operationsResponse.Result.Atomic_results.ElementAt(3).Data; + var newTodoItem = (DataInTodoItemResponse)operationsResponse.Result.Atomic_results.ElementAt(3).Data!; Console.WriteLine($"Created todo-item with ID {newTodoItem.Id}: {newTodoItem.Attributes?.Description ?? string.Empty}."); } } From 8c9f9352a57a0630c58a427cdc19fd9105bb4a67 Mon Sep 17 00:00:00 2001 From: niteshsinghal85 Date: Sat, 27 Dec 2025 11:08:23 +0530 Subject: [PATCH 09/10] reverted to original code --- src/Examples/OpenApiNSwagClientExample/Worker.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Examples/OpenApiNSwagClientExample/Worker.cs b/src/Examples/OpenApiNSwagClientExample/Worker.cs index 9712fed6cd..7727c88a15 100644 --- a/src/Examples/OpenApiNSwagClientExample/Worker.cs +++ b/src/Examples/OpenApiNSwagClientExample/Worker.cs @@ -166,6 +166,6 @@ private async Task SendOperationsRequestAsync(CancellationToken cancellationToke ApiResponse operationsResponse = await _apiClient.PostOperationsAsync(operationsRequest, cancellationToken); var newTodoItem = (DataInTodoItemResponse)operationsResponse.Result.Atomic_results.ElementAt(3).Data!; - Console.WriteLine($"Created todo-item with ID {newTodoItem.Id}: {newTodoItem.Attributes?.Description ?? string.Empty}."); + Console.WriteLine($"Created todo-item with ID {newTodoItem.Id}: {newTodoItem.Attributes!.Description}."); } } From 785f3b868cde4c32d166c462dbfeffbbf0e692d8 Mon Sep 17 00:00:00 2001 From: niteshsinghal85 Date: Fri, 26 Dec 2025 16:55:35 +0530 Subject: [PATCH 10/10] Reverted changes in JsonApiObjects and PeopleMessageFormatter --- .../PeopleMessageFormatter.cs | 6 +++--- .../AtomicOperations/AddToRelationshipOperation.cs | 6 +++--- .../AtomicOperations/AtomicOperation.cs | 2 +- .../AtomicOperations/AtomicResult.cs | 4 ++-- .../AtomicOperations/CreateOperation.cs | 4 ++-- .../AtomicOperations/DeleteOperation.cs | 4 ++-- .../RemoveFromRelationshipOperation.cs | 6 +++--- .../AtomicOperations/UpdateOperation.cs | 6 +++--- .../UpdateToManyRelationshipOperation.cs | 6 +++--- .../UpdateToOneRelationshipOperation.cs | 4 ++-- .../Documents/CollectionResponseDocument.cs | 10 +++++----- .../Documents/CreateRequestDocument.cs | 4 ++-- .../Documents/ErrorResponseDocument.cs | 6 +++--- .../IdentifierCollectionResponseDocument.cs | 8 ++++---- .../Documents/IdentifierResponseDocument.cs | 8 ++++---- .../NullableIdentifierResponseDocument.cs | 6 +++--- .../Documents/NullableSecondaryResponseDocument.cs | 8 ++++---- .../Documents/OperationsRequestDocument.cs | 4 ++-- .../Documents/OperationsResponseDocument.cs | 8 ++++---- .../Documents/PrimaryResponseDocument.cs | 10 +++++----- .../Documents/SecondaryResponseDocument.cs | 10 +++++----- .../Documents/UpdateRequestDocument.cs | 4 ++-- .../JsonApiObjects/Jsonapi.cs | 8 ++++---- .../JsonApiObjects/Links/ErrorTopLevelLinks.cs | 4 ++-- .../JsonApiObjects/Links/RelationshipLinks.cs | 4 ++-- .../Links/ResourceCollectionTopLevelLinks.cs | 12 ++++++------ .../ResourceIdentifierCollectionTopLevelLinks.cs | 14 +++++++------- .../Links/ResourceIdentifierTopLevelLinks.cs | 6 +++--- .../JsonApiObjects/Links/ResourceLinks.cs | 2 +- .../JsonApiObjects/Links/ResourceTopLevelLinks.cs | 4 ++-- .../Relationships/NullableToOneInRequest.cs | 2 +- .../Relationships/NullableToOneInResponse.cs | 4 ++-- .../Relationships/ToManyInRequest.cs | 4 ++-- .../Relationships/ToManyInResponse.cs | 6 +++--- .../JsonApiObjects/Relationships/ToOneInRequest.cs | 4 ++-- .../Relationships/ToOneInResponse.cs | 6 +++--- .../ResourceObjects/DataInCreateRequest.cs | 8 ++++---- .../ResourceObjects/DataInResponse.cs | 8 ++++---- .../ResourceObjects/DataInUpdateRequest.cs | 8 ++++---- .../ResourceObjects/IdentifierInRequest.cs | 8 ++++---- .../ResourceObjects/IdentifierInResponse.cs | 6 +++--- .../ResourceObjects/RelationshipIdentifier.cs | 2 +- .../JsonApiObjects/ResourceObjects/ResourceData.cs | 4 ++-- 43 files changed, 129 insertions(+), 129 deletions(-) diff --git a/src/Examples/OpenApiNSwagClientExample/PeopleMessageFormatter.cs b/src/Examples/OpenApiNSwagClientExample/PeopleMessageFormatter.cs index 285f5d4054..0a870d7682 100644 --- a/src/Examples/OpenApiNSwagClientExample/PeopleMessageFormatter.cs +++ b/src/Examples/OpenApiNSwagClientExample/PeopleMessageFormatter.cs @@ -38,7 +38,7 @@ private static void WritePerson(DataInPersonResponse person, ICollection assignedTodoItems = person.Relationships?.AssignedTodoItems?.Data ?? []; - builder.AppendLine($" Person {person.Id}: {person.Attributes?.DisplayName ?? string.Empty} with {assignedTodoItems.Count} assigned todo-items:"); + builder.AppendLine($" Person {person.Id}: {person.Attributes?.DisplayName} with {assignedTodoItems.Count} assigned todo-items:"); WriteRelatedTodoItems(assignedTodoItems, includes, builder); } @@ -50,7 +50,7 @@ private static void WriteRelatedTodoItems(IEnumerable().Single(include => include.Id == todoItemIdentifier.Id); ICollection tags = includedTodoItem.Relationships?.Tags?.Data ?? []; - builder.AppendLine($" TodoItem {includedTodoItem.Id}: {includedTodoItem.Attributes?.Description ?? string.Empty} with {tags.Count} tags:"); + builder.AppendLine($" TodoItem {includedTodoItem.Id}: {includedTodoItem.Attributes?.Description} with {tags.Count} tags:"); WriteRelatedTags(tags, includes, builder); } } @@ -60,7 +60,7 @@ private static void WriteRelatedTags(IEnumerable tagIde foreach (TagIdentifierInResponse tagIdentifier in tagIdentifiers) { DataInTagResponse includedTag = includes.OfType().Single(include => include.Id == tagIdentifier.Id); - builder.AppendLine($" Tag {includedTag.Id}: {includedTag.Attributes?.Name ?? string.Empty}"); + builder.AppendLine($" Tag {includedTag.Id}: {includedTag.Attributes?.Name}"); } } } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AddToRelationshipOperation.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AddToRelationshipOperation.cs index c932e35f16..bf461fe41a 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AddToRelationshipOperation.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AddToRelationshipOperation.cs @@ -12,13 +12,13 @@ internal sealed class AddToRelationshipOperation : AtomicOperation { [Required] [JsonPropertyName("op")] - public required string Op { get; set; } + public string Op { get; set; } = null!; [Required] [JsonPropertyName("ref")] - public required object Ref { get; set; } + public object Ref { get; set; } = null!; [Required] [JsonPropertyName("data")] - public required ICollection> Data { get; set; } + public ICollection> Data { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AtomicOperation.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AtomicOperation.cs index 5ebdfa5244..6f0934008d 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AtomicOperation.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AtomicOperation.cs @@ -7,5 +7,5 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.AtomicOperations; internal abstract class AtomicOperation : IHasMeta { [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AtomicResult.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AtomicResult.cs index 5f0fdebee0..f4dec21cbf 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AtomicResult.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/AtomicResult.cs @@ -8,8 +8,8 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.AtomicOperations; internal sealed class AtomicResult : IHasMeta { [JsonPropertyName("data")] - public required ResourceInResponse Data { get; set; } + public ResourceInResponse Data { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/CreateOperation.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/CreateOperation.cs index 1b825bb398..266712e666 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/CreateOperation.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/CreateOperation.cs @@ -12,9 +12,9 @@ internal sealed class CreateOperation : AtomicOperation { [Required] [JsonPropertyName("op")] - public required string Op { get; set; } + public string Op { get; set; } = null!; [Required] [JsonPropertyName("data")] - public required DataInCreateRequest Data { get; set; } + public DataInCreateRequest Data { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/DeleteOperation.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/DeleteOperation.cs index e81a2e9571..838b4400dd 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/DeleteOperation.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/DeleteOperation.cs @@ -12,9 +12,9 @@ internal sealed class DeleteOperation : AtomicOperation { [Required] [JsonPropertyName("op")] - public required string Op { get; set; } + public string Op { get; set; } = null!; [Required] [JsonPropertyName("ref")] - public required IdentifierInRequest Ref { get; set; } + public IdentifierInRequest Ref { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/RemoveFromRelationshipOperation.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/RemoveFromRelationshipOperation.cs index 70a805fc0f..eafe36028e 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/RemoveFromRelationshipOperation.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/RemoveFromRelationshipOperation.cs @@ -12,13 +12,13 @@ internal sealed class RemoveFromRelationshipOperation : AtomicOperati { [Required] [JsonPropertyName("op")] - public required string Op { get; set; } + public string Op { get; set; } = null!; [Required] [JsonPropertyName("ref")] - public required object Ref { get; set; } + public object Ref { get; set; } = null!; [Required] [JsonPropertyName("data")] - public required ICollection> Data { get; set; } + public ICollection> Data { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateOperation.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateOperation.cs index 758838f8bd..cb576c3a4f 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateOperation.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateOperation.cs @@ -12,12 +12,12 @@ internal sealed class UpdateOperation : AtomicOperation { [Required] [JsonPropertyName("op")] - public required string Op { get; set; } + public string Op { get; set; } = null!; [JsonPropertyName("ref")] - public required IdentifierInRequest Ref { get; set; } + public IdentifierInRequest Ref { get; set; } = null!; [Required] [JsonPropertyName("data")] - public required DataInUpdateRequest Data { get; set; } + public DataInUpdateRequest Data { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateToManyRelationshipOperation.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateToManyRelationshipOperation.cs index 864ae52d83..2725b3dd9f 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateToManyRelationshipOperation.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateToManyRelationshipOperation.cs @@ -12,13 +12,13 @@ internal sealed class UpdateToManyRelationshipOperation : AtomicOpera { [Required] [JsonPropertyName("op")] - public required string Op { get; set; } + public string Op { get; set; } = null!; [Required] [JsonPropertyName("ref")] - public required object Ref { get; set; } + public object Ref { get; set; } = null!; [Required] [JsonPropertyName("data")] - public required ICollection> Data { get; set; } + public ICollection> Data { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateToOneRelationshipOperation.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateToOneRelationshipOperation.cs index e2015a1d17..71c6528605 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateToOneRelationshipOperation.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/AtomicOperations/UpdateToOneRelationshipOperation.cs @@ -12,11 +12,11 @@ internal sealed class UpdateToOneRelationshipOperation : AtomicOperat { [Required] [JsonPropertyName("op")] - public required string Op { get; set; } + public string Op { get; set; } = null!; [Required] [JsonPropertyName("ref")] - public required object Ref { get; set; } + public object Ref { get; set; } = null!; [Required] [JsonPropertyName("data")] diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/CollectionResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/CollectionResponseDocument.cs index b637cedfbe..bfb0131f07 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/CollectionResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/CollectionResponseDocument.cs @@ -12,19 +12,19 @@ internal sealed class CollectionResponseDocument : IHasMeta where TResource : IIdentifiable { [JsonPropertyName("jsonapi")] - public required Jsonapi Jsonapi { get; set; } + public Jsonapi Jsonapi { get; set; } = null!; [Required] [JsonPropertyName("links")] - public required ResourceCollectionTopLevelLinks Links { get; set; } + public ResourceCollectionTopLevelLinks Links { get; set; } = null!; [Required] [JsonPropertyName("data")] - public required ICollection> Data { get; set; } + public ICollection> Data { get; set; } = null!; [JsonPropertyName("included")] - public required IList Included { get; set; } + public IList Included { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/CreateRequestDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/CreateRequestDocument.cs index 53e5611cef..388d659398 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/CreateRequestDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/CreateRequestDocument.cs @@ -12,8 +12,8 @@ internal sealed class CreateRequestDocument : IHasMeta { [Required] [JsonPropertyName("data")] - public required DataInCreateRequest Data { get; set; } + public DataInCreateRequest Data { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/ErrorResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/ErrorResponseDocument.cs index cf61ed4db1..750c83ef74 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/ErrorResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/ErrorResponseDocument.cs @@ -10,16 +10,16 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Documents; internal sealed class ErrorResponseDocument : IHasMeta { [JsonPropertyName("jsonapi")] - public required Jsonapi Jsonapi { get; set; } + public Jsonapi Jsonapi { get; set; } = null!; [Required] [JsonPropertyName("links")] - public required ErrorTopLevelLinks Links { get; set; } + public ErrorTopLevelLinks Links { get; set; } = null!; [Required] [JsonPropertyName("errors")] public IList Errors { get; set; } = new List(); [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/IdentifierCollectionResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/IdentifierCollectionResponseDocument.cs index 7a0dba363b..bf50821888 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/IdentifierCollectionResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/IdentifierCollectionResponseDocument.cs @@ -12,16 +12,16 @@ internal sealed class IdentifierCollectionResponseDocument : IHasMeta where TResource : IIdentifiable { [JsonPropertyName("jsonapi")] - public required Jsonapi Jsonapi { get; set; } + public Jsonapi Jsonapi { get; set; } = null!; [Required] [JsonPropertyName("links")] - public required ResourceIdentifierCollectionTopLevelLinks Links { get; set; } + public ResourceIdentifierCollectionTopLevelLinks Links { get; set; } = null!; [Required] [JsonPropertyName("data")] - public required ICollection> Data { get; set; } + public ICollection> Data { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/IdentifierResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/IdentifierResponseDocument.cs index fbeedce9e3..3c44955edc 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/IdentifierResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/IdentifierResponseDocument.cs @@ -12,16 +12,16 @@ internal sealed class IdentifierResponseDocument : IHasMeta where TResource : IIdentifiable { [JsonPropertyName("jsonapi")] - public required Jsonapi Jsonapi { get; set; } + public Jsonapi Jsonapi { get; set; } = null!; [Required] [JsonPropertyName("links")] - public required ResourceIdentifierTopLevelLinks Links { get; set; } + public ResourceIdentifierTopLevelLinks Links { get; set; } = null!; [Required] [JsonPropertyName("data")] - public required IdentifierInResponse Data { get; set; } + public IdentifierInResponse Data { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/NullableIdentifierResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/NullableIdentifierResponseDocument.cs index 7a2409b2f9..1386bec001 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/NullableIdentifierResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/NullableIdentifierResponseDocument.cs @@ -14,16 +14,16 @@ internal sealed class NullableIdentifierResponseDocument : IHasMeta where TResource : IIdentifiable { [JsonPropertyName("jsonapi")] - public required Jsonapi Jsonapi { get; set; } + public Jsonapi Jsonapi { get; set; } = null!; [Required] [JsonPropertyName("links")] - public required ResourceIdentifierTopLevelLinks Links { get; set; } + public ResourceIdentifierTopLevelLinks Links { get; set; } = null!; [Required] [JsonPropertyName("data")] public IdentifierInResponse? Data { get; set; } [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/NullableSecondaryResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/NullableSecondaryResponseDocument.cs index fec66e9c35..6d6d240a5b 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/NullableSecondaryResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/NullableSecondaryResponseDocument.cs @@ -12,19 +12,19 @@ internal sealed class NullableSecondaryResponseDocument : IHasMeta where TResource : IIdentifiable { [JsonPropertyName("jsonapi")] - public required Jsonapi Jsonapi { get; set; } + public Jsonapi Jsonapi { get; set; } = null!; [Required] [JsonPropertyName("links")] - public required ResourceTopLevelLinks Links { get; set; } + public ResourceTopLevelLinks Links { get; set; } = null!; [Required] [JsonPropertyName("data")] public DataInResponse? Data { get; set; } [JsonPropertyName("included")] - public required IList Included { get; set; } + public IList Included { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/OperationsRequestDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/OperationsRequestDocument.cs index ccfd9ca3ac..6bd3a1dad2 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/OperationsRequestDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/OperationsRequestDocument.cs @@ -11,8 +11,8 @@ internal sealed class OperationsRequestDocument : IHasMeta [Required] [MinLength(1)] [JsonPropertyName("atomic:operations")] - public required ICollection Operations { get; set; } + public ICollection Operations { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/OperationsResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/OperationsResponseDocument.cs index 6cd7a5f01d..1c962fba84 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/OperationsResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/OperationsResponseDocument.cs @@ -10,17 +10,17 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Documents; internal sealed class OperationsResponseDocument : IHasMeta { [JsonPropertyName("jsonapi")] - public required Jsonapi Jsonapi { get; set; } + public Jsonapi Jsonapi { get; set; } = null!; [Required] [JsonPropertyName("links")] - public required ResourceTopLevelLinks Links { get; set; } + public ResourceTopLevelLinks Links { get; set; } = null!; [Required] [MinLength(1)] [JsonPropertyName("atomic:results")] - public required IList Results { get; set; } + public IList Results { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/PrimaryResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/PrimaryResponseDocument.cs index 8b7983ab9f..1956fb8758 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/PrimaryResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/PrimaryResponseDocument.cs @@ -12,19 +12,19 @@ internal sealed class PrimaryResponseDocument : IHasMeta where TResource : IIdentifiable { [JsonPropertyName("jsonapi")] - public required Jsonapi Jsonapi { get; set; } + public Jsonapi Jsonapi { get; set; } = null!; [Required] [JsonPropertyName("links")] - public required ResourceTopLevelLinks Links { get; set; } + public ResourceTopLevelLinks Links { get; set; } = null!; [Required] [JsonPropertyName("data")] - public required DataInResponse Data { get; set; } + public DataInResponse Data { get; set; } = null!; [JsonPropertyName("included")] - public required IList Included { get; set; } + public IList Included { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/SecondaryResponseDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/SecondaryResponseDocument.cs index e95f485b25..6a90db36e1 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/SecondaryResponseDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/SecondaryResponseDocument.cs @@ -12,19 +12,19 @@ internal sealed class SecondaryResponseDocument : IHasMeta where TResource : IIdentifiable { [JsonPropertyName("jsonapi")] - public required Jsonapi Jsonapi { get; set; } + public Jsonapi Jsonapi { get; set; } = null!; [Required] [JsonPropertyName("links")] - public required ResourceTopLevelLinks Links { get; set; } + public ResourceTopLevelLinks Links { get; set; } = null!; [Required] [JsonPropertyName("data")] - public required DataInResponse Data { get; set; } + public DataInResponse Data { get; set; } = null!; [JsonPropertyName("included")] - public required IList Included { get; set; } + public IList Included { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/UpdateRequestDocument.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/UpdateRequestDocument.cs index c33b65c145..cbeec3e86b 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/UpdateRequestDocument.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Documents/UpdateRequestDocument.cs @@ -12,8 +12,8 @@ internal sealed class UpdateRequestDocument : IHasMeta { [Required] [JsonPropertyName("data")] - public required DataInUpdateRequest Data { get; set; } + public DataInUpdateRequest Data { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Jsonapi.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Jsonapi.cs index 88c479bfc3..692b5d77ac 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Jsonapi.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Jsonapi.cs @@ -7,14 +7,14 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects; internal sealed class Jsonapi : IHasMeta { [JsonPropertyName("version")] - public required string Version { get; set; } + public string Version { get; set; } = null!; [JsonPropertyName("ext")] - public required ICollection Ext { get; set; } + public ICollection Ext { get; set; } = null!; [JsonPropertyName("profile")] - public required ICollection Profile { get; set; } + public ICollection Profile { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ErrorTopLevelLinks.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ErrorTopLevelLinks.cs index 1dae0cc00b..f98c9eb480 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ErrorTopLevelLinks.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ErrorTopLevelLinks.cs @@ -7,8 +7,8 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Links; internal sealed class ErrorTopLevelLinks { [JsonPropertyName("self")] - public required string Self { get; set; } + public string Self { get; set; } = null!; [JsonPropertyName("describedby")] - public required string Describedby { get; set; } + public string Describedby { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/RelationshipLinks.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/RelationshipLinks.cs index 7fd48e90e2..0bdae58dee 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/RelationshipLinks.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/RelationshipLinks.cs @@ -7,8 +7,8 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Links; internal sealed class RelationshipLinks { [JsonPropertyName("self")] - public required string Self { get; set; } + public string Self { get; set; } = null!; [JsonPropertyName("related")] - public required string Related { get; set; } + public string Related { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceCollectionTopLevelLinks.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceCollectionTopLevelLinks.cs index 338a43fa27..65710af45f 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceCollectionTopLevelLinks.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceCollectionTopLevelLinks.cs @@ -7,20 +7,20 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Links; internal sealed class ResourceCollectionTopLevelLinks { [JsonPropertyName("self")] - public required string Self { get; set; } + public string Self { get; set; } = null!; [JsonPropertyName("describedby")] - public required string Describedby { get; set; } + public string Describedby { get; set; } = null!; [JsonPropertyName("first")] - public required string First { get; set; } + public string First { get; set; } = null!; [JsonPropertyName("last")] - public required string Last { get; set; } + public string Last { get; set; } = null!; [JsonPropertyName("prev")] - public required string Prev { get; set; } + public string Prev { get; set; } = null!; [JsonPropertyName("next")] - public required string Next { get; set; } + public string Next { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceIdentifierCollectionTopLevelLinks.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceIdentifierCollectionTopLevelLinks.cs index 7aff221c8e..8b9a3aaf55 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceIdentifierCollectionTopLevelLinks.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceIdentifierCollectionTopLevelLinks.cs @@ -7,23 +7,23 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Links; internal sealed class ResourceIdentifierCollectionTopLevelLinks { [JsonPropertyName("self")] - public required string Self { get; set; } + public string Self { get; set; } = null!; [JsonPropertyName("related")] - public required string Related { get; set; } + public string Related { get; set; } = null!; [JsonPropertyName("describedby")] - public required string Describedby { get; set; } + public string Describedby { get; set; } = null!; [JsonPropertyName("first")] - public required string First { get; set; } + public string First { get; set; } = null!; [JsonPropertyName("last")] - public required string Last { get; set; } + public string Last { get; set; } = null!; [JsonPropertyName("prev")] - public required string Prev { get; set; } + public string Prev { get; set; } = null!; [JsonPropertyName("next")] - public required string Next { get; set; } + public string Next { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceIdentifierTopLevelLinks.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceIdentifierTopLevelLinks.cs index fca50bfc9d..9af21cf6a1 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceIdentifierTopLevelLinks.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceIdentifierTopLevelLinks.cs @@ -7,11 +7,11 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Links; internal sealed class ResourceIdentifierTopLevelLinks { [JsonPropertyName("self")] - public required string Self { get; set; } + public string Self { get; set; } = null!; [JsonPropertyName("related")] - public required string Related { get; set; } + public string Related { get; set; } = null!; [JsonPropertyName("describedby")] - public required string Describedby { get; set; } + public string Describedby { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceLinks.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceLinks.cs index 647ce04093..a37ef69523 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceLinks.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceLinks.cs @@ -7,5 +7,5 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Links; internal sealed class ResourceLinks { [JsonPropertyName("self")] - public required string Self { get; set; } + public string Self { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceTopLevelLinks.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceTopLevelLinks.cs index fd1ef54a28..531c8d10ad 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceTopLevelLinks.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Links/ResourceTopLevelLinks.cs @@ -7,8 +7,8 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle.JsonApiObjects.Links; internal sealed class ResourceTopLevelLinks { [JsonPropertyName("self")] - public required string Self { get; set; } + public string Self { get; set; } = null!; [JsonPropertyName("describedby")] - public required string Describedby { get; set; } + public string Describedby { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/NullableToOneInRequest.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/NullableToOneInRequest.cs index 4940aef38e..13f3290102 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/NullableToOneInRequest.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/NullableToOneInRequest.cs @@ -15,5 +15,5 @@ internal sealed class NullableToOneInRequest : IHasMeta public IdentifierInRequest? Data { get; set; } [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/NullableToOneInResponse.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/NullableToOneInResponse.cs index d3dce45f6a..29d13dd1c2 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/NullableToOneInResponse.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/NullableToOneInResponse.cs @@ -12,12 +12,12 @@ internal sealed class NullableToOneInResponse : IHasMeta { // Non-required because the related controller may be unavailable when used in an include. [JsonPropertyName("links")] - public required RelationshipLinks Links { get; set; } + public RelationshipLinks Links { get; set; } = null!; // Non-required because related data may not be included in the response. [JsonPropertyName("data")] public IdentifierInResponse? Data { get; set; } [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToManyInRequest.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToManyInRequest.cs index 0a718ff93e..b80ab3a004 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToManyInRequest.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToManyInRequest.cs @@ -12,8 +12,8 @@ internal sealed class ToManyInRequest : IHasMeta { [Required] [JsonPropertyName("data")] - public required ICollection> Data { get; set; } + public ICollection> Data { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToManyInResponse.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToManyInResponse.cs index f85493526b..e60ab7f451 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToManyInResponse.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToManyInResponse.cs @@ -12,12 +12,12 @@ internal sealed class ToManyInResponse : IHasMeta { // Non-required because the related controller may be unavailable when used in an include. [JsonPropertyName("links")] - public required RelationshipLinks Links { get; set; } + public RelationshipLinks Links { get; set; } = null!; // Non-required because related data may not be included in the response. [JsonPropertyName("data")] - public required ICollection> Data { get; set; } + public ICollection> Data { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToOneInRequest.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToOneInRequest.cs index 384f6ffad9..6404e84545 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToOneInRequest.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToOneInRequest.cs @@ -12,8 +12,8 @@ internal sealed class ToOneInRequest : IHasMeta { [Required] [JsonPropertyName("data")] - public required IdentifierInRequest Data { get; set; } + public IdentifierInRequest Data { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToOneInResponse.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToOneInResponse.cs index eb39f24f3c..859a1de929 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToOneInResponse.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/Relationships/ToOneInResponse.cs @@ -12,12 +12,12 @@ internal sealed class ToOneInResponse : IHasMeta { // Non-required because the related controller may be unavailable when used in an include. [JsonPropertyName("links")] - public required RelationshipLinks Links { get; set; } + public RelationshipLinks Links { get; set; } = null!; // Non-required because related data may not be included in the response. [JsonPropertyName("data")] - public required IdentifierInResponse Data { get; set; } + public IdentifierInResponse Data { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInCreateRequest.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInCreateRequest.cs index baddce0874..ac416a1614 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInCreateRequest.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInCreateRequest.cs @@ -11,15 +11,15 @@ internal sealed class DataInCreateRequest : ResourceInCreateRequest { [MinLength(1)] [JsonPropertyName("id")] - public override required string Id { get; set; } + public override string Id { get; set; } = null!; [MinLength(1)] [JsonPropertyName("lid")] - public required string Lid { get; set; } + public string Lid { get; set; } = null!; [JsonPropertyName("attributes")] - public required AttributesInCreateRequest Attributes { get; set; } + public AttributesInCreateRequest Attributes { get; set; } = null!; [JsonPropertyName("relationships")] - public required RelationshipsInCreateRequest Relationships { get; set; } + public RelationshipsInCreateRequest Relationships { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInResponse.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInResponse.cs index d0115c28bd..6015a3511d 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInResponse.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInResponse.cs @@ -12,15 +12,15 @@ internal sealed class DataInResponse : ResourceInResponse { [Required] [JsonPropertyName("id")] - public override required string Id { get; set; } + public override string Id { get; set; } = null!; [JsonPropertyName("attributes")] - public required AttributesInResponse Attributes { get; set; } + public AttributesInResponse Attributes { get; set; } = null!; [JsonPropertyName("relationships")] - public required RelationshipsInResponse Relationships { get; set; } + public RelationshipsInResponse Relationships { get; set; } = null!; // Non-required because the related controller may be unavailable when used in an include. [JsonPropertyName("links")] - public required ResourceLinks Links { get; set; } + public ResourceLinks Links { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInUpdateRequest.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInUpdateRequest.cs index 2573e92c7b..25167a5437 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInUpdateRequest.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/DataInUpdateRequest.cs @@ -11,15 +11,15 @@ internal sealed class DataInUpdateRequest : ResourceInUpdateRequest { [MinLength(1)] [JsonPropertyName("id")] - public override required string Id { get; set; } + public override string Id { get; set; } = null!; [MinLength(1)] [JsonPropertyName("lid")] - public required string Lid { get; set; } + public string Lid { get; set; } = null!; [JsonPropertyName("attributes")] - public required AttributesInUpdateRequest Attributes { get; set; } + public AttributesInUpdateRequest Attributes { get; set; } = null!; [JsonPropertyName("relationships")] - public required RelationshipsInUpdateRequest Relationships { get; set; } + public RelationshipsInUpdateRequest Relationships { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/IdentifierInRequest.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/IdentifierInRequest.cs index d5ba6b7e1a..f317498810 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/IdentifierInRequest.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/IdentifierInRequest.cs @@ -9,10 +9,10 @@ internal class IdentifierInRequest : IHasMeta { [Required] [JsonPropertyName("type")] - public required string Type { get; set; } + public string Type { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } // ReSharper disable once UnusedTypeParameter @@ -22,9 +22,9 @@ internal class IdentifierInRequest : IdentifierInRequest, IResourceId { [MinLength(1)] [JsonPropertyName("id")] - public required string Id { get; set; } + public string Id { get; set; } = null!; [MinLength(1)] [JsonPropertyName("lid")] - public required string Lid { get; set; } + public string Lid { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/IdentifierInResponse.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/IdentifierInResponse.cs index f512f98bce..47bf94ce17 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/IdentifierInResponse.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/IdentifierInResponse.cs @@ -12,12 +12,12 @@ internal sealed class IdentifierInResponse : IResourceIdentity { [Required] [JsonPropertyName("type")] - public required string Type { get; set; } + public string Type { get; set; } = null!; [Required] [JsonPropertyName("id")] - public required string Id { get; set; } + public string Id { get; set; } = null!; [JsonPropertyName("meta")] - public required Meta Meta { get; set; } + public Meta Meta { get; set; } = null!; } diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/RelationshipIdentifier.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/RelationshipIdentifier.cs index 7c8730ff70..34afbf1dc2 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/RelationshipIdentifier.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiObjects/ResourceObjects/RelationshipIdentifier.cs @@ -11,7 +11,7 @@ internal sealed class RelationshipIdentifier : IdentifierInRequest