Add IsProdEnvironment SignalR endpoint and env flag setup

Added IsProdEnvironment SignalR endpoint to FruitBankDataController for runtime environment checks. Set production status globally in PluginNopStartup via FruitBankConst.SetIsProd. Minor code and using updates. README.md binary updated.
This commit is contained in:
Loretta 2026-07-12 14:31:40 +02:00
parent 59317749bc
commit 312e319e23
3 changed files with 12 additions and 2 deletions

View File

@ -900,6 +900,14 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
return customers; //.ToModelDto<CustomerDto>();
}
[SignalR(SignalRTags.IsProdEnvironment)]
public Task<bool> IsProdEnvironment()
{
_logger.Detail("IsProdEnvironment invoked");
return Task.FromResult(FruitBankConst.IsProd());
}
[SignalR(SignalRTags.GetCustomerRolesByCustomerId)]
public async Task<List<CustomerRole>> GetCustomerRolesByCustomerId(int customerId)
{

View File

@ -49,6 +49,7 @@ using AyCode.Services.Nav.Ekaer.Models;
using FruitBank.Common.Services.Ekaer;
using FruitBank.Common.Server.Services.Ekaer;
using System.Security.Authentication;
using FruitBank.Common.Server;
namespace Nop.Plugin.Misc.FruitBankPlugin.Infrastructure;
@ -302,8 +303,7 @@ public class PluginNopStartup : INopStartup
var catalog = new SqlConnectionStringBuilder(connectionString).InitialCatalog;
var isDev = catalog.Contains("_DEV", StringComparison.OrdinalIgnoreCase)
|| catalog.Contains("_TEST", StringComparison.OrdinalIgnoreCase);
var isDev = catalog.Contains("_DEV", StringComparison.OrdinalIgnoreCase) || catalog.Contains("_TEST", StringComparison.OrdinalIgnoreCase);
var isProd = catalog.Contains("_PROD", StringComparison.OrdinalIgnoreCase);
if (isProd == isDev)
@ -311,6 +311,8 @@ public class PluginNopStartup : INopStartup
$"Database catalog '{catalog}' cannot be classified: isProd={isProd}, isDev={isDev}. " +
"Fix the catalog naming or the detection rules — refusing to start with an ambiguous environment badge.");
FruitBankConst.SetIsProd(isProd);
try
{
if (!OperatingSystem.IsWindows()) return;