Skip to content

Commit dd7d785

Browse files
committed
feat(records): add parameterless constructors
- Added parameterless constructors to records and updated usage
1 parent 9b9f2b3 commit dd7d785

13 files changed

Lines changed: 249 additions & 169 deletions

File tree

Directory.Packages.props

Lines changed: 95 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,97 +1,97 @@
11
<Project>
2-
<PropertyGroup>
3-
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
4-
<CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled>
5-
</PropertyGroup>
6-
<ItemGroup>
7-
<PackageVersion Include="Asp.Versioning.Http" Version="8.1.0" />
8-
<PackageVersion Include="Asp.Versioning.Mvc" Version="8.1.0" />
9-
<PackageVersion Include="Asp.Versioning.Mvc.ApiExplorer" Version="8.1.0" />
10-
<PackageVersion Include="AspNetCore.HealthChecks.ApplicationStatus" Version="9.0.0" />
11-
<PackageVersion Include="AspNetCore.HealthChecks.Azure.Data.Tables" Version="9.0.0" />
12-
<PackageVersion Include="AspNetCore.HealthChecks.Azure.KeyVault.Secrets" Version="9.0.0" />
13-
<PackageVersion Include="AspNetCore.HealthChecks.Azure.Storage.Blobs" Version="9.0.0" />
14-
<PackageVersion Include="AspNetCore.HealthChecks.Azure.Storage.Queues" Version="9.0.0" />
15-
<PackageVersion Include="AspNetCore.HealthChecks.Redis" Version="9.0.0" />
16-
<PackageVersion Include="AspNetCore.HealthChecks.SqlServer" Version="9.0.0" />
17-
<PackageVersion Include="AspNetCore.HealthChecks.UI" Version="9.0.0" />
18-
<PackageVersion Include="AspNetCore.HealthChecks.UI.Client" Version="9.0.0" />
19-
<PackageVersion Include="AspNetCore.HealthChecks.UI.InMemory.Storage" Version="9.0.0" />
20-
<PackageVersion Include="Azure.Data.Tables" Version="12.11.0" />
21-
<PackageVersion Include="Azure.Identity" Version="1.14.0" />
22-
<PackageVersion Include="Azure.Monitor.OpenTelemetry.AspNetCore" Version="1.3.0" />
23-
<PackageVersion Include="Azure.Security.KeyVault.Secrets" Version="4.7.0" />
24-
<PackageVersion Include="Azure.Storage.Blobs" Version="12.24.0" />
25-
<PackageVersion Include="Azure.Storage.Queues" Version="12.22.0" />
26-
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
27-
<PackageVersion Include="EntityFrameworkCore.Exceptions.SqlServer" Version="8.1.3" />
28-
<PackageVersion Include="FluentValidation" Version="12.0.0" />
29-
<PackageVersion Include="FluentValidation.DependencyInjectionExtensions" Version="12.0.0" />
30-
<PackageVersion Include="JetBrains.Annotations" Version="2024.3.0" />
31-
<PackageVersion Include="KubernetesClient" Version="16.0.7" />
32-
<PackageVersion Include="MassTransit" Version="8.4.1" />
33-
<PackageVersion Include="MassTransit.RabbitMQ" Version="8.4.1" />
34-
<PackageVersion Include="MediatR" Version="12.5.0" />
35-
<PackageVersion Include="MediatR.Contracts" Version="2.0.1" />
36-
<PackageVersion Include="Microsoft.AspNetCore.JsonPatch" Version="9.0.3" />
37-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.5" />
38-
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="9.0.5" />
39-
<PackageVersion Include="Microsoft.Data.SqlClient" Version="6.0.2" />
40-
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="9.0.5" />
41-
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.5" />
42-
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.5" />
43-
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.5" />
44-
<PackageVersion Include="Microsoft.Extensions.Azure" Version="1.11.0" />
45-
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.5" />
46-
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.5" />
47-
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="9.0.5" />
48-
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="9.0.5" />
49-
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="9.0.5" />
50-
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="9.0.5" />
51-
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="9.0.5" />
52-
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="9.5.0" />
53-
<PackageVersion Include="Microsoft.Extensions.Identity.Core" Version="9.0.5" />
54-
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="9.0.5" />
55-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
56-
<PackageVersion Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.21.2" />
57-
<PackageVersion Include="Moq" Version="4.20.72" />
58-
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
59-
<PackageVersion Include="NSwag.AspNetCore" Version="14.4.0" />
60-
<PackageVersion Include="OneOf" Version="3.0.271" />
61-
<PackageVersion Include="OneOf.Extended" Version="3.0.271" />
62-
<PackageVersion Include="OneOf.SourceGenerator" Version="3.0.271" />
63-
<PackageVersion Include="OpenTelemetry.Api" Version="1.12.0" />
64-
<PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.12.0" />
65-
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.12.0" />
66-
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0" />
67-
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.12.0" />
68-
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.12.0" />
69-
<PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" Version="1.12.0" />
70-
<PackageVersion Include="OpenTelemetry.Instrumentation.SqlClient" Version="1.10.0-beta.1" />
71-
<PackageVersion Include="OpenTelemetry.Instrumentation.StackExchangeRedis" Version="1.10.0-beta.1" />
72-
<PackageVersion Include="oqo0.SwaggerThemes" Version="1.4.3" />
73-
<PackageVersion Include="Seq.Api" Version="2025.1.0" />
74-
<PackageVersion Include="Serilog" Version="4.2.0" />
75-
<PackageVersion Include="Serilog.AspNetCore" Version="9.0.0" />
76-
<PackageVersion Include="Serilog.Enrichers.Environment" Version="3.0.1" />
77-
<PackageVersion Include="Serilog.Extensions.Hosting" Version="9.0.0" />
78-
<PackageVersion Include="Serilog.Extensions.Logging" Version="9.0.1" />
79-
<PackageVersion Include="Serilog.Formatting.Compact" Version="3.0.0" />
80-
<PackageVersion Include="Serilog.Settings.Configuration" Version="9.0.0" />
81-
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" />
82-
<PackageVersion Include="Serilog.Sinks.InMemory" Version="0.15.0" />
83-
<PackageVersion Include="Serilog.Sinks.OpenTelemetry" Version="4.1.1" />
84-
<PackageVersion Include="Serilog.Sinks.Seq" Version="9.0.0" />
85-
<PackageVersion Include="SharpGrip.FluentValidation.AutoValidation.Endpoints" Version="1.5.0" />
86-
<PackageVersion Include="SharpGrip.FluentValidation.AutoValidation.Mvc" Version="1.5.0" />
87-
<PackageVersion Include="StackExchange.Redis" Version="2.8.37" />
88-
<PackageVersion Include="Swashbuckle.AspNetCore" Version="8.1.1" />
89-
<PackageVersion Include="System.Linq.Async" Version="6.0.1" />
90-
<PackageVersion Include="Testcontainers" Version="4.4.0" />
91-
<PackageVersion Include="Testcontainers.MsSql" Version="4.4.0" />
92-
<PackageVersion Include="Testcontainers.Redis" Version="4.4.0" />
93-
<PackageVersion Include="xunit" Version="2.9.3" />
94-
<PackageVersion Include="xunit.extensibility.core" Version="2.9.3" />
95-
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.0" />
96-
</ItemGroup>
2+
<PropertyGroup>
3+
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
4+
<CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled>
5+
</PropertyGroup>
6+
<ItemGroup>
7+
<PackageVersion Include="Asp.Versioning.Http" Version="8.1.0" />
8+
<PackageVersion Include="Asp.Versioning.Mvc" Version="8.1.0" />
9+
<PackageVersion Include="Asp.Versioning.Mvc.ApiExplorer" Version="8.1.0" />
10+
<PackageVersion Include="AspNetCore.HealthChecks.ApplicationStatus" Version="9.0.0" />
11+
<PackageVersion Include="AspNetCore.HealthChecks.Azure.Data.Tables" Version="9.0.0" />
12+
<PackageVersion Include="AspNetCore.HealthChecks.Azure.KeyVault.Secrets" Version="9.0.0" />
13+
<PackageVersion Include="AspNetCore.HealthChecks.Azure.Storage.Blobs" Version="9.0.0" />
14+
<PackageVersion Include="AspNetCore.HealthChecks.Azure.Storage.Queues" Version="9.0.0" />
15+
<PackageVersion Include="AspNetCore.HealthChecks.Redis" Version="9.0.0" />
16+
<PackageVersion Include="AspNetCore.HealthChecks.SqlServer" Version="9.0.0" />
17+
<PackageVersion Include="AspNetCore.HealthChecks.UI" Version="9.0.0" />
18+
<PackageVersion Include="AspNetCore.HealthChecks.UI.Client" Version="9.0.0" />
19+
<PackageVersion Include="AspNetCore.HealthChecks.UI.InMemory.Storage" Version="9.0.0" />
20+
<PackageVersion Include="Azure.Data.Tables" Version="12.11.0" />
21+
<PackageVersion Include="Azure.Identity" Version="1.14.0" />
22+
<PackageVersion Include="Azure.Monitor.OpenTelemetry.AspNetCore" Version="1.3.0" />
23+
<PackageVersion Include="Azure.Security.KeyVault.Secrets" Version="4.7.0" />
24+
<PackageVersion Include="Azure.Storage.Blobs" Version="12.24.0" />
25+
<PackageVersion Include="Azure.Storage.Queues" Version="12.22.0" />
26+
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
27+
<PackageVersion Include="EntityFrameworkCore.Exceptions.SqlServer" Version="8.1.3" />
28+
<PackageVersion Include="FluentValidation" Version="12.0.0" />
29+
<PackageVersion Include="FluentValidation.DependencyInjectionExtensions" Version="12.0.0" />
30+
<PackageVersion Include="JetBrains.Annotations" Version="2024.3.0" />
31+
<PackageVersion Include="KubernetesClient" Version="16.0.7" />
32+
<PackageVersion Include="MassTransit" Version="8.4.1" />
33+
<PackageVersion Include="MassTransit.RabbitMQ" Version="8.4.1" />
34+
<PackageVersion Include="MediatR" Version="12.5.0" />
35+
<PackageVersion Include="MediatR.Contracts" Version="2.0.1" />
36+
<PackageVersion Include="Microsoft.AspNetCore.JsonPatch" Version="9.0.3" />
37+
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.5" />
38+
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="9.0.5" />
39+
<PackageVersion Include="Microsoft.Data.SqlClient" Version="6.0.2" />
40+
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="9.0.5" />
41+
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.5" />
42+
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.5" />
43+
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.5" />
44+
<PackageVersion Include="Microsoft.Extensions.Azure" Version="1.11.0" />
45+
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.5" />
46+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.5" />
47+
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="9.0.5" />
48+
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="9.0.5" />
49+
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="9.0.5" />
50+
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="9.0.5" />
51+
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="9.0.5" />
52+
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="9.5.0" />
53+
<PackageVersion Include="Microsoft.Extensions.Identity.Core" Version="9.0.5" />
54+
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="9.0.5" />
55+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
56+
<PackageVersion Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.21.2" />
57+
<PackageVersion Include="Moq" Version="4.20.72" />
58+
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
59+
<PackageVersion Include="NSwag.AspNetCore" Version="14.4.0" />
60+
<PackageVersion Include="OneOf" Version="3.0.271" />
61+
<PackageVersion Include="OneOf.Extended" Version="3.0.271" />
62+
<PackageVersion Include="OneOf.SourceGenerator" Version="3.0.271" />
63+
<PackageVersion Include="OpenTelemetry.Api" Version="1.12.0" />
64+
<PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.12.0" />
65+
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.12.0" />
66+
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0" />
67+
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.12.0" />
68+
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.12.0" />
69+
<PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" Version="1.12.0" />
70+
<PackageVersion Include="OpenTelemetry.Instrumentation.SqlClient" Version="1.10.0-beta.1" />
71+
<PackageVersion Include="OpenTelemetry.Instrumentation.StackExchangeRedis" Version="1.10.0-beta.1" />
72+
<PackageVersion Include="oqo0.SwaggerThemes" Version="1.4.3" />
73+
<PackageVersion Include="Seq.Api" Version="2025.1.0" />
74+
<PackageVersion Include="Serilog" Version="4.2.0" />
75+
<PackageVersion Include="Serilog.AspNetCore" Version="9.0.0" />
76+
<PackageVersion Include="Serilog.Enrichers.Environment" Version="3.0.1" />
77+
<PackageVersion Include="Serilog.Extensions.Hosting" Version="9.0.0" />
78+
<PackageVersion Include="Serilog.Extensions.Logging" Version="9.0.1" />
79+
<PackageVersion Include="Serilog.Formatting.Compact" Version="3.0.0" />
80+
<PackageVersion Include="Serilog.Settings.Configuration" Version="9.0.0" />
81+
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" />
82+
<PackageVersion Include="Serilog.Sinks.InMemory" Version="0.15.0" />
83+
<PackageVersion Include="Serilog.Sinks.OpenTelemetry" Version="4.1.1" />
84+
<PackageVersion Include="Serilog.Sinks.Seq" Version="9.0.0" />
85+
<PackageVersion Include="SharpGrip.FluentValidation.AutoValidation.Endpoints" Version="1.5.0" />
86+
<PackageVersion Include="SharpGrip.FluentValidation.AutoValidation.Mvc" Version="1.5.0" />
87+
<PackageVersion Include="StackExchange.Redis" Version="2.8.37" />
88+
<PackageVersion Include="Swashbuckle.AspNetCore" Version="8.1.1" />
89+
<PackageVersion Include="System.Linq.Async" Version="6.0.1" />
90+
<PackageVersion Include="Testcontainers" Version="4.4.0" />
91+
<PackageVersion Include="Testcontainers.MsSql" Version="4.4.0" />
92+
<PackageVersion Include="Testcontainers.Redis" Version="4.4.0" />
93+
<PackageVersion Include="xunit" Version="2.9.3" />
94+
<PackageVersion Include="xunit.extensibility.core" Version="2.9.3" />
95+
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.0" />
96+
</ItemGroup>
9797
</Project>

