@page "/Profile/ConnectedAccounts"
@using Microsoft.AspNetCore.Components.Authorization
@inject UserService UserService
@inject UserCustomFieldService UserCustomFieldService
@inject AuthenticationStateProvider AuthenticationStateProvider
@inject NavigationManager NavigationManager
@attribute [Authorize]
@if (!String.IsNullOrWhiteSpace(context.Icon))
{
}
@context.Name
@{
var customField = CustomFields.FirstOrDefault(cf => cf.Name == context.GetCustomFieldName());
if (customField != null)
{
}
else
{
}
}
@code {
Settings Settings = SettingService.GetSettings();
User User = new();
List CustomFields = new();
protected override async Task OnInitializedAsync()
{
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
if (authState.User.Identity.IsAuthenticated)
{
User = await UserService.GetAsync(authState.User.Identity.Name);
}
await LoadData();
}
async Task LoadData()
{
foreach (var authenticationProvider in Settings.Authentication.AuthenticationProviders)
{
var customField = await UserCustomFieldService.FirstOrDefaultAsync(cf => cf.Name == authenticationProvider.GetCustomFieldName() && cf.UserId == User.Id);
if (customField != null)
CustomFields.Add(customField);
}
await InvokeAsync(StateHasChanged);
}
async Task Unlink(UserCustomField customField)
{
await UserCustomFieldService.DeleteAsync(customField.UserId.Value, customField.Name);
await LoadData();
}
}