Porting a versione 8 della struttura app x SPEC
This commit is contained in:
@@ -412,17 +412,17 @@ namespace MP.Data.Controllers
|
||||
/// <param name="azienda"></param>
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<AnagArticoliModel> ArticoliGetByTipo(string tipo, string azienda = "*")
|
||||
public async Task<List<AnagArticoliModel>> ArticoliGetByTipoAsync(string tipo, string azienda = "*")
|
||||
{
|
||||
List<AnagArticoliModel> dbResult = new List<AnagArticoliModel>();
|
||||
using (var dbCtx = new MoonProContext(options))
|
||||
{
|
||||
dbResult = dbCtx
|
||||
dbResult = await dbCtx
|
||||
.DbSetArticoli
|
||||
.AsNoTracking()
|
||||
.Where(x => x.Tipo.ToUpper() == tipo.ToUpper() && (azienda == "*" || x.Azienda.ToUpper() == azienda.ToUpper()))
|
||||
.OrderBy(x => x.CodArticolo)
|
||||
.ToList();
|
||||
.ToListAsync();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
@@ -392,7 +392,7 @@ namespace MP.Data.Services
|
||||
}
|
||||
stopWatch.Stop();
|
||||
TimeSpan ts = stopWatch.Elapsed;
|
||||
Log.Debug($"ArticoliGetByTipo | Read from {readType}: {ts.TotalMilliseconds}ms");
|
||||
Log.Debug($"ArticoliGetByTipoAsync | Read from {readType}: {ts.TotalMilliseconds}ms");
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
<CascadingAuthenticationState>
|
||||
<Router AppAssembly="@typeof(App).Assembly">
|
||||
<Found Context="routeData">
|
||||
<AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
|
||||
<FocusOnNavigate RouteData="@routeData" Selector="h1" />
|
||||
</Found>
|
||||
<NotFound>
|
||||
<PageTitle>Not found</PageTitle>
|
||||
<LayoutView Layout="@typeof(MainLayout)">
|
||||
<p role="alert">Sorry, there's nothing at this address.</p>
|
||||
</LayoutView>
|
||||
</NotFound>
|
||||
</Router>
|
||||
</CascadingAuthenticationState>
|
||||
@@ -0,0 +1,43 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="google" content="notranslate" />
|
||||
@* <base href="/" /> *@
|
||||
@* <base href="/MP/SPEC" /> *@
|
||||
|
||||
<meta name="description" content="MAPO SPEC Site" />
|
||||
<meta name="author" content="EgalWare" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
|
||||
|
||||
<title>MP-SPEC</title>
|
||||
|
||||
<!-- CSS -->
|
||||
<link rel="stylesheet" href="lib/bootstrap/css/bootstrap.min.css" />
|
||||
<link rel="stylesheet" href="lib/bootstrap-icons/font/bootstrap-icons.min.css" />
|
||||
<link rel="stylesheet" href="css/site.min.css" />
|
||||
<link rel="stylesheet" href="lib/font-awesome/css/all.min.css" />
|
||||
<link rel="stylesheet" href="MP.SPEC.styles.css" />
|
||||
@* <link rel="icon" type="image/png" href="favicon.ico" /> *@
|
||||
|
||||
<HeadOutlet @rendermode="@(new InteractiveServerRenderMode(prerender: false))" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<Routes @rendermode="@(new InteractiveServerRenderMode(prerender: false))" />
|
||||
<script src="_framework/blazor.web.js"></script>
|
||||
|
||||
<div id="blazor-error-ui">
|
||||
<span>An error has occurred.</span>
|
||||
<a href="" class="reload">Reload</a>
|
||||
<a class="dismiss">🗙</a>
|
||||
</div>
|
||||
|
||||
<!-- JS -->
|
||||
<script src="lib/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="lib/chartBoot.js"></script>
|
||||
<script src="lib/modalHandler.js"></script>
|
||||
<script src="lib/Chart.js/chart.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace MP.SPEC.Shared
|
||||
namespace MP.SPEC.Components.Layout
|
||||
{
|
||||
public partial class MainLayout
|
||||
{
|
||||
Vendored
@@ -2,7 +2,7 @@ using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||
using MP.SPEC.Data;
|
||||
|
||||
namespace MP.SPEC.Shared
|
||||
namespace MP.SPEC.Components.Layout
|
||||
{
|
||||
public partial class NavMenu : IDisposable
|
||||
{
|
||||
@@ -1,8 +1,6 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.AspNetCore.DataProtection;
|
||||
using Microsoft.JSInterop;
|
||||
using MP.Data.DbModels;
|
||||
using MP.SPEC.Components;
|
||||
using MP.SPEC.Data;
|
||||
using MP.SPEC.Services;
|
||||
using NLog;
|
||||
@@ -209,7 +207,7 @@ namespace MP.SPEC.Components
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
ListStati = await MDService.AnagStatiComm();
|
||||
ListArtKit = MDService.ArticoliGetByTipo("KIT", "*");
|
||||
ListArtKit = await MDService.ArticoliGetByTipoAsync("KIT", "*");
|
||||
string SPEC_PODL_gest = await MDService.ConfigTryGetAsync("SPEC_PODL_gest");
|
||||
if (!string.IsNullOrEmpty(SPEC_PODL_gest))
|
||||
{
|
||||
|
||||
@@ -216,9 +216,8 @@ namespace MP.SPEC.Components
|
||||
.Select(x => x.IdxMacchina)
|
||||
.ToHashSet();
|
||||
|
||||
|
||||
ListStati = await MDService.AnagStatiComm();
|
||||
ListArtKit = MDService.ArticoliGetByTipo("KIT", "*");
|
||||
ListArtKit = await MDService.ArticoliGetByTipoAsync("KIT", "*");
|
||||
string strMachRecipe = await MDService.ConfigTryGetAsync("MachineWithRecipe");
|
||||
if (!string.IsNullOrEmpty(strMachRecipe))
|
||||
{
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<Router AppAssembly="typeof(Program).Assembly">
|
||||
<Found Context="routeData">
|
||||
<AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
|
||||
<FocusOnNavigate RouteData="@routeData" Selector="h1" />
|
||||
</Found>
|
||||
<NotFound>
|
||||
<PageTitle>Not found</PageTitle>
|
||||
<LayoutView Layout="@typeof(MainLayout)">
|
||||
<p role="alert">Sorry, there's nothing at this address.</p>
|
||||
</LayoutView>
|
||||
</NotFound>
|
||||
</Router>
|
||||
@@ -417,15 +417,15 @@ namespace MP.SPEC.Data
|
||||
/// <param name="tipo"></param>
|
||||
/// <param name="azienda"></param>
|
||||
/// <returns></returns>
|
||||
public List<AnagArticoliModel> ArticoliGetByTipo(string tipo, string azienda = "*")
|
||||
public async Task<List<AnagArticoliModel>> ArticoliGetByTipoAsync(string tipo, string azienda = "*")
|
||||
{
|
||||
using var activity = ActivitySource.StartActivity("ArticoliGetByTipo");
|
||||
using var activity = ActivitySource.StartActivity("ArticoliGetByTipoAsync");
|
||||
List<AnagArticoliModel>? result = new List<AnagArticoliModel>();
|
||||
string source = "DB";
|
||||
string sKey = string.IsNullOrEmpty(tipo) ? "ALL" : tipo;
|
||||
string currKey = $"{Utils.redisArtList}:{azienda}:Tipo:{sKey}";
|
||||
// cerco in redis dato valore sel idxMaccSel...
|
||||
RedisValue rawData = redisDb.StringGet(currKey);
|
||||
RedisValue rawData = await redisDb.StringGetAsync(currKey);
|
||||
if (rawData.HasValue)
|
||||
{
|
||||
result = JsonConvert.DeserializeObject<List<AnagArticoliModel>>($"{rawData}");
|
||||
@@ -433,10 +433,10 @@ namespace MP.SPEC.Data
|
||||
}
|
||||
else
|
||||
{
|
||||
result = dbController.ArticoliGetByTipo(tipo, azienda);
|
||||
result = await dbController.ArticoliGetByTipoAsync(tipo, azienda);
|
||||
// serializzo e salvo...
|
||||
rawData = JsonConvert.SerializeObject(result);
|
||||
redisDb.StringSet(currKey, rawData, getRandTOut(redisLongTimeCache));
|
||||
await redisDb.StringSetAsync(currKey, rawData, getRandTOut(redisLongTimeCache));
|
||||
}
|
||||
if (result == null)
|
||||
{
|
||||
@@ -445,7 +445,7 @@ namespace MP.SPEC.Data
|
||||
activity?.SetTag("data.source", source);
|
||||
activity?.SetTag("result.count", result.Count);
|
||||
activity?.Stop();
|
||||
LogTrace($"ArticoliGetByTipo | Read from {source}: {activity?.Duration.TotalMilliseconds}ms");
|
||||
LogTrace($"ArticoliGetByTipoAsync | Read from {source}: {activity?.Duration.TotalMilliseconds}ms");
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -685,34 +685,6 @@ namespace MP.SPEC.Data
|
||||
|
||||
LogTrace($"ConfigTryGet Read from {source}: {activity?.Duration.TotalMilliseconds}ms");
|
||||
return value ?? "";
|
||||
|
||||
#if false
|
||||
string answ = "";
|
||||
using var activity = ActivitySource.StartActivity("ConfigTryGet");
|
||||
string source = "DB+REDIS";
|
||||
// preselezione valori
|
||||
if (configData == null || configData.Count == 0)
|
||||
{
|
||||
configData = ConfigGetAll();
|
||||
}
|
||||
var currRec = configData.FirstOrDefault(x => x.Chiave == keyName);
|
||||
|
||||
// se non trovato provo a ricaricare..
|
||||
if (currRec == null)
|
||||
{
|
||||
configData = ConfigGetAll();
|
||||
currRec = configData.FirstOrDefault(x => x.Chiave == keyName);
|
||||
}
|
||||
// verifico se ci sia il dato...
|
||||
if (currRec != null)
|
||||
{
|
||||
answ = currRec.Valore;
|
||||
}
|
||||
activity?.SetTag("data.source", source);
|
||||
activity?.Stop();
|
||||
LogTrace($"ConfigTryGet Read from {source}: {activity?.Duration.TotalMilliseconds}ms");
|
||||
return answ;
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -732,36 +704,8 @@ namespace MP.SPEC.Data
|
||||
activity?.SetTag("data.source", source);
|
||||
activity?.Stop();
|
||||
|
||||
LogTrace($"ConfigTryGetAsync Read from {source}: {activity?.Duration.TotalMilliseconds}ms");
|
||||
LogTrace($"ConfigTryGetAsync | {keyName} | Read from {source}: {activity?.Duration.TotalMilliseconds}ms");
|
||||
return value ?? "";
|
||||
|
||||
#if false
|
||||
string answ = "";
|
||||
using var activity = ActivitySource.StartActivity("ConfigTryGetAsync");
|
||||
string source = "DB+REDIS";
|
||||
// preselezione valori
|
||||
if (configData == null || configData.Count == 0)
|
||||
{
|
||||
configData = await ConfigGetAllAsync();
|
||||
}
|
||||
var currRec = configData.FirstOrDefault(x => x.Chiave == keyName);
|
||||
|
||||
// se non trovato provo a ricaricare..
|
||||
if (currRec != null)
|
||||
{
|
||||
configData = await ConfigGetAllAsync();
|
||||
currRec = configData.FirstOrDefault(x => x.Chiave == keyName);
|
||||
}
|
||||
// verifico se ci sia il dato...
|
||||
if (currRec != null)
|
||||
{
|
||||
answ = currRec.Valore;
|
||||
}
|
||||
activity?.SetTag("data.source", source);
|
||||
activity?.Stop();
|
||||
LogTrace($"ConfigTryGetAsync Read from {source}: {activity?.Duration.TotalMilliseconds}ms");
|
||||
return answ;
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -2070,27 +2014,6 @@ namespace MP.SPEC.Data
|
||||
// chiamo metodo conferma!
|
||||
fatto = await dbController.ODLClose(idxOdl, idxMacchina, matrOpr, confPezzi, confRett, modoConfProd);
|
||||
|
||||
#if false
|
||||
// recupero dati x conf modalità conferma
|
||||
var configData = await ConfigGetAllAsync();
|
||||
if (configData != null)
|
||||
{
|
||||
bool confRett = false;
|
||||
var currRec = configData.FirstOrDefault(x => x.Chiave == "confRett");
|
||||
if (currRec != null)
|
||||
{
|
||||
bool.TryParse(currRec.Valore, out confRett);
|
||||
}
|
||||
int modoConfProd = 0;
|
||||
currRec = configData.FirstOrDefault(x => x.Chiave == "modoConfProd");
|
||||
if (currRec != null)
|
||||
{
|
||||
int.TryParse(currRec.Valore, out modoConfProd);
|
||||
}
|
||||
// chiamo metodo conferma!
|
||||
fatto = await dbController.ODLClose(idxOdl, idxMacchina, matrOpr, confPezzi, confRett, modoConfProd);
|
||||
}
|
||||
#endif
|
||||
activity?.SetTag("data.source", source);
|
||||
activity?.Stop();
|
||||
LogTrace($"ODLClose | Read from {source}: {activity?.Duration.TotalMilliseconds}ms");
|
||||
@@ -3344,17 +3267,6 @@ namespace MP.SPEC.Data
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Private Properties
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Cache dati config
|
||||
/// </summary>
|
||||
private List<ConfigModel> configData { get; set; } = new List<ConfigModel>();
|
||||
#endif
|
||||
|
||||
#endregion Private Properties
|
||||
|
||||
#region Private Methods
|
||||
|
||||
/// <summary>
|
||||
@@ -3368,6 +3280,7 @@ namespace MP.SPEC.Data
|
||||
ExecFlushRedisPattern(pattern);
|
||||
}
|
||||
}
|
||||
|
||||
private void EnsureConfigLoaded()
|
||||
{
|
||||
if (_configData.Count == 0)
|
||||
@@ -3379,6 +3292,7 @@ namespace MP.SPEC.Data
|
||||
.ToDictionary(g => g.Key, g => g.First().Valore);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task EnsureConfigLoadedAsync()
|
||||
{
|
||||
if (_configData.Count == 0)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<RootNamespace>MP.SPEC</RootNamespace>
|
||||
<Version>8.16.2605.2616</Version>
|
||||
<Version>8.16.2605.2617</Version>
|
||||
<UserSecretsId>1800a78a-6ff1-40f9-b490-87fb8bfc1394</UserSecretsId>
|
||||
<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
|
||||
</PropertyGroup>
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
@page "/"
|
||||
@namespace MP.SPEC.Pages
|
||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
||||
@{
|
||||
Layout = "_Layout";
|
||||
}
|
||||
|
||||
<component type="typeof(App)" render-mode="Server" />
|
||||
@@ -1,69 +0,0 @@
|
||||
@using Microsoft.AspNetCore.Components.Web
|
||||
@namespace MP.SPEC.Pages
|
||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>MP-SPEC</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="google" content="notranslate">
|
||||
<base href="~/" />
|
||||
<link rel="stylesheet" href="lib/bootstrap/css/bootstrap.min.css" />
|
||||
<link rel="stylesheet" href="lib/bootstrap-icons/font/bootstrap-icons.min.css" />
|
||||
<link rel="stylesheet" href="css/site.min.css" />
|
||||
<link rel="stylesheet" href="lib/font-awesome/css/all.min.css" />
|
||||
<link href="MP.SPEC.styles.css" rel="stylesheet" />
|
||||
<link rel="icon" type="image/png" href="favicon.ico" />
|
||||
<component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" />
|
||||
</head>
|
||||
<body>
|
||||
@RenderBody()
|
||||
|
||||
<div id="blazor-error-ui">
|
||||
<environment include="Staging,Production">
|
||||
An error has occurred. This application may no longer respond until reloaded.
|
||||
</environment>
|
||||
<environment include="Development">
|
||||
An unhandled exception has occurred. See browser dev tools for details.
|
||||
</environment>
|
||||
<a href="" class="reload">Reload</a>
|
||||
<a class="dismiss">🗙</a>
|
||||
</div>
|
||||
|
||||
<script src="lib/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="lib/chartBoot.js"></script>
|
||||
<script src="lib/modalHandler.js"></script>
|
||||
<script src="lib/Chart.js/chart.js"></script>
|
||||
|
||||
<script src="_framework/blazor.server.js" autostart="false"></script>
|
||||
|
||||
@*Gestione autoriconnessione: https://github.com/dotnet/aspnetcore/issues/38305 (vedere anche https://docs.microsoft.com/it-it/aspnet/core/blazor/fundamentals/signalr?view=aspnetcore-6.0#modify-the-reconnection-handler-blazor-server)*@
|
||||
<script>
|
||||
Blazor.start({
|
||||
reconnectionOptions: {
|
||||
maxRetries: 600,
|
||||
retryIntervalMilliseconds: 1000
|
||||
},
|
||||
reconnectionHandler: {
|
||||
onConnectionDown: (options, error) => console.error(error),
|
||||
onConnectionUp: () => console.log("Client reconnected!")
|
||||
}
|
||||
}).then(() => {
|
||||
Object.defineProperty(Blazor.defaultReconnectionHandler, '_reconnectionDisplay', {
|
||||
get() {
|
||||
return this.__reconnectionDisplay;
|
||||
},
|
||||
set(value) {
|
||||
this.__reconnectionDisplay = {
|
||||
show: () => value.show(),
|
||||
update: (d) => value.update(d),
|
||||
rejected: (d) => document.location.reload()
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
+18
-40
@@ -1,10 +1,6 @@
|
||||
using Microsoft.AspNetCore.Authentication.Negotiate;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.AspNetCore.Components.Web;
|
||||
using Microsoft.AspNetCore.StaticFiles;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.FileProviders;
|
||||
using Microsoft.JSInterop;
|
||||
using MP.AppAuth.Services;
|
||||
using MP.Data.Services;
|
||||
using MP.SPEC.Components;
|
||||
@@ -12,7 +8,6 @@ using MP.SPEC.Data;
|
||||
using MP.SPEC.Services;
|
||||
using NLog;
|
||||
using NLog.Targets;
|
||||
using NLog.Targets.OpenTelemetryProtocol;
|
||||
using NLog.Web;
|
||||
using OpenTelemetry.Resources;
|
||||
using OpenTelemetry.Trace;
|
||||
@@ -21,14 +16,6 @@ using StackExchange.Redis;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
/*--------------------
|
||||
* Note migrazione startup.cs --> program.cs:
|
||||
*
|
||||
* - https://stackoverflow.com/questions/69722872/asp-net-core-6-how-to-access-ConfMan-during-startup
|
||||
* - https://docs.microsoft.com/en-us/aspnet/core/migration/50-to-60?view=aspnetcore-5.0&tabs=visual-studio#where-do-i-put-state-that-was-stored-as-fields-in-my-program-or-startup-class
|
||||
*
|
||||
* */
|
||||
|
||||
ConfigurationManager configuration = builder.Configuration;
|
||||
|
||||
var logger = LogManager.Setup()
|
||||
@@ -141,10 +128,13 @@ builder.Services.AddAuthorization(options =>
|
||||
options.FallbackPolicy = options.DefaultPolicy;
|
||||
});
|
||||
|
||||
// redis replliminare
|
||||
//setup Blazor
|
||||
builder.Services.AddRazorComponents()
|
||||
.AddInteractiveServerComponents();
|
||||
|
||||
// redis preliminare
|
||||
builder.Services.AddSingleton<IConnectionMultiplexer>(redisMultiplexer);
|
||||
builder.Services.AddRazorPages();
|
||||
builder.Services.AddServerSideBlazor();
|
||||
builder.Services.AddSingleton<MpDataService>();
|
||||
builder.Services.AddSingleton<ListSelectDataSrv>();
|
||||
builder.Services.AddSingleton<IOApiService>();
|
||||
@@ -153,20 +143,10 @@ builder.Services.AddScoped<MsgServiceSpec>();
|
||||
builder.Services.AddSingleton<SharedMemService>();
|
||||
builder.Services.AddSingleton<TabDataService>();
|
||||
builder.Services.AddSingleton<TabDataFeeder>();
|
||||
#if false
|
||||
builder.Services.AddBlazoredLocalStorage();
|
||||
builder.Services.AddBlazoredSessionStorage();
|
||||
#endif
|
||||
|
||||
// aggiunta helper local/session storage service
|
||||
builder.Services.AddScoped<ISessionStorageService, SessionStorageService>();
|
||||
builder.Services.AddScoped<ILocalStorageService, LocalStorageService>();
|
||||
//builder.Services.AddScoped<SessionStorageService>();
|
||||
//builder.Services.AddScoped<LocalStorageService>();
|
||||
//builder.Services.AddScoped<ISessionStorageService>(sp =>
|
||||
// new SessionStorageService(sp.GetRequiredService<IJSRuntime>()));
|
||||
//builder.Services.AddScoped<ILocalStorageService>(sp =>
|
||||
// new LocalStorageService(sp.GetRequiredService<IJSRuntime>()));
|
||||
|
||||
|
||||
|
||||
builder.Services.AddHttpClient();
|
||||
@@ -179,7 +159,9 @@ logger.Info("Build App");
|
||||
|
||||
|
||||
// aggiunt base URL x routing corretto
|
||||
app.UsePathBase(configuration.GetValue<string>("SpecialConf:AppUrl"));
|
||||
string baseUrl = configuration.GetValue<string>("SpecialConf:AppUrl") ?? "";
|
||||
app.UsePathBase(baseUrl);
|
||||
logger.Info($"BaseUrl: {baseUrl}");
|
||||
|
||||
// Configure the HTTP request pipeline.
|
||||
if (!app.Environment.IsDevelopment())
|
||||
@@ -193,6 +175,13 @@ app.UseHttpsRedirection();
|
||||
|
||||
app.UseStaticFiles();
|
||||
|
||||
app.UseRouting();
|
||||
|
||||
app.UseAuthentication();
|
||||
app.UseAuthorization();
|
||||
|
||||
app.UseAntiforgery();
|
||||
|
||||
// gestione static files: https://learn.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-8.0
|
||||
string BasePathOdlReturn = configuration.GetValue<string>("ServerConf:BasePathOdlReturn") ?? configuration.GetValue<string>("OptConf:BasePathOdlReturn") ?? "";
|
||||
if (!string.IsNullOrEmpty(BasePathOdlReturn))
|
||||
@@ -234,19 +223,8 @@ if (!string.IsNullOrEmpty(BasePathOdlReturn))
|
||||
}
|
||||
}
|
||||
|
||||
app.UseRouting();
|
||||
|
||||
app.UseAuthentication();
|
||||
app.UseAuthorization();
|
||||
|
||||
app.UseEndpoints(endpoints =>
|
||||
{
|
||||
endpoints.MapControllers();
|
||||
endpoints.MapBlazorHub();
|
||||
endpoints.MapFallbackToPage("/_Host");
|
||||
});
|
||||
//app.MapBlazorHub();
|
||||
//app.MapFallbackToPage("/_Host");
|
||||
app.MapRazorComponents<App>()
|
||||
.AddInteractiveServerRenderMode();
|
||||
|
||||
logger.Info("Run App");
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>Modulo MAPOSPEC </i>
|
||||
<h4>Versione: 8.16.2605.2616</h4>
|
||||
<h4>Versione: 8.16.2605.2617</h4>
|
||||
<br /> Note di rilascio:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
8.16.2605.2616
|
||||
8.16.2605.2617
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>8.16.2605.2616</version>
|
||||
<version>8.16.2605.2617</version>
|
||||
<url>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/MP.SPEC.zip</url>
|
||||
<changelog>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/ChangeLog.html</changelog>
|
||||
<mandatory>false</mandatory>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
@using System.Net.Http
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
@using Microsoft.AspNetCore.Components
|
||||
@using Microsoft.AspNetCore.Components.Authorization
|
||||
@using Microsoft.AspNetCore.Components.Forms
|
||||
@using Microsoft.AspNetCore.Components.Routing
|
||||
@@ -15,6 +16,7 @@
|
||||
@using MP.SPEC.Components
|
||||
@using MP.SPEC.Components.Chart
|
||||
@using MP.SPEC.Components.Fermate
|
||||
@using MP.SPEC.Components.Layout
|
||||
@using MP.SPEC.Components.ProdKit
|
||||
@using MP.SPEC.Components.Reparti
|
||||
@using EgwCoreLib.Razor
|
||||
@@ -81,7 +81,7 @@
|
||||
"maxChar4Scroll": 21
|
||||
},
|
||||
"SpecialConf": {
|
||||
"AppUrl": "/MP/SPEC",
|
||||
"AppUrl": "/MP/SPEC/",
|
||||
"CodApp": "MP-SPEC",
|
||||
"CodModulo": "MP-SPEC"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user