Skip to content

Commit 2bf8bc3

Browse files
committed
Resolve some Messages in IDE, down to 80 now.
1 parent 3aa023d commit 2bf8bc3

130 files changed

Lines changed: 699 additions & 1535 deletions

File tree

Some content is hidden

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

src/BuildingBlocks/Blazor.UI/Blazor.UI.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<AssemblyName>FSH.Framework.Blazor.UI</AssemblyName>
66
<PackageId>FullStackHero.Framework.Blazor.UI</PackageId>
77
<!-- MUD0002: MudBlazor analyzer false positives for valid component parameter usage in RenderFragment/component contexts -->
8-
<NoWarn>$(NoWarn);MUD0002</NoWarn>
8+
<NoWarn>$(NoWarn);MUD0002;NU1507</NoWarn>
99

1010
<!-- Enable CSS isolation for Razor Class Library -->
1111
<GenerateScopedCssFiles>true</GenerateScopedCssFiles>

src/BuildingBlocks/Blazor.UI/Components/Feedback/Snackbar/FshSnackbar.razor.cs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,15 @@ namespace FSH.Framework.Blazor.UI.Components.Feedback.Snackbar;
55
/// <summary>
66
/// Convenience wrapper for snackbar calls with consistent styling.
77
/// </summary>
8-
public sealed class FshSnackbar
8+
public sealed class FshSnackbar(ISnackbar snackbar)
99
{
10-
private readonly ISnackbar _snackbar;
11-
12-
public FshSnackbar(ISnackbar snackbar)
13-
{
14-
_snackbar = snackbar;
15-
}
16-
1710
public void Success(string message) => Add(message, Severity.Success);
1811
public void Info(string message) => Add(message, Severity.Info);
1912
public void Warning(string message) => Add(message, Severity.Warning);
2013
public void Error(string message) => Add(message, Severity.Error);
2114

2215
private void Add(string message, Severity severity)
2316
{
24-
_snackbar.Add(message, severity);
17+
snackbar.Add(message, severity);
2518
}
2619
}

src/BuildingBlocks/Caching/Caching.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<RootNamespace>FSH.Framework.Caching</RootNamespace>
55
<AssemblyName>FSH.Framework.Caching</AssemblyName>
66
<PackageId>FullStackHero.Framework.Caching</PackageId>
7+
<NoWarn>$(NoWarn);NU1507</NoWarn>
78
</PropertyGroup>
89

910
<ItemGroup>

src/BuildingBlocks/Core/Core.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<RootNamespace>FSH.Framework.Core</RootNamespace>
55
<AssemblyName>FSH.Framework.Core</AssemblyName>
66
<PackageId>FullStackHero.Framework.Core</PackageId>
7+
<NoWarn>$(NoWarn);NU1507</NoWarn>
78
</PropertyGroup>
89

910
<ItemGroup>

src/BuildingBlocks/Eventing.Abstractions/Eventing.Abstractions.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<AssemblyName>FSH.Framework.Eventing.Abstractions</AssemblyName>
99
<PackageId>FullStackHero.Framework.Eventing.Abstractions</PackageId>
1010
<Description>Lightweight abstractions for FSH eventing - interfaces only, no implementation dependencies</Description>
11-
<NoWarn>$(NoWarn);CA1711;CA1716</NoWarn>
11+
<NoWarn>$(NoWarn);CA1711;CA1716;NU1507</NoWarn>
1212
</PropertyGroup>
1313

1414
</Project>

src/BuildingBlocks/Eventing/Eventing.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<RootNamespace>FSH.Framework.Eventing</RootNamespace>
88
<AssemblyName>FSH.Framework.Eventing</AssemblyName>
99
<PackageId>FullStackHero.Framework.Eventing</PackageId>
10-
<NoWarn>$(NoWarn);CA1711;CA1716;CA1031;S2139;S1066</NoWarn>
10+
<NoWarn>$(NoWarn);CA1711;CA1716;CA1031;S2139;S1066;NU1507</NoWarn>
1111
</PropertyGroup>
1212

1313
<ItemGroup>

