87 lines
3.2 KiB
Plaintext
87 lines
3.2 KiB
Plaintext
@page "/register"
|
|
@using OrdersManagement.Models
|
|
@using OrdersManagementDataModel.Dtos
|
|
@using Syncfusion.Blazor.Inputs
|
|
@using Syncfusion.Blazor.Buttons
|
|
@using Syncfusion.Blazor.Cards
|
|
|
|
@inject UserService UserService
|
|
@inject NavigationManager NavigationManager
|
|
|
|
<div class="h-100 d-flex flex-column">
|
|
<h5>Rejestracja</h5>
|
|
<br/>
|
|
<SfCard>
|
|
<CardHeader Title="Zarejestruj się"/>
|
|
<CardContent>
|
|
<EditForm Model="@RegisterModel" OnValidSubmit="HandleRegister">
|
|
<DataAnnotationsValidator/>
|
|
<ValidationSummary/>
|
|
|
|
<div class="form-group">
|
|
<label for="login">Login</label>
|
|
<SfTextBox ID="login" @bind-Value="RegisterModel.Login" Placeholder="Wprowadź login"
|
|
CssClass="e-outline"/>
|
|
<ValidationMessage For="@(() => RegisterModel.Login)"/>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="email">Email</label>
|
|
<SfTextBox ID="email" @bind-Value="RegisterModel.Email" Placeholder="Wprowadź email"
|
|
CssClass="e-outline"/>
|
|
<ValidationMessage For="@(() => RegisterModel.Email)"/>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="firstName">Imię</label>
|
|
<SfTextBox ID="firstName" @bind-Value="RegisterModel.FirstName" Placeholder="Wprowadź imię"
|
|
CssClass="e-outline"/>
|
|
<ValidationMessage For="@(() => RegisterModel.FirstName)"/>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="lastName">Nazwisko</label>
|
|
<SfTextBox ID="lastName" @bind-Value="RegisterModel.LastName" Placeholder="Wprowadź nazwisko"
|
|
CssClass="e-outline"/>
|
|
<ValidationMessage For="@(() => RegisterModel.LastName)"/>
|
|
</div>
|
|
|
|
<div class="form-group mt-3">
|
|
<SfButton CssClass="e-primary" IsPrimary="true" Type="submit">Zarejestruj</SfButton>
|
|
</div>
|
|
</EditForm>
|
|
</CardContent>
|
|
</SfCard>
|
|
</div>
|
|
|
|
@code {
|
|
private RegisterModel RegisterModel { get; set; } = new();
|
|
|
|
private async Task HandleRegister()
|
|
{
|
|
var temporaryPassword = Guid.NewGuid().ToString().Substring(0, 8);
|
|
var passwordHash = BCrypt.Net.BCrypt.HashPassword(temporaryPassword);
|
|
|
|
var user = new UserDto
|
|
{
|
|
Login = RegisterModel.Login,
|
|
PasswordHash = passwordHash,
|
|
IsTemporaryPassword = true,
|
|
IsActive = true,
|
|
ActiveFrom = DateTime.Now,
|
|
Email = RegisterModel.Email,
|
|
FirstName = RegisterModel.FirstName,
|
|
LastName = RegisterModel.LastName,
|
|
CreatedDate = DateTime.Now,
|
|
RowPointer = Guid.NewGuid()
|
|
};
|
|
|
|
var result = await UserService.AddUserAsync(user);
|
|
|
|
if (result.IsSuccessStatusCode)
|
|
{
|
|
NavigationManager.NavigateTo($"/login?tempPassword={Uri.EscapeDataString(temporaryPassword)}");
|
|
}
|
|
}
|
|
|
|
} |