Skip to content

Commit 163b711

Browse files
committed
Change NewGuid() to CreateVersion7() for fragmentation limiting.
Regegister TenantProvisioning service, as tenantdetail failed. HealthPage deserialization failed due to missing null check Updated Nuget
1 parent ff88424 commit 163b711

49 files changed

Lines changed: 507 additions & 152 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: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
<PackageId>FullStackHero.Framework.Blazor.UI</PackageId>
77
<!-- MUD0002: MudBlazor analyzer false positives for valid component parameter usage in RenderFragment/component contexts -->
88
<NoWarn>$(NoWarn);MUD0002</NoWarn>
9+
10+
<!-- Enable CSS isolation for Razor Class Library -->
11+
<GenerateScopedCssFiles>true</GenerateScopedCssFiles>
912
</PropertyGroup>
1013

1114

src/BuildingBlocks/Blazor.UI/Components/Theme/FshBrandAssetsPicker.razor

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,16 @@
3131
Accept=".png,.jpg,.jpeg,.svg,.webp"
3232
FilesChanged="@OnLogoUpload"
3333
MaximumFileCount="1">
34-
<ActivatorContent>
34+
<CustomContent Context="upload">
3535
<MudPaper Class="pa-4 d-flex flex-column align-center justify-center cursor-pointer"
3636
Style="border: 2px dashed; border-color: var(--mud-palette-lines-default); min-height: 100px;"
37-
Elevation="0">
37+
Elevation="0"
38+
@onclick="@(async (e) => await upload.OpenFilePickerAsync())">
3839
<MudIcon Icon="@Icons.Material.Outlined.CloudUpload" Size="Size.Large" Color="Color.Default" />
3940
<MudText Typo="Typo.caption" Class="mt-2">Click to upload logo</MudText>
4041
<MudText Typo="Typo.caption" Color="Color.Secondary">PNG, JPG, SVG, WebP</MudText>
4142
</MudPaper>
42-
</ActivatorContent>
43+
</CustomContent>
4344
</MudFileUpload>
4445
}
4546
</MudPaper>
@@ -72,15 +73,16 @@
7273
Accept=".png,.jpg,.jpeg,.svg,.webp"
7374
FilesChanged="@OnLogoDarkUpload"
7475
MaximumFileCount="1">
75-
<ActivatorContent>
76+
<CustomContent Context="upload">
7677
<MudPaper Class="pa-4 d-flex flex-column align-center justify-center cursor-pointer"
7778
Style="border: 2px dashed; border-color: rgba(255,255,255,0.3); min-height: 100px; background-color: transparent;"
78-
Elevation="0">
79+
Elevation="0"
80+
@onclick="@(async (e) => await upload.OpenFilePickerAsync())">
7981
<MudIcon Icon="@Icons.Material.Outlined.CloudUpload" Size="Size.Large" Style="color: rgba(255,255,255,0.7);" />
8082
<MudText Typo="Typo.caption" Class="mt-2" Style="color: rgba(255,255,255,0.7);">Click to upload logo</MudText>
8183
<MudText Typo="Typo.caption" Style="color: rgba(255,255,255,0.5);">PNG, JPG, SVG, WebP</MudText>
8284
</MudPaper>
83-
</ActivatorContent>
85+
</CustomContent>
8486
</MudFileUpload>
8587
}
8688
</MudPaper>
@@ -114,15 +116,16 @@
114116
Accept=".png,.ico,.svg"
115117
FilesChanged="@OnFaviconUpload"
116118
MaximumFileCount="1">
117-
<ActivatorContent>
119+
<CustomContent Context="upload">
118120
<MudPaper Class="pa-4 d-flex flex-column align-center justify-center cursor-pointer"
119121
Style="border: 2px dashed; border-color: var(--mud-palette-lines-default); min-height: 100px;"
120-
Elevation="0">
122+
Elevation="0"
123+
@onclick="@(async (e) => await upload.OpenFilePickerAsync())">
121124
<MudIcon Icon="@Icons.Material.Outlined.Image" Size="Size.Large" Color="Color.Default" />
122125
<MudText Typo="Typo.caption" Class="mt-2">Click to upload favicon</MudText>
123126
<MudText Typo="Typo.caption" Color="Color.Secondary">16x16 or 32x32 PNG, ICO</MudText>
124127
</MudPaper>
125-
</ActivatorContent>
128+
</CustomContent>
126129
</MudFileUpload>
127130
}
128131
</MudPaper>

