Files
mapo-core/MP-TAB2/MP-TAB/Components/Pages/User.razor
T
2023-12-18 11:36:24 +01:00

106 lines
3.5 KiB
Plaintext

@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>
<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 dd.MM.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 class="card-footer">
<button class="w-100 btn btn-success">
<i class="fa-solid fa-gear"></i> &nbsp; ABOUT PAGE
</button>
<hr />
<button class="w-100 btn btn-danger">
<i class="fa-solid fa-right-from-bracket"></i> &nbsp; LOGOUT
</button>
</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();
}