Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a4b01773ea | |||
| b076148e65 | |||
| 02369f87f7 | |||
| 4b04feedff | |||
| e99def8664 | |||
| a8744cfc56 | |||
| 03761b81ec | |||
| dd4f403b7a | |||
| c7d1ca046c | |||
| 2c3494f9f0 | |||
| 7dc0aef175 | |||
| e2afe6a586 | |||
| e3ed9a7f35 | |||
| db003d2bc3 | |||
| c203ab6eb3 | |||
| c10633b6f1 | |||
| a9fd0e2f83 | |||
| 112c73aea1 | |||
| 9e8e885ef9 | |||
| 1f964ded92 | |||
| eeba41cb5c |
@@ -30,7 +30,14 @@ namespace Egw.Core
|
|||||||
{
|
{
|
||||||
string passPhrase = string.Format("{0}|{1}", cliente.PadLeft(50, ':'), applicativo);
|
string passPhrase = string.Format("{0}|{1}", cliente.PadLeft(50, ':'), applicativo);
|
||||||
plainAuthKey = SteamCrypto.DecryptString(authKey, passPhrase); // uso combinazione cliente+applicativo come passphrase!
|
plainAuthKey = SteamCrypto.DecryptString(authKey, passPhrase); // uso combinazione cliente+applicativo come passphrase!
|
||||||
answ = Convert.ToDateTime(plainAuthKey.Replace(string.Format("{0}#{1}-", cliente, applicativo.PadLeft(20, '-')), "").Replace(string.Format("%{0}%", licenze), ""));
|
string datePart = plainAuthKey.Replace($"{cliente}#{applicativo.PadLeft(20, '-')}-", "").Replace($"%{licenze}%", "");
|
||||||
|
//string datePart = plainAuthKey.Replace(string.Format("{0}#{1}-", cliente, applicativo.PadLeft(20, '-')), "").Replace(string.Format("%{0}%", licenze), "");
|
||||||
|
// se non avesse "bonificato" la parte num licenze (es non corrisponde al max) forzo il trim
|
||||||
|
if (datePart.Contains("%"))
|
||||||
|
{
|
||||||
|
datePart = datePart.Substring(0, datePart.IndexOf("%"));
|
||||||
|
}
|
||||||
|
answ = Convert.ToDateTime(datePart);
|
||||||
}
|
}
|
||||||
catch (Exception exc)
|
catch (Exception exc)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ namespace MP.AppAuth.Controllers
|
|||||||
{
|
{
|
||||||
dbResult = localDbCtx
|
dbResult = localDbCtx
|
||||||
.DbSetAnagraficaGruppi
|
.DbSetAnagraficaGruppi
|
||||||
.Where(x => x.TipoGruppo == codTipo || x.SelEnabled)
|
.Where(x => x.TipoGruppo == codTipo)
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
return dbResult;
|
return dbResult;
|
||||||
|
|||||||
@@ -9,18 +9,18 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.10" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.6" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.10">
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.6">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="5.0.10" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.6" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.10" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.6" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.10">
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.6">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="NLog" Version="4.7.11" />
|
<PackageReference Include="NLog" Version="5.0.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -12,14 +12,14 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.6" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.4" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.6" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.4" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.6" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.4">
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.6">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="6.0.4" />
|
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="6.0.6" />
|
||||||
<PackageReference Include="NLog" Version="4.7.15" />
|
<PackageReference Include="NLog" Version="5.0.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
<RootNamespace>MP.Land</RootNamespace>
|
<RootNamespace>MP.Land</RootNamespace>
|
||||||
<Version>6.15.2207.0419</Version>
|
<Version>6.15.2207.0718</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -45,14 +45,14 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="DiffMatchPatch" Version="1.0.3" />
|
<PackageReference Include="DiffMatchPatch" Version="1.0.3" />
|
||||||
<PackageReference Include="Majorsoft.Blazor.Components.Debounce" Version="1.5.0" />
|
<PackageReference Include="Majorsoft.Blazor.Components.Debounce" Version="1.5.0" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.10">
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.6">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="5.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="6.0.6" />
|
||||||
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.2" />
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.6" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||||
<PackageReference Include="NLog.Web.AspNetCore" Version="4.14.0" />
|
<PackageReference Include="NLog.Web.AspNetCore" Version="5.0.0" />
|
||||||
<PackageReference Include="RestSharp" Version="107.1.2" />
|
<PackageReference Include="RestSharp" Version="107.1.2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@
|
|||||||
<b>@Applicazione</b>
|
<b>@Applicazione</b>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between @licenseCss">
|
||||||
<div class="px-2">
|
<div class="px-2">
|
||||||
<i class="fa fa-users" aria-hidden="true"></i> Licenze:
|
<i class="fa fa-users" aria-hidden="true"></i> Licenze:
|
||||||
</div>
|
</div>
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
<b>@($"{Scadenza:yyyy/MM/dd}")</b>
|
<b>@($"{Scadenza:yyyy/MM/dd}")</b>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between @licenseCss">
|
||||||
<div class="px-2">
|
<div class="px-2">
|
||||||
<i class="fa fa-key" aria-hidden="true"></i> Key
|
<i class="fa fa-key" aria-hidden="true"></i> Key
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -14,24 +14,27 @@ using Microsoft.JSInterop;
|
|||||||
using MP.Land;
|
using MP.Land;
|
||||||
using MP.Land.Shared;
|
using MP.Land.Shared;
|
||||||
using MP.Land.Data;
|
using MP.Land.Data;
|
||||||
|
using NLog;
|
||||||
|
|
||||||
namespace MP.Land.Pages
|
namespace MP.Land.Pages
|
||||||
{
|
{
|
||||||
public partial class About
|
public partial class About
|
||||||
{
|
{
|
||||||
protected string Titolo = "";
|
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
||||||
protected string Messaggio = "";
|
private string Titolo = "";
|
||||||
|
private string Messaggio = "";
|
||||||
|
|
||||||
protected string ServerStatus = "SrvState";
|
private string ServerStatus = "SrvState";
|
||||||
protected string Installazione = "Inst";
|
private string Installazione = "Inst";
|
||||||
protected string Applicazione = "App";
|
private string Applicazione = "App";
|
||||||
protected string Licenze = "#";
|
private string Licenze = "#";
|
||||||
protected DateTime Scadenza = DateTime.Today;
|
private DateTime Scadenza = DateTime.Today;
|
||||||
protected string MastKey = "########################";
|
private string MastKey = "########################";
|
||||||
|
|
||||||
protected string mainCss = "alert alert-info";
|
private string mainCss = "alert alert-info";
|
||||||
protected string remSrvCss = "bg-danger text-warning";
|
private string remSrvCss = "bg-warning text-secondary";
|
||||||
protected string expDateCss = "bg-danger text-warning";
|
private string expDateCss = "bg-warning text-secondary";
|
||||||
|
private string licenseCss = "bg-warning text-secondary";
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
@@ -45,24 +48,33 @@ namespace MP.Land.Pages
|
|||||||
int cDelay = 5;
|
int cDelay = 5;
|
||||||
// recupero dati
|
// recupero dati
|
||||||
await Task.Delay(cDelay);
|
await Task.Delay(cDelay);
|
||||||
LicServ.InitAkv();
|
try
|
||||||
Installazione = LicServ.Installazione;
|
{
|
||||||
Applicazione = LicServ.Applicazione;
|
LicServ.InitAkv();
|
||||||
MastKey = LicServ.MasterKey;
|
// verifico stati
|
||||||
await Task.Delay(cDelay);
|
ServerStatus = await LicServ.checkLimanServer();
|
||||||
var fatto = await LicServ.RefreshLicense();
|
Installazione = LicServ.Installazione;
|
||||||
await Task.Delay(cDelay);
|
Applicazione = LicServ.Applicazione;
|
||||||
Licenze = $"{LicServ.NumLicDb}/{LicServ.NumLicRemote}";
|
MastKey = LicServ.MasterKey;
|
||||||
// verifico stati
|
await Task.Delay(cDelay);
|
||||||
ServerStatus = await LicServ.checkLimanServer();
|
var fatto = await LicServ.RefreshLicense();
|
||||||
|
await Task.Delay(cDelay);
|
||||||
|
Licenze = $"{LicServ.NumLicDb}/{LicServ.NumLicRemote}";
|
||||||
|
licenseCss = "";
|
||||||
|
}
|
||||||
|
catch(Exception exc)
|
||||||
|
{
|
||||||
|
licenseCss = "bg-dark text-warning";
|
||||||
|
Log.Error($"Eccezione in reloadLicenseData:{Environment.NewLine}{exc}");
|
||||||
|
}
|
||||||
bool okRemoteSrv = ServerStatus == "OK";
|
bool okRemoteSrv = ServerStatus == "OK";
|
||||||
bool okScadenza = LicServ.checkLicenseActive(LicServ.MasterKey);
|
bool okScadenza = LicServ.checkLicenseActive(LicServ.MasterKey);
|
||||||
bool okNumLic = (LicServ.NumLicDb <= LicServ.NumLicRemote);
|
bool okNumLic = (LicServ.NumLicDb <= LicServ.NumLicRemote);
|
||||||
|
|
||||||
// aggiornamento css secondo status colore da check
|
// aggiornamento css secondo status colore da check
|
||||||
mainCss = okNumLic ? "alert alert-success shadowBox" : "alert alert-warning shadowBox";
|
mainCss = okNumLic ? "alert alert-success shadowBox" : "alert alert-warning shadowBox";
|
||||||
expDateCss = okScadenza ? "d-flex justify-content-between" : "d-flex justify-content-between bg-danger text-warning";
|
expDateCss = okScadenza ? "" : "bg-danger text-warning";
|
||||||
remSrvCss = okRemoteSrv ? "d-flex justify-content-between" : "d-flex justify-content-between bg-danger text-warning";
|
remSrvCss = okRemoteSrv ? "" : "bg-danger text-warning";
|
||||||
await Task.Delay(cDelay);
|
await Task.Delay(cDelay);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,11 +36,30 @@
|
|||||||
<a class="dismiss">🗙</a>
|
<a class="dismiss">🗙</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@* Riconnessione server app: https://www.syncfusion.com/faq/how-do-i-reconnect-blazor-server-side-automatically *@
|
@*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>
|
<script>
|
||||||
Blazor.defaultReconnectionHandler._reconnectCallback = function (d) {
|
//Blazor.start().then(() => {
|
||||||
document.location.reload();
|
// Blazor.defaultReconnectionHandler._reconnectionDisplay = {
|
||||||
}
|
// show: () => { },
|
||||||
|
// update: (d) => { },
|
||||||
|
// rejected: (d) => document.location.reload()
|
||||||
|
// };
|
||||||
|
//});
|
||||||
|
|
||||||
|
Blazor.start().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>
|
</script>
|
||||||
|
|
||||||
<!-- inside of body section and after the div/app tag -->
|
<!-- inside of body section and after the div/app tag -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<body>
|
<body>
|
||||||
<i>Modulo gestione Programmi MAPO</i>
|
<i>Modulo gestione Programmi MAPO</i>
|
||||||
<h4>Versione: 6.15.2207.0419</h4>
|
<h4>Versione: 6.15.2207.0718</h4>
|
||||||
<br />
|
<br />
|
||||||
Note di rilascio:
|
Note di rilascio:
|
||||||
<ul>
|
<ul>
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
6.15.2207.0419
|
6.15.2207.0718
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<item>
|
<item>
|
||||||
<version>6.15.2207.0419</version>
|
<version>6.15.2207.0718</version>
|
||||||
<url>https://nexus.steamware.net/repository/SWS/MP-LAND/stable/LAST/MP.Land.zip</url>
|
<url>https://nexus.steamware.net/repository/SWS/MP-LAND/stable/LAST/MP.Land.zip</url>
|
||||||
<changelog>https://nexus.steamware.net/repository/SWS/MP-LAND/stable/LAST/ChangeLog.html</changelog>
|
<changelog>https://nexus.steamware.net/repository/SWS/MP-LAND/stable/LAST/ChangeLog.html</changelog>
|
||||||
<mandatory>false</mandatory>
|
<mandatory>false</mandatory>
|
||||||
|
|||||||
@@ -18,8 +18,8 @@
|
|||||||
"Redis": "localhost:6379,defaultDatabase=1,keepAlive=180,asyncTimeout=5000"
|
"Redis": "localhost:6379,defaultDatabase=1,keepAlive=180,asyncTimeout=5000"
|
||||||
}
|
}
|
||||||
//"ConnectionStrings": {
|
//"ConnectionStrings": {
|
||||||
// "DefaultConnection": "Server=SQL2016PROD;Database=Valvital_MoonPro_Prod;Trusted_Connection=True;MultipleActiveResultSets=true",
|
// "DefaultConnection": "Server=SQL2016PROD;Database=Jetco_MoonPro_Prod;Trusted_Connection=True;MultipleActiveResultSets=true",
|
||||||
// "MP.Land": "Server=SQL2016PROD;Database=Valvital_MoonPro_Prod;User ID=sa;Password=keyhammer16;integrated security=False;MultipleActiveResultSets=True;App=MP.Land;",
|
// "MP.Land": "Server=SQL2016PROD;Database=Jetco_MoonPro_Prod;User ID=sa;Password=keyhammer16;integrated security=False;MultipleActiveResultSets=True;App=MP.Land;",
|
||||||
// "Redis": "localhost:6379,defaultDatabase=11,keepAlive=180,asyncTimeout=5000"
|
// "Redis": "localhost:6379,defaultDatabase=11,keepAlive=180,asyncTimeout=5000"
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
@@ -7,41 +7,3 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@code {
|
|
||||||
|
|
||||||
Version version = typeof(Program).Assembly.GetName().Version;
|
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
|
||||||
{
|
|
||||||
StartTimer();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Dispose()
|
|
||||||
{
|
|
||||||
aTimer.Stop();
|
|
||||||
aTimer.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static System.Timers.Timer aTimer;
|
|
||||||
|
|
||||||
public void StartTimer()
|
|
||||||
{
|
|
||||||
int tOutPeriod = 1000;
|
|
||||||
//int.TryParse(Configuration["ReloadStatusTimer"], out tOutPeriod);
|
|
||||||
aTimer = new System.Timers.Timer(tOutPeriod);
|
|
||||||
aTimer.Elapsed += ElapsedTimer;
|
|
||||||
aTimer.Enabled = true;
|
|
||||||
aTimer.Start();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ElapsedTimer(Object source, System.Timers.ElapsedEventArgs e)
|
|
||||||
{
|
|
||||||
var pUpd = Task.Run(async () =>
|
|
||||||
{
|
|
||||||
//await ReloadData();
|
|
||||||
await Task.Delay(1);
|
|
||||||
await InvokeAsync(StateHasChanged);
|
|
||||||
});
|
|
||||||
pUpd.Wait();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
namespace MP.Mon.Components
|
||||||
|
{
|
||||||
|
public partial class CmpFooter
|
||||||
|
{
|
||||||
|
#region Public Methods
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
aTimer.Stop();
|
||||||
|
aTimer.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ElapsedTimer(object? source, System.Timers.ElapsedEventArgs e)
|
||||||
|
{
|
||||||
|
var pUpd = Task.Run(async () =>
|
||||||
|
{
|
||||||
|
//await ReloadData();
|
||||||
|
await Task.Delay(1);
|
||||||
|
await InvokeAsync(StateHasChanged);
|
||||||
|
});
|
||||||
|
pUpd.Wait();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StartTimer()
|
||||||
|
{
|
||||||
|
int tOutPeriod = 1000;
|
||||||
|
//int.TryParse(Configuration["ReloadStatusTimer"], out tOutPeriod);
|
||||||
|
aTimer = new System.Timers.Timer(tOutPeriod);
|
||||||
|
aTimer.Elapsed += ElapsedTimer;
|
||||||
|
aTimer.Enabled = true;
|
||||||
|
aTimer.Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Public Methods
|
||||||
|
|
||||||
|
#region Protected Methods
|
||||||
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
var currAssembly = typeof(Program).Assembly.GetName();
|
||||||
|
version = currAssembly.Version != null ? currAssembly.Version : new Version();
|
||||||
|
StartTimer();
|
||||||
|
await Task.Delay(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Protected Methods
|
||||||
|
|
||||||
|
#region Private Fields
|
||||||
|
|
||||||
|
private static System.Timers.Timer aTimer = null!;
|
||||||
|
private Version version = null!;
|
||||||
|
|
||||||
|
#endregion Private Fields
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
{
|
{
|
||||||
<div class="d-flex justify-content-between pt-0 pb-2 px-1 fontSmall">
|
<div class="d-flex justify-content-between pt-0 pb-2 px-1 fontSmall">
|
||||||
<div class="px-1 text-uppercase"><b>@CurrRecord.DescrizioneStato</b></div>
|
<div class="px-1 text-uppercase"><b>@CurrRecord.DescrizioneStato</b></div>
|
||||||
<div class="px-1 ps-0">@getMinSec((decimal)CurrRecord.Durata)</div>
|
<div class="px-1 ps-0">@getMinSec(getDecimal(@CurrRecord.Durata))</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
@if (hasRow(3))
|
@if (hasRow(3))
|
||||||
|
|||||||
@@ -1,39 +1,12 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Microsoft.AspNetCore.Components;
|
using Microsoft.AspNetCore.Components;
|
||||||
using System.Net.Http;
|
|
||||||
using Microsoft.AspNetCore.Authorization;
|
|
||||||
using Microsoft.AspNetCore.Components.Authorization;
|
|
||||||
using Microsoft.AspNetCore.Components.Forms;
|
|
||||||
using Microsoft.AspNetCore.Components.Routing;
|
|
||||||
using Microsoft.AspNetCore.Components.Web;
|
|
||||||
using Microsoft.AspNetCore.Components.Web.Virtualization;
|
|
||||||
using Microsoft.JSInterop;
|
|
||||||
using MP.Mon;
|
|
||||||
using MP.Mon.Shared;
|
|
||||||
using MP.Mon.Components;
|
|
||||||
using MP.Data.DatabaseModels;
|
|
||||||
using MP.Data.Conf;
|
using MP.Data.Conf;
|
||||||
|
using MP.Data.DatabaseModels;
|
||||||
|
using NLog;
|
||||||
|
|
||||||
namespace MP.Mon.Components
|
namespace MP.Mon.Components
|
||||||
{
|
{
|
||||||
public partial class DetailMSE
|
public partial class DetailMSE
|
||||||
{
|
{
|
||||||
#region Protected Fields
|
|
||||||
|
|
||||||
protected string baseCss = "sem";
|
|
||||||
protected int kaFactor = 60 / 2;
|
|
||||||
|
|
||||||
#endregion Protected Fields
|
|
||||||
|
|
||||||
#region Private Fields
|
|
||||||
|
|
||||||
private static System.Timers.Timer aTimer = new System.Timers.Timer(60 * 1000);
|
|
||||||
|
|
||||||
#endregion Private Fields
|
|
||||||
|
|
||||||
#region Public Properties
|
#region Public Properties
|
||||||
|
|
||||||
[Parameter]
|
[Parameter]
|
||||||
@@ -56,6 +29,80 @@ namespace MP.Mon.Components
|
|||||||
|
|
||||||
#endregion Public Properties
|
#endregion Public Properties
|
||||||
|
|
||||||
|
#region Public Methods
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
aTimer.Stop();
|
||||||
|
aTimer.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ElapsedTimer(object? source, System.Timers.ElapsedEventArgs e)
|
||||||
|
{
|
||||||
|
var pUpd = Task.Run(async () =>
|
||||||
|
{
|
||||||
|
Log.Trace($"Elapsed Timer {CurrRecord?.CodMacchina}");
|
||||||
|
await Task.Delay(1);
|
||||||
|
await InvokeAsync(StateHasChanged);
|
||||||
|
});
|
||||||
|
pUpd.Wait();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StartTimer()
|
||||||
|
{
|
||||||
|
int tOutPeriod = 1000;
|
||||||
|
//int.TryParse(Configuration["ReloadStatusTimer"], out tOutPeriod);
|
||||||
|
aTimer = new System.Timers.Timer(tOutPeriod);
|
||||||
|
aTimer.Elapsed += ElapsedTimer;
|
||||||
|
aTimer.Enabled = true;
|
||||||
|
aTimer.Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Public Methods
|
||||||
|
|
||||||
|
#region Protected Fields
|
||||||
|
|
||||||
|
protected string baseCss = "sem";
|
||||||
|
protected int kaFactor = 60 / 2;
|
||||||
|
|
||||||
|
#endregion Protected Fields
|
||||||
|
|
||||||
|
#region Protected Properties
|
||||||
|
|
||||||
|
protected string codIOB
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
string answ = "";
|
||||||
|
if (CurrRecord != null)
|
||||||
|
{
|
||||||
|
answ = CurrRecord.IdxMacchina;
|
||||||
|
}
|
||||||
|
return answ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected bool dataLoaded { get; set; } = false;
|
||||||
|
|
||||||
|
#endregion Protected Properties
|
||||||
|
|
||||||
|
#region Protected Methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// restituisce il valore data la tagLocation
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="tagLocation"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
protected string currVal(string tagLocation)
|
||||||
|
{
|
||||||
|
string answ = "";
|
||||||
|
if (currTagVal.ContainsKey(tagLocation))
|
||||||
|
{
|
||||||
|
answ = currTagVal[tagLocation];
|
||||||
|
}
|
||||||
|
return answ;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Verifica se ci sia un override per la riga indicata
|
/// Verifica se ci sia un override per la riga indicata
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -75,6 +122,15 @@ namespace MP.Mon.Components
|
|||||||
return answ;
|
return answ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
StartTimer();
|
||||||
|
Random rnd = new Random();
|
||||||
|
await Task.Delay(rnd.Next(5));
|
||||||
|
setupConf();
|
||||||
|
dataLoaded = true;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Restituisce (se presenti) valori di override per la riga indicata
|
/// Restituisce (se presenti) valori di override per la riga indicata
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -98,83 +154,15 @@ namespace MP.Mon.Components
|
|||||||
return rowVals;
|
return rowVals;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// restituisce il valore data la tagLocation
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="tagLocation"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
protected string currVal(string tagLocation)
|
|
||||||
{
|
|
||||||
string answ = "";
|
|
||||||
if (currTagVal.ContainsKey(tagLocation))
|
|
||||||
{
|
|
||||||
answ = currTagVal[tagLocation];
|
|
||||||
}
|
|
||||||
return answ;
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Protected Properties
|
|
||||||
|
|
||||||
protected string codIOB
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
string answ = "";
|
|
||||||
if (CurrRecord != null)
|
|
||||||
{
|
|
||||||
answ = CurrRecord.IdxMacchina;
|
|
||||||
}
|
|
||||||
return answ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected bool dataLoaded { get; set; } = false;
|
|
||||||
|
|
||||||
#endregion Protected Properties
|
|
||||||
|
|
||||||
#region Public Methods
|
|
||||||
|
|
||||||
public void Dispose()
|
|
||||||
{
|
|
||||||
aTimer.Stop();
|
|
||||||
aTimer.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ElapsedTimer(Object source, System.Timers.ElapsedEventArgs e)
|
|
||||||
{
|
|
||||||
var pUpd = Task.Run(async () =>
|
|
||||||
{
|
|
||||||
await Task.Delay(1);
|
|
||||||
await InvokeAsync(StateHasChanged);
|
|
||||||
});
|
|
||||||
pUpd.Wait();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void StartTimer()
|
|
||||||
{
|
|
||||||
int tOutPeriod = 1000;
|
|
||||||
//int.TryParse(Configuration["ReloadStatusTimer"], out tOutPeriod);
|
|
||||||
aTimer = new System.Timers.Timer(tOutPeriod);
|
|
||||||
aTimer.Elapsed += ElapsedTimer;
|
|
||||||
aTimer.Enabled = true;
|
|
||||||
aTimer.Start();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Public Methods
|
|
||||||
|
|
||||||
#region Protected Methods
|
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
|
||||||
{
|
|
||||||
StartTimer();
|
|
||||||
Random rnd = new Random();
|
|
||||||
//await Task.Delay(rnd.Next(500));
|
|
||||||
dataLoaded = true;
|
|
||||||
setupConf();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Protected Methods
|
#endregion Protected Methods
|
||||||
|
|
||||||
|
#region Private Fields
|
||||||
|
|
||||||
|
private static System.Timers.Timer aTimer { get; set; } = null!;
|
||||||
|
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
||||||
|
|
||||||
|
#endregion Private Fields
|
||||||
|
|
||||||
#region Private Methods
|
#region Private Methods
|
||||||
|
|
||||||
private string cssComStatus(string semaforo, DateTime? lastUpdateN)
|
private string cssComStatus(string semaforo, DateTime? lastUpdateN)
|
||||||
@@ -219,13 +207,24 @@ namespace MP.Mon.Components
|
|||||||
return answ;
|
return answ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private decimal getDecimal(object? rawData)
|
||||||
|
{
|
||||||
|
decimal answ = 0;
|
||||||
|
if (rawData != null)
|
||||||
|
{
|
||||||
|
decimal.TryParse($"{rawData}", out answ);
|
||||||
|
}
|
||||||
|
return answ;
|
||||||
|
}
|
||||||
|
|
||||||
private string getMinSec(decimal? currTimeMin)
|
private string getMinSec(decimal? currTimeMin)
|
||||||
{
|
{
|
||||||
string answ = "nd";
|
string answ = "nd";
|
||||||
TimeSpan tSpan = new TimeSpan(0);
|
TimeSpan tSpan = new TimeSpan(0);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
tSpan = TimeSpan.FromMinutes((double)currTimeMin);
|
double cTimeMin = currTimeMin != null ? (double)currTimeMin : 0;
|
||||||
|
tSpan = TimeSpan.FromMinutes(cTimeMin);
|
||||||
answ = $"{tSpan:mm}:{tSpan:ss}";
|
answ = $"{tSpan:mm}:{tSpan:ss}";
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
|
|||||||
@@ -1,90 +1,5 @@
|
|||||||
{
|
{
|
||||||
"IobSetup": {
|
"IobSetup": {
|
||||||
"***": [
|
"***": []
|
||||||
{
|
|
||||||
"ColNum": 1,
|
|
||||||
"RowNum": 5,
|
|
||||||
"TagCss": "fontSmall",
|
|
||||||
"TagName": "Feed Over",
|
|
||||||
"TagLocation": "MoonPro:SQL2016DEV:MoonPro:FLOG:***:FEED_OVER"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ColNum": 2,
|
|
||||||
"RowNum": 5,
|
|
||||||
"TagCss": "fontSmall",
|
|
||||||
"TagName": "Rapid Over",
|
|
||||||
"TagLocation": "MoonPro:SQL2016DEV:MoonPro:FLOG:***:RAPID_OVER"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"SIMUL_01": [
|
|
||||||
{
|
|
||||||
"ColNum": 1,
|
|
||||||
"RowNum": 6,
|
|
||||||
"TagCss": "fontSmall",
|
|
||||||
"TagName": "Power",
|
|
||||||
"TagLocation": "MoonPro:SQL2016DEV:MoonPro:FLOG:SIMUL_01:POWER_01"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"SIMUL_02": [
|
|
||||||
{
|
|
||||||
"ColNum": 1,
|
|
||||||
"RowNum": 6,
|
|
||||||
"TagCss": "fontSmall",
|
|
||||||
"TagName": "Power",
|
|
||||||
"TagLocation": "MoonPro:SQL2016DEV:MoonPro:FLOG:SIMUL_02:POWER_01"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"GIACO_ICOEL_001": [
|
|
||||||
{
|
|
||||||
"ColNum": 1,
|
|
||||||
"RowNum": 1,
|
|
||||||
"TagName": "Vel",
|
|
||||||
"TagLocation": "FluxData:TonnOra"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ColNum": 2,
|
|
||||||
"RowNum": 1,
|
|
||||||
"TagName": "Vel",
|
|
||||||
"TagLocation": "FluxData:PezziMin"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ColNum": 1,
|
|
||||||
"RowNum": 2,
|
|
||||||
"TagName": "Batch SX",
|
|
||||||
"TagLocation": "FluxData:BatchL1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ColNum": 2,
|
|
||||||
"RowNum": 2,
|
|
||||||
"TagName": "Batch DX",
|
|
||||||
"TagLocation": "FluxData:BatchL2"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"GIACO_ICOEL_002": [
|
|
||||||
{
|
|
||||||
"ColNum": 1,
|
|
||||||
"RowNum": 1,
|
|
||||||
"TagName": "Vel",
|
|
||||||
"TagLocation": "FluxData:TonnOra"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ColNum": 2,
|
|
||||||
"RowNum": 1,
|
|
||||||
"TagName": "Vel",
|
|
||||||
"TagLocation": "FluxData:PezziMin"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ColNum": 1,
|
|
||||||
"RowNum": 2,
|
|
||||||
"TagName": "Batch SX",
|
|
||||||
"TagLocation": "FluxData:BatchL1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ColNum": 2,
|
|
||||||
"RowNum": 2,
|
|
||||||
"TagName": "Batch DX",
|
|
||||||
"TagLocation": "FluxData:BatchL2"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,90 @@
|
|||||||
|
{
|
||||||
|
"IobSetup": {
|
||||||
|
"***": [
|
||||||
|
{
|
||||||
|
"ColNum": 1,
|
||||||
|
"RowNum": 5,
|
||||||
|
"TagCss": "fontSmall",
|
||||||
|
"TagName": "Feed Over",
|
||||||
|
"TagLocation": "MoonPro:SQL2016DEV:MoonPro:FLOG:***:FEED_OVER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ColNum": 2,
|
||||||
|
"RowNum": 5,
|
||||||
|
"TagCss": "fontSmall",
|
||||||
|
"TagName": "Rapid Over",
|
||||||
|
"TagLocation": "MoonPro:SQL2016DEV:MoonPro:FLOG:***:RAPID_OVER"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"SIMUL_01": [
|
||||||
|
{
|
||||||
|
"ColNum": 1,
|
||||||
|
"RowNum": 6,
|
||||||
|
"TagCss": "fontSmall",
|
||||||
|
"TagName": "Power",
|
||||||
|
"TagLocation": "MoonPro:SQL2016DEV:MoonPro:FLOG:SIMUL_01:POWER_01"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"SIMUL_02": [
|
||||||
|
{
|
||||||
|
"ColNum": 1,
|
||||||
|
"RowNum": 6,
|
||||||
|
"TagCss": "fontSmall",
|
||||||
|
"TagName": "Power",
|
||||||
|
"TagLocation": "MoonPro:SQL2016DEV:MoonPro:FLOG:SIMUL_02:POWER_01"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"GIACO_ICOEL_001": [
|
||||||
|
{
|
||||||
|
"ColNum": 1,
|
||||||
|
"RowNum": 1,
|
||||||
|
"TagName": "Vel",
|
||||||
|
"TagLocation": "FluxData:TonnOra"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ColNum": 2,
|
||||||
|
"RowNum": 1,
|
||||||
|
"TagName": "Vel",
|
||||||
|
"TagLocation": "FluxData:PezziMin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ColNum": 1,
|
||||||
|
"RowNum": 2,
|
||||||
|
"TagName": "Batch SX",
|
||||||
|
"TagLocation": "FluxData:BatchL1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ColNum": 2,
|
||||||
|
"RowNum": 2,
|
||||||
|
"TagName": "Batch DX",
|
||||||
|
"TagLocation": "FluxData:BatchL2"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"GIACO_ICOEL_002": [
|
||||||
|
{
|
||||||
|
"ColNum": 1,
|
||||||
|
"RowNum": 1,
|
||||||
|
"TagName": "Vel",
|
||||||
|
"TagLocation": "FluxData:TonnOra"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ColNum": 2,
|
||||||
|
"RowNum": 1,
|
||||||
|
"TagName": "Vel",
|
||||||
|
"TagLocation": "FluxData:PezziMin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ColNum": 1,
|
||||||
|
"RowNum": 2,
|
||||||
|
"TagName": "Batch SX",
|
||||||
|
"TagLocation": "FluxData:BatchL1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ColNum": 2,
|
||||||
|
"RowNum": 2,
|
||||||
|
"TagName": "Batch DX",
|
||||||
|
"TagLocation": "FluxData:BatchL2"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,14 +11,14 @@ namespace MP.Mon.Data
|
|||||||
{
|
{
|
||||||
#region Public Fields
|
#region Public Fields
|
||||||
|
|
||||||
public static MP.Data.Controllers.MpMonController dbController;
|
public static MP.Data.Controllers.MpMonController dbController { get; set; } = null!;
|
||||||
|
|
||||||
#endregion Public Fields
|
#endregion Public Fields
|
||||||
|
|
||||||
#region Private Fields
|
#region Private Fields
|
||||||
|
|
||||||
private static IConfiguration _configuration;
|
private static IConfiguration _configuration = null!;
|
||||||
private static ILogger<MpDataService> _logger;
|
private static ILogger<MpDataService> _logger = null!;
|
||||||
|
|
||||||
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
||||||
|
|
||||||
@@ -100,10 +100,10 @@ namespace MP.Mon.Data
|
|||||||
{
|
{
|
||||||
string outVal = "";
|
string outVal = "";
|
||||||
// cerco in REDIS la conf x l'IOB
|
// cerco in REDIS la conf x l'IOB
|
||||||
string rawData = redisDb.StringGet(redKey);
|
var rawData = redisDb.StringGet(redKey);
|
||||||
if (!string.IsNullOrEmpty(rawData))
|
if (!string.IsNullOrEmpty(rawData))
|
||||||
{
|
{
|
||||||
outVal = rawData;
|
outVal = $"{rawData}";
|
||||||
}
|
}
|
||||||
return outVal;
|
return outVal;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Version>6.15.2206.616</Version>
|
<Version>6.15.2207.810</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -30,14 +30,20 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||||
<PackageReference Include="NLog" Version="4.7.15" />
|
<PackageReference Include="NLog" Version="5.0.1" />
|
||||||
<PackageReference Include="StackExchange.Redis" Version="2.5.61" />
|
<PackageReference Include="StackExchange.Redis" Version="2.6.48" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\MP.Data\MP.Data.csproj" />
|
<ProjectReference Include="..\MP.Data\MP.Data.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Update="Conf\iobTagsConf.office.json">
|
||||||
|
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Update="logs\.placeholder">
|
<None Update="logs\.placeholder">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
|||||||
+1
-1
@@ -29,7 +29,7 @@
|
|||||||
layout="${longdate} ${uppercase:${level}} ${message}" />
|
layout="${longdate} ${uppercase:${level}} ${message}" />
|
||||||
-->
|
-->
|
||||||
<target xsi:type="File" name="fileTarget" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} | ${uppercase:${level}} | ${logger:shortName=false} | ${message}" />
|
<target xsi:type="File" name="fileTarget" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} | ${uppercase:${level}} | ${logger:shortName=false} | ${message}" />
|
||||||
<target xsi:type="ColoredConsole" name="consoleTarget" layout="${longdate} | ${uppercase:${level}} | ${logger:shortName=true}| ${message}" />
|
<target xsi:type="ColoredConsole" name="consoleTarget" layout="${longdate} | ${uppercase:${level}} | ${logger:shortName=true} | ${message}" />
|
||||||
</targets>
|
</targets>
|
||||||
|
|
||||||
<rules>
|
<rules>
|
||||||
|
|||||||
@@ -59,20 +59,23 @@ namespace MP.Mon.Pages
|
|||||||
slowTimer.Dispose();
|
slowTimer.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ElapsedFastTimer(Object source, System.Timers.ElapsedEventArgs e)
|
public void ElapsedFastTimer(object? source, System.Timers.ElapsedEventArgs e)
|
||||||
{
|
{
|
||||||
var pUpd = Task.Run(async () =>
|
var pUpd = Task.Run(async () =>
|
||||||
{
|
{
|
||||||
await ReloadData();
|
await ReloadData();
|
||||||
//await Task.Delay(1);
|
await Task.Delay(1);
|
||||||
|
Log.Trace("Elapsed Fast Timer");
|
||||||
await InvokeAsync(StateHasChanged);
|
await InvokeAsync(StateHasChanged);
|
||||||
});
|
});
|
||||||
pUpd.Wait();
|
pUpd.Wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async void ElapsedSlowTimer(Object source, System.Timers.ElapsedEventArgs e)
|
public async void ElapsedSlowTimer(object? source, System.Timers.ElapsedEventArgs e)
|
||||||
{
|
{
|
||||||
ListMSE = null;
|
ListMSE = null;
|
||||||
|
await Task.Delay(1);
|
||||||
|
Log.Trace("Elapsed Slow Timer");
|
||||||
NavManager.NavigateTo(NavManager.Uri);
|
NavManager.NavigateTo(NavManager.Uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -187,7 +190,21 @@ namespace MP.Mon.Pages
|
|||||||
|
|
||||||
private async Task ReloadData()
|
private async Task ReloadData()
|
||||||
{
|
{
|
||||||
ListMSE = await MMDataService.MseGetAll();
|
// hack: legge 4 volte i dati x stressare sistema
|
||||||
|
bool stressTest = false;
|
||||||
|
if (stressTest)
|
||||||
|
{
|
||||||
|
var singleData = await MMDataService.MseGetAll();
|
||||||
|
ListMSE = singleData.ToList();
|
||||||
|
for (int i = 0; i < 3; i++)
|
||||||
|
{
|
||||||
|
ListMSE.AddRange(singleData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ListMSE = await MMDataService.MseGetAll();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task setupConf()
|
private async Task setupConf()
|
||||||
|
|||||||
@@ -5,4 +5,4 @@
|
|||||||
Layout = "_Layout";
|
Layout = "_Layout";
|
||||||
}
|
}
|
||||||
|
|
||||||
<component type="typeof(App)" render-mode="ServerPrerendered" />
|
<component type="typeof(App)" render-mode="Server" />
|
||||||
@@ -28,11 +28,30 @@
|
|||||||
<a class="dismiss">🗙</a>
|
<a class="dismiss">🗙</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@* Riconnessione server app: https://www.syncfusion.com/faq/how-do-i-reconnect-blazor-server-side-automatically *@
|
@*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>
|
<script>
|
||||||
Blazor.defaultReconnectionHandler._reconnectCallback = function (d) {
|
//Blazor.start().then(() => {
|
||||||
document.location.reload();
|
// Blazor.defaultReconnectionHandler._reconnectionDisplay = {
|
||||||
}
|
// show: () => { },
|
||||||
|
// update: (d) => { },
|
||||||
|
// rejected: (d) => document.location.reload()
|
||||||
|
// };
|
||||||
|
//});
|
||||||
|
|
||||||
|
Blazor.start().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>
|
</script>
|
||||||
|
|
||||||
<script src="_framework/blazor.server.js"></script>
|
<script src="_framework/blazor.server.js"></script>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<body>
|
<body>
|
||||||
<i>Modulo MON MAPO</i>
|
<i>Modulo MON MAPO</i>
|
||||||
<h4>Versione: 6.15.2206.616</h4>
|
<h4>Versione: 6.15.2207.810</h4>
|
||||||
<br /> Note di rilascio:
|
<br /> Note di rilascio:
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
6.15.2206.616
|
6.15.2207.810
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<item>
|
<item>
|
||||||
<version>6.15.2206.616</version>
|
<version>6.15.2207.810</version>
|
||||||
<url>https://nexus.steamware.net/repository/SWS/MP-MON/stable/LAST/MP.Mon.zip</url>
|
<url>https://nexus.steamware.net/repository/SWS/MP-MON/stable/LAST/MP.Mon.zip</url>
|
||||||
<changelog>https://nexus.steamware.net/repository/SWS/MP-MON/stable/LAST/ChangeLog.html</changelog>
|
<changelog>https://nexus.steamware.net/repository/SWS/MP-MON/stable/LAST/ChangeLog.html</changelog>
|
||||||
<mandatory>false</mandatory>
|
<mandatory>false</mandatory>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
<RootNamespace>MP.Stats</RootNamespace>
|
<RootNamespace>MP.Stats</RootNamespace>
|
||||||
<UserSecretsId>826e877c-ba70-4253-84cb-d0b1cafd4440</UserSecretsId>
|
<UserSecretsId>826e877c-ba70-4253-84cb-d0b1cafd4440</UserSecretsId>
|
||||||
<Version>6.15.2205.2311</Version>
|
<Version>6.15.2207.0718</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -185,12 +185,12 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="ElmahCore" Version="2.1.1" />
|
<PackageReference Include="ElmahCore" Version="2.1.2" />
|
||||||
<PackageReference Include="ElmahCore.Common" Version="2.1.1" />
|
<PackageReference Include="ElmahCore.Common" Version="2.1.2" />
|
||||||
<PackageReference Include="ElmahCore.Sql" Version="2.1.1" />
|
<PackageReference Include="ElmahCore.Sql" Version="2.1.2" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="6.0.4" />
|
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="6.0.6" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||||
<PackageReference Include="NLog.Web.AspNetCore" Version="4.14.0" />
|
<PackageReference Include="NLog.Web.AspNetCore" Version="5.0.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -110,6 +110,7 @@ namespace MP.Stats.Pages
|
|||||||
;
|
;
|
||||||
private async Task HandleRedraw()
|
private async Task HandleRedraw()
|
||||||
{
|
{
|
||||||
|
await Task.Delay(1);
|
||||||
// calcolo hist frequenza con EFCore: https://entityframeworkcore.com/knowledge-base/60871048/group-by-and-to-dictionary-in-ef-core-3-1
|
// calcolo hist frequenza con EFCore: https://entityframeworkcore.com/knowledge-base/60871048/group-by-and-to-dictionary-in-ef-core-3-1
|
||||||
randData = RandomizeData();
|
randData = RandomizeData();
|
||||||
//var histDict = randData.GroupBy(r => r).Select(g => new
|
//var histDict = randData.GroupBy(r => r).Select(g => new
|
||||||
|
|||||||
@@ -33,11 +33,30 @@
|
|||||||
<a class="dismiss">🗙</a>
|
<a class="dismiss">🗙</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@* Riconnessione server app: https://www.syncfusion.com/faq/how-do-i-reconnect-blazor-server-side-automatically *@
|
@*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>
|
<script>
|
||||||
Blazor.defaultReconnectionHandler._reconnectCallback = function (d) {
|
//Blazor.start().then(() => {
|
||||||
document.location.reload();
|
// Blazor.defaultReconnectionHandler._reconnectionDisplay = {
|
||||||
}
|
// show: () => { },
|
||||||
|
// update: (d) => { },
|
||||||
|
// rejected: (d) => document.location.reload()
|
||||||
|
// };
|
||||||
|
//});
|
||||||
|
|
||||||
|
Blazor.start().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>
|
</script>
|
||||||
|
|
||||||
<script src="_framework/blazor.server.js"></script>
|
<script src="_framework/blazor.server.js"></script>
|
||||||
|
|||||||
@@ -7,6 +7,6 @@ by editing this MSBuild file. In order to learn more about this please visit htt
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TimeStampOfAssociatedLegacyPublishXmlFile />
|
<TimeStampOfAssociatedLegacyPublishXmlFile />
|
||||||
<EncryptedPassword>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA+11nhJeDSkeTlSej+COD3AAAAAACAAAAAAADZgAAwAAAABAAAACFCXZ0UR7Czo59aaRCHU5QAAAAAASAAACgAAAAEAAAACYlKt9E6s77uEikpKwyhdQYAAAAUwae989LovFbsfjRp69HCVpyUQZbqLyYFAAAAMW8mLSAxWmKaOvB4nkDgUpS27/b</EncryptedPassword>
|
<EncryptedPassword>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA+11nhJeDSkeTlSej+COD3AAAAAACAAAAAAADZgAAwAAAABAAAACFCXZ0UR7Czo59aaRCHU5QAAAAAASAAACgAAAAEAAAACYlKt9E6s77uEikpKwyhdQYAAAAUwae989LovFbsfjRp69HCVpyUQZbqLyYFAAAAMW8mLSAxWmKaOvB4nkDgUpS27/b</EncryptedPassword>
|
||||||
<History>True|2022-02-26T17:24:32.0833123Z;False|2022-02-26T18:24:15.3994092+01:00;False|2022-02-26T18:23:44.8358586+01:00;True|2021-05-26T19:49:30.0427896+02:00;False|2021-05-26T19:49:14.9065510+02:00;True|2021-05-25T17:48:33.3901785+02:00;True|2021-05-25T17:46:09.2063020+02:00;True|2021-05-25T17:42:47.8167539+02:00;True|2021-05-25T17:22:03.1877438+02:00;True|2021-05-25T17:21:05.1565775+02:00;True|2021-05-25T16:26:34.1426996+02:00;True|2021-05-25T16:14:28.2842402+02:00;True|2021-05-25T15:02:11.7131495+02:00;</History>
|
<History>True|2022-07-05T08:07:03.1380003Z;True|2022-02-26T18:24:32.0833123+01:00;False|2022-02-26T18:24:15.3994092+01:00;False|2022-02-26T18:23:44.8358586+01:00;True|2021-05-26T19:49:30.0427896+02:00;False|2021-05-26T19:49:14.9065510+02:00;True|2021-05-25T17:48:33.3901785+02:00;True|2021-05-25T17:46:09.2063020+02:00;True|2021-05-25T17:42:47.8167539+02:00;True|2021-05-25T17:22:03.1877438+02:00;True|2021-05-25T17:21:05.1565775+02:00;True|2021-05-25T16:26:34.1426996+02:00;True|2021-05-25T16:14:28.2842402+02:00;True|2021-05-25T15:02:11.7131495+02:00;</History>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -7,6 +7,6 @@ by editing this MSBuild file. In order to learn more about this please visit htt
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TimeStampOfAssociatedLegacyPublishXmlFile />
|
<TimeStampOfAssociatedLegacyPublishXmlFile />
|
||||||
<EncryptedPassword>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA+11nhJeDSkeTlSej+COD3AAAAAACAAAAAAADZgAAwAAAABAAAAB3zVMW24A4himhWJ5CNqgeAAAAAASAAACgAAAAEAAAAA7IL1n8zHn2/ljDNL4/zlsYAAAAgAEg9RYKHV0xl3wnafZiN9Q954GOBAvdFAAAACSBJkwDndNTiIrUuk7zJls84fN1</EncryptedPassword>
|
<EncryptedPassword>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA+11nhJeDSkeTlSej+COD3AAAAAACAAAAAAADZgAAwAAAABAAAAB3zVMW24A4himhWJ5CNqgeAAAAAASAAACgAAAAEAAAAA7IL1n8zHn2/ljDNL4/zlsYAAAAgAEg9RYKHV0xl3wnafZiN9Q954GOBAvdFAAAACSBJkwDndNTiIrUuk7zJls84fN1</EncryptedPassword>
|
||||||
<History>True|2022-02-26T17:24:42.6534875Z;True|2021-05-26T19:49:44.3836006+02:00;</History>
|
<History>True|2022-07-05T08:06:48.2207580Z;True|2022-02-26T18:24:42.6534875+01:00;True|2021-05-26T19:49:44.3836006+02:00;</History>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<body>
|
<body>
|
||||||
<i>Modulo statistiche MAPO</i>
|
<i>Modulo statistiche MAPO</i>
|
||||||
<h4>Versione: 6.15.2205.2311</h4>
|
<h4>Versione: 6.15.2207.0718</h4>
|
||||||
<br />
|
<br />
|
||||||
Note di rilascio:
|
Note di rilascio:
|
||||||
<ul>
|
<ul>
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
6.15.2205.2311
|
6.15.2207.0718
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<item>
|
<item>
|
||||||
<version>6.15.2205.2311</version>
|
<version>6.15.2207.0718</version>
|
||||||
<url>https://nexus.steamware.net/repository/SWS/MP-STATS/stable/LAST/MP.Stats.zip</url>
|
<url>https://nexus.steamware.net/repository/SWS/MP-STATS/stable/LAST/MP.Stats.zip</url>
|
||||||
<changelog>https://nexus.steamware.net/repository/SWS/MP-STATS/stable/LAST/ChangeLog.html</changelog>
|
<changelog>https://nexus.steamware.net/repository/SWS/MP-STATS/stable/LAST/ChangeLog.html</changelog>
|
||||||
<mandatory>false</mandatory>
|
<mandatory>false</mandatory>
|
||||||
|
|||||||
Reference in New Issue
Block a user