src/BuildingBlocks/Eventing/InMemory/InMemoryEventBus.cs

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,8 @@ namespace FSH.Framework.Eventing.InMemory;
1010
/// In-memory event bus implementation used for single-process deployments.
1111
/// It resolves handlers from DI and optionally uses an inbox store for idempotency.
1212
/// </summary>
13-
public sealed partial class InMemoryEventBus : IEventBus
13+
public sealed partial class InMemoryEventBus(IServiceProvider serviceProvider, ILogger<InMemoryEventBus> logger) : IEventBus
1414
{
15-
private readonly IServiceProvider _serviceProvider;
16-
private readonly ILogger<InMemoryEventBus> _logger;
17-
18-
public InMemoryEventBus(IServiceProvider serviceProvider, ILogger<InMemoryEventBus> logger)
19-
{
20-
_serviceProvider = serviceProvider;
21-
_logger = logger;
22-
}
23-
2415
public Task PublishAsync(IIntegrationEvent @event, CancellationToken ct = default)
2516
=> PublishAsync(new[] { @event }, ct);
2617

@@ -39,7 +30,7 @@ private async Task PublishSingleAsync(IIntegrationEvent @event, CancellationToke
3930
var eventType = @event.GetType();
4031
LogPublishingEvent(eventType.FullName, @event.Id);
4132

42-
using var scope = _serviceProvider.CreateScope();
33+
using var scope = serviceProvider.CreateScope();
4334
var provider = scope.ServiceProvider;
4435

4536
var handlers = ResolveHandlers(provider, eventType);
@@ -80,10 +71,10 @@ private async Task InvokeHandlerAsync(
8071
return;
8172
}
8273

83-
var method = handlerInterfaceType.GetMethod(nameof(IIntegrationEventHandler<IIntegrationEvent>.HandleAsync));
74+
var method = handlerInterfaceType.GetMethod(nameof(IIntegrationEventHandler<>.HandleAsync));
8475
if (method == null)
8576
{
86-
_logger.LogWarning("Handler {Handler} does not implement HandleAsync correctly for {EventType}", handlerName, eventType.FullName);
77+
logger.LogWarning("Handler {Handler} does not implement HandleAsync correctly for {EventType}", handlerName, eventType.FullName);
8778
return;
8879
}
8980

@@ -119,7 +110,7 @@ await inbox.MarkProcessedAsync(@event.Id, handlerName, @event.TenantId, eventTyp
119110
// failures are captured regardless of exception type.
120111
catch (Exception ex)
121112
{
122-
_logger.LogError(ex, "Error while handling integration event {EventId} with handler {Handler}", @event.Id, handlerName);
113+
logger.LogError(ex, "Error while handling integration event {EventId} with handler {Handler}", @event.Id, handlerName);
123114
throw;
124115
}
125116
}

src/BuildingBlocks/Eventing/Inbox/EfCoreInboxStore.cs

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,12 @@ namespace FSH.Framework.Eventing.Inbox;
66
/// EF Core-based inbox store for a specific DbContext.
77
/// </summary>
88
/// <typeparam name="TDbContext">The DbContext that owns the InboxMessages set.</typeparam>
9-
public sealed class EfCoreInboxStore<TDbContext> : IInboxStore
9+
public sealed class EfCoreInboxStore<TDbContext>(TDbContext dbContext, TimeProvider timeProvider) : IInboxStore
1010
where TDbContext : DbContext
1111
{
12-
private readonly TDbContext _dbContext;
13-
private readonly TimeProvider _timeProvider;
14-
15-
public EfCoreInboxStore(TDbContext dbContext, TimeProvider timeProvider)
16-
{
17-
_dbContext = dbContext;
18-
_timeProvider = timeProvider;
19-
}
20-
2112
public async Task<bool> HasProcessedAsync(Guid eventId, string handlerName, CancellationToken ct = default)
2213
{
23-
return await _dbContext.Set<InboxMessage>()
14+
return await dbContext.Set<InboxMessage>()
2415
.AnyAsync(i => i.Id == eventId && i.HandlerName == handlerName, ct)
2516
.ConfigureAwait(false);
2617
}
@@ -33,10 +24,10 @@ public async Task MarkProcessedAsync(Guid eventId, string handlerName, string? t
3324
EventType = eventType,
3425
HandlerName = handlerName,
3526
TenantId = tenantId,
36-
ProcessedOnUtc = _timeProvider.GetUtcNow().UtcDateTime
27+
ProcessedOnUtc = timeProvider.GetUtcNow().UtcDateTime
3728
};
3829

39-
await _dbContext.Set<InboxMessage>().AddAsync(message, ct).ConfigureAwait(false);
40-
await _dbContext.SaveChangesAsync(ct).ConfigureAwait(false);
30+
await dbContext.Set<InboxMessage>().AddAsync(message, ct).ConfigureAwait(false);
31+
await dbContext.SaveChangesAsync(ct).ConfigureAwait(false);
4132
}
4233
}

src/BuildingBlocks/Eventing/Inbox/InboxMessage.cs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,13 @@ public class InboxMessage
1919
public string? TenantId { get; set; }
2020
}
2121

