@using Microsoft.AspNetCore.Components.Routing
@using Oqtane.Client.Modules.Controls
@using Oqtane.Modules
@using Oqtane.Models
@using Oqtane.Services
@inherits ModuleBase
@inject IUriHelper UriHelper
@inject IUserService UserService
@inject IProfileService ProfileService
@inject ISettingService SettingService
@if (PageState.User != null && profiles != null)
{
}
@code {
public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.View; } }
string message = "";
string displayname = "";
string email = "";
List profiles;
Dictionary settings;
string category = "";
protected override async Task OnInitializedAsync()
{
try
{
if (PageState.User != null)
{
displayname = PageState.User.DisplayName;
email = PageState.User.Email;
profiles = await ProfileService.GetProfilesAsync(ModuleState.SiteId);
settings = await SettingService.GetUserSettingsAsync(PageState.User.UserId);
}
else
{
message = "Current User Is Not Logged In";
}
}
catch (Exception ex)
{
message = ex.Message;
}
}
private string GetProfileValue(string SettingName, string DefaultValue)
{
return SettingService.GetSetting(settings, SettingName, DefaultValue);
}
private async Task SaveUser()
{
try
{
User user = PageState.User;
user.DisplayName = displayname;
user.Email = email;
await UserService.UpdateUserAsync(user);
await SettingService.UpdateUserSettingsAsync(settings, PageState.User.UserId);
UriHelper.NavigateTo("");
}
catch (Exception ex)
{
message = ex.Message;
}
}
private void Cancel()
{
UriHelper.NavigateTo(NavigateUrl(""));
}
private void ProfileChanged(UIChangeEventArgs e, string SettingName)
{
string value = (string)e.Value;
settings = SettingService.SetSetting(settings, SettingName, value);
}
}