106 lines
3.5 KiB
Plaintext
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> ABOUT PAGE
|
|
</button>
|
|
<hr />
|
|
<button class="w-100 btn btn-danger">
|
|
<i class="fa-solid fa-right-from-bracket"></i> 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();
|
|
}
|
|
|