22-
public class InboxMessageConfiguration : IEntityTypeConfiguration<InboxMessage>
22+
public class InboxMessageConfiguration(string schema) : IEntityTypeConfiguration<InboxMessage>
2323
{
24-
private readonly string _schema;
25-
26-
public InboxMessageConfiguration(string schema)
27-
{
28-
_schema = schema;
29-
}
30-
3124
public void Configure(EntityTypeBuilder<InboxMessage> builder)
3225
{
3326
ArgumentNullException.ThrowIfNull(builder);
3427

35-
builder.ToTable("InboxMessages", _schema);
28+
builder.ToTable("InboxMessages", schema);
3629

3730
builder.HasKey(i => new { i.Id, i.HandlerName });
3831

src/BuildingBlocks/Eventing/Outbox/EfCoreOutboxStore.cs

Lines changed: 15 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,18 @@ namespace FSH.Framework.Eventing.Outbox;
88
/// EF Core-based outbox store for a specific DbContext.
99
/// </summary>
1010
/// <typeparam name="TDbContext">The DbContext that owns the OutboxMessages set.</typeparam>
11-
public sealed class EfCoreOutboxStore<TDbContext> : IOutboxStore
11+
public sealed class EfCoreOutboxStore<TDbContext>(
12+
TDbContext dbContext,
13+
IEventSerializer serializer,
14+
ILogger<EfCoreOutboxStore<TDbContext>> logger,
15+
TimeProvider timeProvider) : IOutboxStore
1216
where TDbContext : DbContext
1317
{
14-
private readonly TDbContext _dbContext;
15-
private readonly IEventSerializer _serializer;
16-
private readonly ILogger<EfCoreOutboxStore<TDbContext>> _logger;
17-
private readonly TimeProvider _timeProvider;
18-
19-
public EfCoreOutboxStore(
20-
TDbContext dbContext,
21-
IEventSerializer serializer,
22-
ILogger<EfCoreOutboxStore<TDbContext>> logger,
23-
TimeProvider timeProvider)
24-
{
25-
_dbContext = dbContext;
26-
_serializer = serializer;
27-
_logger = logger;
28-
_timeProvider = timeProvider;
29-
}
30-
3118
public async Task AddAsync(IIntegrationEvent @event, CancellationToken ct = default)
3219
{
3320
ArgumentNullException.ThrowIfNull(@event);
3421

35-
var payload = _serializer.Serialize(@event);
22+
var payload = serializer.Serialize(@event);
3623
var message = new OutboxMessage
3724
{
3825
Id = @event.Id,
@@ -45,13 +32,13 @@ public async Task AddAsync(IIntegrationEvent @event, CancellationToken ct = defa
4532
IsDead = false
4633
};
4734

48-
await _dbContext.Set<OutboxMessage>().AddAsync(message, ct).ConfigureAwait(false);
49-
await _dbContext.SaveChangesAsync(ct).ConfigureAwait(false);
35+
await dbContext.Set<OutboxMessage>().AddAsync(message, ct).ConfigureAwait(false);
36+
await dbContext.SaveChangesAsync(ct).ConfigureAwait(false);
5037
}
5138

5239
public async Task<IReadOnlyList<OutboxMessage>> GetPendingBatchAsync(int batchSize, CancellationToken ct = default)
5340
{
54-
return await _dbContext.Set<OutboxMessage>()
41+
return await dbContext.Set<OutboxMessage>()
5542
.Where(m => !m.IsDead && m.ProcessedOnUtc == null)
5643
.OrderBy(m => m.CreatedOnUtc)
5744
.Take(batchSize)
@@ -63,9 +50,9 @@ public async Task MarkAsProcessedAsync(OutboxMessage message, CancellationToken
6350
{
6451
ArgumentNullException.ThrowIfNull(message);
6552

66-
message.ProcessedOnUtc = _timeProvider.GetUtcNow().UtcDateTime;
67-
_dbContext.Set<OutboxMessage>().Update(message);
68-
await _dbContext.SaveChangesAsync(ct).ConfigureAwait(false);
53+
message.ProcessedOnUtc = timeProvider.GetUtcNow().UtcDateTime;
54+
dbContext.Set<OutboxMessage>().Update(message);
55+
await dbContext.SaveChangesAsync(ct).ConfigureAwait(false);
6956
}
7057

7158
public async Task MarkAsFailedAsync(OutboxMessage message, string error, bool isDead, CancellationToken ct = default)
@@ -75,11 +62,11 @@ public async Task MarkAsFailedAsync(OutboxMessage message, string error, bool is
7562
message.RetryCount++;
7663
message.LastError = error;
7764
message.IsDead = isDead;
78-
_dbContext.Set<OutboxMessage>().Update(message);
65+
dbContext.Set<OutboxMessage>().Update(message);
7966

80-
_logger.LogWarning("Outbox message {MessageId} failed. RetryCount={RetryCount}, IsDead={IsDead}, Error={Error}",
67+
logger.LogWarning("Outbox message {MessageId} failed. RetryCount={RetryCount}, IsDead={IsDead}, Error={Error}",
8168
message.Id, message.RetryCount, message.IsDead, error);
8269

83-
await _dbContext.SaveChangesAsync(ct).ConfigureAwait(false);
70+
await dbContext.SaveChangesAsync(ct).ConfigureAwait(false);
8471
}
8572
}

0 commit comments

Comments
 (0)