Improved user details profile page
This commit is contained in:
@@ -1,19 +1,17 @@
|
|||||||
@page "/profile"
|
@page "/profile"
|
||||||
|
|
||||||
@using Moonlight.Shared.Components.Navigations
|
@using Moonlight.Shared.Components.Navigations
|
||||||
@using Moonlight.App.Services.Sessions
|
|
||||||
@using Moonlight.App.Database.Entities
|
@using Moonlight.App.Database.Entities
|
||||||
@using Moonlight.App.Models.Forms
|
@using Moonlight.App.Models.Forms
|
||||||
@using Moonlight.App.Repositories
|
@using Moonlight.App.Repositories
|
||||||
@using Moonlight.Shared.Components.Auth
|
@using Mappy.Net
|
||||||
|
|
||||||
@inject IdentityService IdentityService
|
|
||||||
@inject UserRepository UserRepository
|
@inject UserRepository UserRepository
|
||||||
|
|
||||||
<ProfileNavigation Index="0" />
|
<ProfileNavigation Index="0" />
|
||||||
|
|
||||||
<LazyLoader Load="Load">
|
<LazyLoader Load="Load">
|
||||||
<SmartForm OnValidSubmit="Save" Model="User">
|
<SmartForm OnValidSubmit="Save" Model="Model">
|
||||||
<div class="card mb-5 mb-xl-10">
|
<div class="card mb-5 mb-xl-10">
|
||||||
<div class="card-body p-9">
|
<div class="card-body p-9">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@@ -22,7 +20,7 @@
|
|||||||
<label class="form-label">
|
<label class="form-label">
|
||||||
<TL>First name</TL>
|
<TL>First name</TL>
|
||||||
</label>
|
</label>
|
||||||
<InputText @bind-Value="User.FirstName" class="form-control"></InputText>
|
<InputText @bind-Value="Model.FirstName" class="form-control"></InputText>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-6 fv-row fv-plugins-icon-container">
|
<div class="col-lg-6 fv-row fv-plugins-icon-container">
|
||||||
@@ -30,7 +28,7 @@
|
|||||||
<label class="form-label">
|
<label class="form-label">
|
||||||
<TL>Last name</TL>
|
<TL>Last name</TL>
|
||||||
</label>
|
</label>
|
||||||
<InputText @bind-Value="User.LastName" class="form-control"></InputText>
|
<InputText @bind-Value="Model.LastName" class="form-control"></InputText>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -38,31 +36,31 @@
|
|||||||
<label class="form-label">
|
<label class="form-label">
|
||||||
<TL>Email address</TL>
|
<TL>Email address</TL>
|
||||||
</label>
|
</label>
|
||||||
<InputText @bind-Value="User.Email" class="form-control"></InputText>
|
<InputText @bind-Value="Model.Email" class="form-control"></InputText>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">
|
<label class="form-label">
|
||||||
<TL>Address</TL>
|
<TL>Address</TL>
|
||||||
</label>
|
</label>
|
||||||
<InputText @bind-Value="User.Address" class="form-control"></InputText>
|
<InputText @bind-Value="Model.Address" class="form-control"></InputText>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">
|
<label class="form-label">
|
||||||
<TL>City</TL>
|
<TL>City</TL>
|
||||||
</label>
|
</label>
|
||||||
<InputText @bind-Value="User.City" class="form-control"></InputText>
|
<InputText @bind-Value="Model.City" class="form-control"></InputText>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">
|
<label class="form-label">
|
||||||
<TL>State</TL>
|
<TL>State</TL>
|
||||||
</label>
|
</label>
|
||||||
<InputText @bind-Value="User.State" class="form-control"></InputText>
|
<InputText @bind-Value="Model.State" class="form-control"></InputText>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">
|
<label class="form-label">
|
||||||
<TL>Country</TL>
|
<TL>Country</TL>
|
||||||
</label>
|
</label>
|
||||||
<InputText @bind-Value="User.Country" class="form-control"></InputText>
|
<InputText @bind-Value="Model.Country" class="form-control"></InputText>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer d-flex justify-content-end py-6 px-9">
|
<div class="card-footer d-flex justify-content-end py-6 px-9">
|
||||||
@@ -76,31 +74,25 @@
|
|||||||
|
|
||||||
@code
|
@code
|
||||||
{
|
{
|
||||||
private UserDataModel User = new UserDataModel();
|
private UserDataModel Model = new UserDataModel();
|
||||||
private User CurrentUser;
|
|
||||||
|
[CascadingParameter]
|
||||||
|
public User CurrentUser { get; set; }
|
||||||
|
|
||||||
|
|
||||||
private async Task Load(LazyLoader loader)
|
private Task Load(LazyLoader loader)
|
||||||
{
|
{
|
||||||
CurrentUser = await IdentityService.Get();
|
Model = Mapper.Map<UserDataModel>(CurrentUser);
|
||||||
User.FirstName = CurrentUser.FirstName;
|
|
||||||
User.LastName = CurrentUser.LastName;
|
return Task.CompletedTask;
|
||||||
User.Email = CurrentUser.Email;
|
|
||||||
User.Address = CurrentUser.Address;
|
|
||||||
User.City = CurrentUser.City;
|
|
||||||
User.State = CurrentUser.State;
|
|
||||||
User.Country = CurrentUser.Country;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Task Save()
|
private Task Save()
|
||||||
{
|
{
|
||||||
CurrentUser.FirstName = User.FirstName;
|
CurrentUser = Mapper.Map(CurrentUser, Model);
|
||||||
CurrentUser.LastName = User.LastName;
|
|
||||||
CurrentUser.Email = User.Email;
|
CurrentUser.Email = CurrentUser.Email.ToLower();
|
||||||
CurrentUser.Address = User.Address;
|
|
||||||
CurrentUser.City = User.City;
|
|
||||||
CurrentUser.State = User.State;
|
|
||||||
CurrentUser.Country = User.Country;
|
|
||||||
UserRepository.Update(CurrentUser);
|
UserRepository.Update(CurrentUser);
|
||||||
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
|
|||||||
Reference in New Issue
Block a user