src/ES.FX.Additions.AspNetCore.HealthChecks.UI/HealthChecksEndpointRegistry/HealthChecksEndpointRegistryServiceHostingExtensions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public static class HealthChecksEndpointRegistryServiceHostingExtensions
1313
public static void AddHealthChecksEndpointRegistry(this IHostApplicationBuilder builder)
1414
{
1515
builder.Services.TryAddSingleton<HealthChecksEndpointRegistryService>();
16-
builder.Services.AddHostedService(
17-
provider => provider.GetRequiredService<HealthChecksEndpointRegistryService>());
16+
builder.Services.AddHostedService(provider =>
17+
provider.GetRequiredService<HealthChecksEndpointRegistryService>());
1818
}
1919
}

src/ES.FX.Additions.MassTransit.MediatR/Consumers/MediatorBatchConsumer.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,15 @@ public async Task Consume(ConsumeContext<Batch<TMessage>> context)
2020
var messages = context.Message.Select(s => s.Message).ToArray();
2121

2222
if (typeof(TMessage).IsAssignableTo(typeof(INotification)))
23-
await mediator.Publish(new BatchNotification<TMessage>(messages));
23+
await mediator.Publish(new BatchNotification<TMessage>
24+
{
25+
Items = messages
26+
});
2427
else if (typeof(TMessage).IsAssignableTo(typeof(IRequest)))
25-
await mediator.Send(new BatchRequest<TMessage>(messages));
28+
await mediator.Send(new BatchRequest<TMessage>
29+
{
30+
Items = messages
31+
});
2632
else
2733
throw new InvalidOperationException(
2834
$"Message type {typeof(TMessage).Name} is not supported. " +

src/ES.FX.Additions.MediatR.Contracts/Batches/BatchNotification.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,14 @@
44
namespace ES.FX.Additions.MediatR.Contracts.Batches;
55

66
/// <summary>
7-
/// A notification containing a batch of items
7+
/// A notification containing a batch of items.
88
/// </summary>
9-
/// <typeparam name="T">Item type</typeparam>
10-
/// <param name="Items">Enumerable of items</param>
9+
/// <typeparam name="T">The type of items in the batch.</typeparam>
1110
[PublicAPI]
12-
public record BatchNotification<T>(IEnumerable<T> Items) : INotification;
11+
public record BatchNotification<T> : INotification
12+
{
13+
/// <summary>
14+
/// An enumerable collection of items in the batch.
15+
/// </summary>
16+
public IEnumerable<T> Items { get; set; } = [];
17+
}

src/ES.FX.Additions.MediatR.Contracts/Batches/BatchRequest.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,14 @@
44
namespace ES.FX.Additions.MediatR.Contracts.Batches;
55

66
/// <summary>
7-
/// A request containing a batch of items
7+
/// A request containing a batch of items.
88
/// </summary>
9-
/// <typeparam name="T">Item type</typeparam>
10-
/// <param name="Items">Enumerable of items</param>
9+
/// <typeparam name="T">The type of items in the batch.</typeparam>
1110
[PublicAPI]
12-
public record BatchRequest<T>(IEnumerable<T> Items) : IRequest;
11+
public record BatchRequest<T> : IRequest
12+
{
13+
/// <summary>
14+
/// An enumerable collection of items in the batch.
15+
/// </summary>
16+
public IEnumerable<T> Items { get; set; } = [];
17+
}

src/ES.FX.Additions.MediatR.Contracts/Messaging/RelayMessage.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,8 @@ namespace ES.FX.Additions.MediatR.Contracts.Messaging;
1010
[PublicAPI]
1111
public record RelayMessage : IRequest
1212
{
13-
public RelayMessage()
14-
{
15-
}
16-
17-
public RelayMessage(IMessage message) => Message = message;
13+
/// <summary>
14+
/// The message to be relayed
15+
/// </summary>
1816
public required IMessage Message { get; init; }
1917
}

src/ES.FX.Additions.StackExchange.Redis/DatabaseExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public static class DatabaseExtensions
1313
/// LUA script to delete all keys matching a pattern in batches
1414
/// </summary>
1515
private const string DeleteAllWithPatternBatchedScript = """
16-
16+
1717
local cursor = '0'
1818
local batchSize = tonumber(ARGV[1])
1919
local totalDeleted = 0

0 commit comments

Comments
 (0)