Centralize BaseUrl logic via AcEnv; enforce fail-fast

Refactored BaseUrl handling so FruitBankConstClient delegates all access to AcEnv.BaseUrl in AyCode.Core, ensuring a single source of truth and fail-fast validation. Removed redundant _baseUrl field and logic from FruitBankConstClient. Updated startup files to hydrate BaseUrl from configuration and improved comments to clarify the new delegation and configuration conventions.
This commit is contained in:
Loretta 2026-07-14 07:47:07 +02:00
parent 25265c02f8
commit 451e029869
4 changed files with 12 additions and 15 deletions

View File

@ -7,19 +7,14 @@ public static class FruitBankConstClient
{ {
public static string DefaultLocale = "en-US"; public static string DefaultLocale = "en-US";
// A nop szerver base URL-je. Induláskor a host tölti fel az appsettings "AyCode:Urls:BaseUrl"-ből // DELEGÁT az AcEnv.BaseUrl-re (AyCode.Core framework, 2026-07): az érték EGY helyen, a kereten él
// (ld. Program.cs / MauiProgram.cs). Az fbHub ÉS a loggerHub is EBBŐL az egy értékből származik (+/fbHub, +/loggerHub). // (fail-fast: hidratálatlan olvasás exception). A hostok induláskor hidratálják az appsettings
// Default: null — ha nincs beállítva, az OLVASÁS exception-t dob, nem megy tovább csendben hiányzó/rossz URL-lel. // "AyCode:Urls:BaseUrl"-ből; az fbHub és a loggerHub URL-je is ebből származik (+/fbHub, +/loggerHub).
// A környezet-váltás az appsettings-ben történik: // Környezet-értékek: dev https://localhost:59579 | prod https://shop.fruitbank.hu | test https://fruitbank.mangoweb.hu | android http://10.0.2.2:59579
// dev: https://localhost:59579 | prod: https://shop.fruitbank.hu | test: https://fruitbank.mangoweb.hu | android: http://10.0.2.2:59579
private static string? _baseUrl;
public static string BaseUrl public static string BaseUrl
{ {
get => !string.IsNullOrWhiteSpace(_baseUrl) get => AcEnv.BaseUrl;
? _baseUrl set => AcEnv.BaseUrl = value;
: throw new InvalidOperationException("FruitBankConstClient.BaseUrl nincs beállítva — a host indulásakor hidratáld az appsettings 'AyCode:Urls:BaseUrl' értékéből (Program.cs / MauiProgram.cs).");
set => _baseUrl = value;
} }
// A szerver-környezet (PROD/DEV) — az érték KIZÁRÓLAG a szerver IsProdEnvironment() válaszából jöhet // A szerver-környezet (PROD/DEV) — az érték KIZÁRÓLAG a szerver IsProdEnvironment() válaszából jöhet

View File

@ -18,8 +18,8 @@ using Microsoft.Extensions.Options;
var builder = WebAssemblyHostBuilder.CreateDefault(args); var builder = WebAssemblyHostBuilder.CreateDefault(args);
// Hub-URL-ek EGY forrásból: az fbHub és a loggerHub is az AyCode:Urls:BaseUrl-ből származik. // Hub-URL-ek EGY forrásból: az fbHub és a loggerHub is a BaseUrl-ből származik
// A loggerHub writer a FruitBankConstClient.BaseUrl-t olvassa, ezért induláskor onnan hidratáljuk. // (a FruitBankConstClient.BaseUrl az AcEnv.BaseUrl keret-állapotra delegál — fail-fast).
FruitBankConstClient.BaseUrl = builder.Configuration["AyCode:Urls:BaseUrl"] FruitBankConstClient.BaseUrl = builder.Configuration["AyCode:Urls:BaseUrl"]
?? throw new InvalidOperationException("Hiányzik az 'AyCode:Urls:BaseUrl' az appsettings-ből — a hub-ok URL-je ebből származik."); ?? throw new InvalidOperationException("Hiányzik az 'AyCode:Urls:BaseUrl' az appsettings-ből — a hub-ok URL-je ebből származik.");

View File

@ -17,7 +17,8 @@ using Microsoft.Extensions.Options;
var builder = WebApplication.CreateBuilder(args); var builder = WebApplication.CreateBuilder(args);
// Hub-URL-ek EGY forrásból: az fbHub és a loggerHub is az AyCode:Urls:BaseUrl-ből származik. // Hub-URL-ek EGY forrásból: az fbHub és a loggerHub is a BaseUrl-ből származik
// (a FruitBankConstClient.BaseUrl az AcEnv.BaseUrl keret-állapotra delegál — fail-fast).
FruitBankConstClient.BaseUrl = builder.Configuration["AyCode:Urls:BaseUrl"] FruitBankConstClient.BaseUrl = builder.Configuration["AyCode:Urls:BaseUrl"]
?? throw new InvalidOperationException("Hiányzik az 'AyCode:Urls:BaseUrl' az appsettings-ből — a hub-ok URL-je ebből származik."); ?? throw new InvalidOperationException("Hiányzik az 'AyCode:Urls:BaseUrl' az appsettings-ből — a hub-ok URL-je ebből származik.");

View File

@ -47,7 +47,8 @@ namespace FruitBankHybrid
} }
} }
// Hub-URL-ek EGY forrásból: az fbHub és a loggerHub is az AyCode:Urls:BaseUrl-ből származik. // Hub-URL-ek EGY forrásból: az fbHub és a loggerHub is a BaseUrl-ből származik
// (a FruitBankConstClient.BaseUrl az AcEnv.BaseUrl keret-állapotra delegál — fail-fast).
FruitBankConstClient.BaseUrl = builder.Configuration["AyCode:Urls:BaseUrl"] FruitBankConstClient.BaseUrl = builder.Configuration["AyCode:Urls:BaseUrl"]
?? throw new InvalidOperationException("Hiányzik az 'AyCode:Urls:BaseUrl' az appsettings-ből — a hub-ok URL-je ebből származik."); ?? throw new InvalidOperationException("Hiányzik az 'AyCode:Urls:BaseUrl' az appsettings-ből — a hub-ok URL-je ebből származik.");