UI_SequentMicrosystems-RPI/Pages/SyncPage.razor

98 lines
2.4 KiB
Plaintext

@page "/Sync"
@using UI_SequentMicrosystems.Services
@using UI_SequentMicrosystems.Models
@inject SyncService _SyncService
@inject NavigationManager Navigator
<PageTitle>Clients Sync</PageTitle>
<div class="text-white h6 text-center">
This ClientID: <strong>@_SyncService.GetClientID()</strong>
</div>
@if (SelectedSyncClientID != null)
{
<div class="row">
<div class="col-6">
<select class="form-select bg-dark text-white" aria-label="Default select example" @onchange="((x) =>
{
ClientSelected(x.Value.ToString());
})">
@if (SelectedSyncClientID == null && SelectedSyncClientID == "")
{
<option selected value="-1">Select Sync Client ID</option>
}
else
{
<option value="-1">Select Sync Client ID</option>
}
@foreach (string id in _SyncService.GetClientsIDs())
{
<option value="@id">@id</option>
}
</select>
</div>
@if (SelectedSyncClientID != null && SelectedSyncClientID != "")
{
<div class="col-xs-12 col-md-2 align-self-center">
<button class="btn btn-dark text-white no-border" @onclick="(() => _SyncService.SendClientSyncRequest(SelectedSyncClientID))">Synchronize With selected Client</button>
</div>
}
</div>
}
@code {
private string SelectedSyncClientID { get; set; }
protected override async void OnInitialized()
{
//_RTD8TMService.SetAddress("http://10.250.251.131/");
_SyncService.SetAddress(Navigator.BaseUri);
SelectedSyncClientID = await _SyncService.GetSelectedSyncClient();
_SyncService.EventUpdateClientsIDs += UpdateView;
}
private async void ClientSelected(string select)
{
Console.WriteLine($"SyncPage:ClientSelected Selected ID: {select}");
if (select == "-1")
{
SelectedSyncClientID = "";
await _SyncService.SendClientSyncRequest("");
}
else
{
SelectedSyncClientID = select;
await _SyncService.SendClientSyncRequest(select);
}
}
public async Task UpdateView(object? o, bool b)
{
await InvokeAsync(() =>
{
StateHasChanged();
});
}
}