src/BuildingBlocks/Blazor.UI/Components/Theme/FshThemeCustomizer.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@
165165
/// </summary>
166166
public async Task ResetToDefaultsAsync()
167167
{
168-
var confirmed = await DialogService.ShowMessageBox(
168+
var confirmed = await DialogService.ShowMessageBoxAsync(
169169
"Reset Theme",
170170
"Are you sure you want to reset all theme settings to defaults? This action cannot be undone.",
171171
yesText: "Reset",

src/BuildingBlocks/Blazor.UI/Components/User/FshAccountMenu.razor

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
TransformOrigin="Origin.TopRight"
77
PopoverClass="fsh-account-popover"
88
Dense="false">
9-
<ActivatorContent>
10-
<MudButton Class="fsh-account-trigger" Variant="Variant.Text" Color="Color.Inherit">
9+
<ActivatorContent Context="ctx">
10+
<MudButton Class="fsh-account-trigger" Variant="Variant.Text" Color="Color.Inherit"
11+
OnClick="@(async (e) => await ctx.ToggleAsync(e))">
1112
<MudAvatar Size="Size.Small" Class="fsh-trigger-avatar">
1213
@if (!string.IsNullOrEmpty(AvatarUrl))
1314
{

src/BuildingBlocks/Caching/Extensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public static IServiceCollection AddHeroCaching(this IServiceCollection services
4646
services.AddStackExchangeRedisCache(options =>
4747
{
4848
var config = ConfigurationOptions.Parse(cacheOptions.Redis);
49-
config.AbortOnConnectFail = true;
49+
config.AbortOnConnectFail = false;
5050

5151
// Only override SSL if explicitly configured
5252
if (cacheOptions.EnableSsl.HasValue)

src/BuildingBlocks/Core/Domain/DomainEvent.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@ public static T Create<T>(Func<Guid, DateTimeOffset, T> factory)
2424
where T : DomainEvent
2525
{
2626
ArgumentNullException.ThrowIfNull(factory);
27-
return factory(Guid.NewGuid(), DateTimeOffset.UtcNow);
27+
return factory(Guid.CreateVersion7(), DateTimeOffset.UtcNow);
2828
}
2929
}

src/BuildingBlocks/Core/Domain/IDomainEvent.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
namespace FSH.Framework.Core.Domain;
1+
using Mediator;
2+
3+
namespace FSH.Framework.Core.Domain;
24

35
/// <summary>
46
/// Represents a domain event with correlation and tenant context.
7+
/// Implements INotification to enable publishing through Mediator.
58
/// </summary>
6-
public interface IDomainEvent
9+
public interface IDomainEvent : INotification
710
{
811
/// <summary>
912
/// Gets the unique event identifier.

src/BuildingBlocks/Storage/Local/LocalStorageService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public async Task<string> UploadAsync<T>(FileUploadRequest request, FileType fil
4444
#pragma warning disable CA1308 // folder names are intentionally lower-case for URLs/paths
4545
var folder = Regex.Replace(typeof(T).Name.ToLowerInvariant(), @"[^a-z0-9]", "_");
4646
#pragma warning restore CA1308
47-
var safeFileName = $"{Guid.NewGuid():N}_{SanitizeFileName(request.FileName)}";
47+
var safeFileName = $"{Guid.CreateVersion7():N}_{SanitizeFileName(request.FileName)}";
4848
var relativePath = Path.Combine(UploadBasePath, folder, safeFileName);
4949
var fullPath = Path.Combine(_rootPath, relativePath);
5050

src/BuildingBlocks/Storage/S3/S3StorageService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ public async Task<bool> ExistsAsync(string path, CancellationToken cancellationT
187187
private string BuildKey<T>(string fileName) where T : class
188188
{
189189
var folder = Regex.Replace(typeof(T).Name.ToLowerInvariant(), @"[^a-z0-9]", "_");
190-
var relativePath = Path.Combine(UploadBasePath, folder, $"{Guid.NewGuid():N}_{fileName}").Replace("\\", "/", StringComparison.Ordinal);
190+
var relativePath = Path.Combine(UploadBasePath, folder, $"{Guid.CreateVersion7():N}_{fileName}").Replace("\\", "/", StringComparison.Ordinal);
191191
if (!string.IsNullOrWhiteSpace(_options.Prefix))
192192
{
193193
return $"{_options.Prefix.TrimEnd('/')}/{relativePath}";

src/Directory.Packages.props

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,22 @@
99
<IsPackable>true</IsPackable>
1010
</PropertyGroup>
1111
<ItemGroup Label="Aspire">
12-
<PackageVersion Include="Aspire.Hosting.PostgreSQL" Version="13.1.3" />
13-
<PackageVersion Include="Aspire.Hosting.Redis" Version="13.1.3" />
12+
<PackageVersion Include="Aspire.Hosting.PostgreSQL" Version="13.2.1" />
13+
<PackageVersion Include="Aspire.Hosting.Redis" Version="13.2.1" />
1414
<PackageVersion Include="coverlet.collector" Version="8.0.1">
1515
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1616
<PrivateAssets>all</PrivateAssets>
1717
</PackageVersion>
1818
<PackageVersion Include="FluentValidation.DependencyInjectionExtensions" Version="12.1.1" />
1919
<PackageVersion Include="Microsoft.AspNetCore.Components.Authorization" Version="10.0.5" />
20-
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="10.2.0" />
21-
<PackageVersion Include="Microsoft.FeatureManagement.AspNetCore" Version="4.0.0" />
20+
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="10.4.0" />
21+
<PackageVersion Include="Microsoft.FeatureManagement.AspNetCore" Version="4.4.0" />
2222
<PackageVersion Include="Microsoft.Extensions.ServiceDiscovery" Version="10.2.0" />
23-
<PackageVersion Include="MudBlazor" Version="8.15.0" />
24-
<PackageVersion Include="MudBlazor.ThemeManager" Version="3.0.0" />
23+
<PackageVersion Include="MudBlazor" Version="9.2.0" />
24+
<PackageVersion Include="MudBlazor.ThemeManager" Version="4.0.0" />
2525
<PackageVersion Include="Npgsql.OpenTelemetry" Version="10.0.2" />
26-
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.15.0" />
27-
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.15.0" />
26+
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.15.1" />
27+
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.15.1" />
2828
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.15.1" />
2929
<PackageVersion Include="OpenTelemetry.Instrumentation.EntityFrameworkCore" Version="1.15.0-beta.1" />
3030
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.15.0" />
@@ -53,7 +53,7 @@
5353
<PackageVersion Include="Hangfire.MemoryStorage" Version="1.8.1.2" />
5454
<PackageVersion Include="Hangfire.PostgreSql" Version="1.21.1" />
5555
<PackageVersion Include="MailKit" Version="4.15.1" />
56-
<PackageVersion Include="Mapster" Version="7.4.0" />
56+
<PackageVersion Include="Mapster" Version="10.0.6" />
5757
<PackageVersion Include="Mediator.Abstractions" Version="3.0.2" />
5858
<PackageVersion Include="Mediator.SourceGenerator" Version="3.0.2" />
5959
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.5" />
@@ -84,16 +84,16 @@
8484
<PackageVersion Include="NSubstitute" Version="5.3.0" />
8585
<PackageVersion Include="Newtonsoft.Json" Version="13.0.4" />
8686
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.1" />
87-
<PackageVersion Include="Scalar.AspNetCore" Version="2.13.13" />
87+
<PackageVersion Include="Scalar.AspNetCore" Version="2.13.18" />
8888
<PackageVersion Include="Serilog" Version="4.3.2-dev-02419" />
8989
<PackageVersion Include="Serilog.AspNetCore" Version="10.0.0" />
9090
<PackageVersion Include="Serilog.Enrichers.CorrelationId" Version="3.0.1" />
9191
<PackageVersion Include="SendGrid" Version="9.29.3" />
92-
<PackageVersion Include="SonarAnalyzer.CSharp" Version="10.21.0.135717" />
92+
<PackageVersion Include="SonarAnalyzer.CSharp" Version="10.22.0.136894" />
9393
<PackageVersion Include="UAParser" Version="3.1.47" />
9494
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="10.0.5" />
9595
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.3.0" />
96-
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="8.16.0" />
96+
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="8.17.0" />
9797
<PackageVersion Include="Shouldly" Version="4.3.0" />
9898
<PackageVersion Include="xunit" Version="2.9.3" />
9999
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />
@@ -106,7 +106,7 @@
106106
<PackageVersion Include="Microsoft.AspNetCore.Components.Web" Version="10.0.5" />
107107
</ItemGroup>
108108
<ItemGroup Label="AWS">
109-
<PackageVersion Include="AWSSDK.S3" Version="4.0.19.1" />
109+
<PackageVersion Include="AWSSDK.S3" Version="4.0.20.1" />
110110
</ItemGroup>
111111
<ItemGroup Label="Messaging">
112112
<PackageVersion Include="RabbitMQ.Client" Version="7.2.1" />
@@ -116,4 +116,4 @@
116116
<PackageVersion Include="Spectre.Console.Cli" Version="0.53.1" />
117117
<PackageVersion Include="System.CommandLine" Version="2.0.5" />
118118
</ItemGroup>
119-
</Project>
119+
</Project>

0 commit comments

Comments
 (0)