fix calcolo ip

This commit is contained in:
zaccaria.majid
2023-09-29 16:01:03 +02:00
parent 9fda1f83dc
commit 3dd7fd664d
4 changed files with 93 additions and 60 deletions
+1 -59
View File
@@ -1,59 +1 @@
@using NLog;
@attribute [RenderModeAuto]
@* @attribute [RenderModeServer] *@
@inject IJSRuntime JSRuntime
@inject HttpClient Http
<div class="card">
<div class="card-header">
USERNAME
</div>
<div class="card-body">
<div>
<ul class="list-group">
<li class="list-group-item">@Height</li>
<li class="list-group-item">@Width</li>
<li class="list-group-item">A third item</li>
<li class="list-group-item">A fourth item</li>
<li class="list-group-item">And a fifth one</li>
</ul>
</div>
</div>
</div>
@code {
public int Height { get; set; } = 0;
public int Width { get; set; } = 0;
public class WindowDimension
{
public int Width { get; set; }
public int Height { get; set; }
}
protected async override Task OnAfterRenderAsync(bool firstRender)
{
//await Task.Delay(500);
if (firstRender)
{
await getWDim();
StateHasChanged();
Log.Debug($"Dimensioni schermo: {Width}x{Height}");
}
}
// protected async override Task OnInitializedAsync()
// {
// await getWDim();
// }
protected async Task getWDim()
{
var dimension = await JSRuntime.InvokeAsync<WindowDimension>("getWindowDimensions");
Height = dimension.Height;
Width = dimension.Width;
}
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
}

+1
View File
@@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
var builder = WebAssemblyHostBuilder.CreateDefault(args);
// aggiunto x gestione chiamate WebAPI
builder.Services.AddScoped(sp =>
new HttpClient
+88 -1
View File
@@ -1,10 +1,97 @@
@page "/user"
@* <MP_TAB.Client.Pages.User></MP_TAB.Client.Pages.User> *@
@using NLog;
@* @attribute [RenderModeAuto] *@
@attribute [RenderModeServer]
@inject IJSRuntime JSRuntime
@inject HttpClient Http
@inject IHttpContextAccessor httpContextAccessor
<h3>User</h3>
<MP_TAB.Client.Pages.User></MP_TAB.Client.Pages.User>
<div class="d-flex">
<div class="col-3"></div>
<div class="card col-6">
<div class="card-header text-center" >
<div style="font-size: 4rem;">
<i class="fa-solid fa-user"></i>
</div>
<div style="font-size: 1.5rem;">
<span>USER DATA</span>
</div>
</div>
<div class="card-body">
<div>
<ul class="list-group">
<li class="list-group-item d-flex justify-content-between">
<div class="text-start">User</div>
<div class="text-end"><b>USERNAME[999]</b></div>
</li>
<li class="list-group-item d-flex justify-content-between">
<div class="text-start">Server Time</div>
<div class="text-end"><b>@($"{DateTime.Now.ToString("dddd d.M.yyyy HH:mm.ss")}")</b></div>
</li>
<li class="list-group-item d-flex justify-content-between">
<div class="text-start">Client IP</div>
<div class="text-end"><b>@currIpv4</b></div>
</li>
<li class="list-group-item d-flex justify-content-between">
<div class="text-start">Browser Size</div>
<div class="text-end"><b>@($"{Width}x{Height}")</b></div>
</li>
</ul>
</div>
</div>
</div>
<div class="col-3"></div>
</div>
@code {
public int Height { get; set; } = 0;
public int Width { get; set; } = 0;
public string currIpv4 { get; set; } = "";
public class WindowDimension
{
public int Width { get; set; }
public int Height { get; set; }
}
protected async override Task OnAfterRenderAsync(bool firstRender)
{
//await Task.Delay(500);
if (firstRender)
{
await getWDim();
StateHasChanged();
Log.Debug($"Dimensioni schermo: {Width}x{Height}");
}
}
protected async override Task OnInitializedAsync()
{
await Task.Delay(1);
if (string.IsNullOrEmpty(currIpv4))
{
// ricalcolo e salvo...
if (httpContextAccessor.HttpContext != null)
{
var remoteIp = $"{httpContextAccessor.HttpContext.Connection?.RemoteIpAddress}";
// provo a recuperare ipV4...
currIpv4 = EgwCoreLib.Razor.Data.IpUtils.getLocalIpv4(remoteIp);
}
}
}
protected async Task getWDim()
{
var dimension = await JSRuntime.InvokeAsync<WindowDimension>("getWindowDimensions");
Height = dimension.Height;
Width = dimension.Width;
}
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
}
+3
View File
@@ -20,6 +20,9 @@ builder.Services.AddSingleton<ListSelectDataSrv>();
builder.Services.AddSingleton<OrderDataSrv>();
builder.Services.AddScoped<UserServ>();
builder.Services.AddHttpContextAccessor();
// nuova versione contenuti...
builder.Services.AddRazorComponents()
.AddServerComponents()