Files
moadiran/TaxPayerFull/Pages/Verification.razor

186 lines
6.4 KiB
Plaintext
Raw Normal View History

2024-04-14 16:09:36 +03:30
@using Shared.DTOs
2024-04-14 22:19:39 +03:30
@page "/Verification/{ID:int}"
2024-04-15 17:16:17 +03:30
@inject HttpClient _hc
@inject NavigationManager nav
<PageTitle>احراز هویت</PageTitle>
2024-04-14 22:19:39 +03:30
<main>
2024-04-15 17:16:17 +03:30
<!-- tp-banner-area-start -->
<div class="signin-banner-area signin-banner-main-wrap d-flex align-items-center">
<div class="signin-banner-left-box signin-banner-bg p-relative">
2024-04-15 23:09:11 +03:30
<div class="signin-banner-bottom-shape">
<img src="img/login/login-shape-1.png" alt="">
</div>
2024-04-15 17:16:17 +03:30
<div class="signin-banner-left-wrap">
2024-04-15 23:09:11 +03:30
<div class="signin-banner-title-box mb-100">
<br />
<h4 class="signin-banner-title" style="color:black">
لطفا کد ارسالی را وارد نمایید
</h4>
2024-04-15 17:16:17 +03:30
</div>
2024-04-15 23:09:11 +03:30
<div class="signin-banner-img-box position-relative">
<div class="signin-banner-img signin-img-1 d-none d-md-block z-index-3">
<img src="img/login/login-2.png" alt="">
</div>
<div class="signin-banner-img signin-img-2 d-none d-md-block">
<img src="img/login/login-1.png" alt="">
</div>
<div class="signin-banner-img signin-img-3 d-none d-md-block z-index-5">
<img src="img/login/login-3.png" alt="">
2024-04-15 17:16:17 +03:30
</div>
2024-04-15 23:09:11 +03:30
<div class="signin-banner-img signin-img-4 d-none d-sm-block">
<img src="img/login/login-4.png" alt="">
</div>
</div>
2024-04-15 17:16:17 +03:30
</div>
</div>
<div class="signin-banner-from d-flex justify-content-center align-items-center">
<div class="signin-banner-from-wrap">
<div class="signin-banner-title-box">
<h4 class="signin-banner-from-title">احراز هویت</h4>
</div>
2024-04-14 22:19:39 +03:30
2024-04-15 17:16:17 +03:30
<div class="signin-banner-from-box">
2024-04-15 23:09:11 +03:30
2024-04-16 12:23:29 +03:30
<EditForm Model="VerificationCodeModel" OnSubmit="SubmitVerificationCode" FormName="VerificationCodeDto">
2024-04-15 23:09:11 +03:30
2024-04-15 17:16:17 +03:30
<div class="row">
<div class="col-12">
<div class="postbox__comment-input mb-30">
2024-04-15 23:31:24 +03:30
<InputNumber @bind-Value="VerificationCodeModel.Code" id="Code" type="text" class="inputText" required="" />
2024-04-15 17:16:17 +03:30
<span class="floating-label">کد تائید</span>
</div>
</div>
<div class="signin-banner-from-btn mb-20">
2024-04-15 23:09:11 +03:30
<button type="submit" class="signin-btn">احراز</button>
2024-04-15 17:16:17 +03:30
</div>
</div>
2024-04-15 23:31:24 +03:30
2024-04-15 17:16:17 +03:30
</EditForm>
2024-04-15 23:31:24 +03:30
<div class="row">
2024-04-16 13:15:51 +03:30
<Alert hidden="@Hidealert" Color="@alertColor" Dismissable="false">
<Icon Name="@alertIconName" class="me-2"></Icon>
@alertMessage
<Button Color="ButtonColor.Primary" @onclick="EndForm">اتمام عملیات</Button>
</Alert>
2024-04-16 12:23:29 +03:30
2024-04-15 23:31:24 +03:30
</div>
2024-04-15 17:16:17 +03:30
<div class="signin-banner-from-register">
2024-04-16 22:56:02 +03:30
<NavLink style="cursor:pointer" @onclick="ReSend">کد ارسال نشد؟ <span>ارسال مجدد</span></NavLink>
2024-04-15 17:16:17 +03:30
</div>
</div>
</div>
</div>
</div>
<!-- tp-banner-area-end -->
2024-04-14 22:19:39 +03:30
</main>
2024-04-13 15:03:27 +03:30
@code {
2024-04-16 22:56:02 +03:30
bool successfull = false;
2024-04-16 13:15:51 +03:30
// alert
AlertColor alertColor = AlertColor.Primary;
IconName alertIconName = IconName.CheckCircleFill;
bool Hidealert = true;
string alertMessage = "";
2024-04-14 16:09:36 +03:30
[Parameter]
2024-04-14 22:19:39 +03:30
public int ID { get; set; }
2024-04-15 23:31:24 +03:30
[SupplyParameterFromForm]
2024-04-15 23:09:11 +03:30
public VerificationCodeDto? VerificationCodeModel { get; set; } = new VerificationCodeDto();
2024-04-16 12:23:29 +03:30
2024-04-14 16:09:36 +03:30
protected override async Task OnParametersSetAsync()
{
2024-04-15 17:16:17 +03:30
var request = await _hc.GetAsync($"Verification/GetVerification/{ID}");
if (request.IsSuccessStatusCode)
{
2024-04-15 23:09:11 +03:30
VerificationCodeModel = await request.Content.ReadFromJsonAsync<VerificationCodeDto>();
2024-04-15 17:16:17 +03:30
}
else
{
nav.NavigateTo($"/");
}
2024-04-14 16:09:36 +03:30
await base.OnParametersSetAsync();
}
2024-04-13 15:03:27 +03:30
}
2024-04-15 23:09:11 +03:30
@functions {
2024-04-16 22:56:02 +03:30
private async Task ReSend()
{
var request = await _hc.GetAsync($"Verification/ReSend/{VerificationCodeModel?.ID}");
if (request.IsSuccessStatusCode)
{
ShowSuccessAlert("کد مجدد ارسال شد");
}
else
{
ShowDangerAlert(await request.Content.ReadFromJsonAsync<string>());
}
}
2024-04-15 23:09:11 +03:30
private async Task SubmitVerificationCode()
{
2024-04-15 23:31:24 +03:30
if (VerificationCodeModel.Code < 1000 || VerificationCodeModel.Code > 9000)
2024-04-15 23:09:11 +03:30
{
2024-04-16 13:15:51 +03:30
ShowDangerAlert("کد احراز صحیح نمی باشد");
2024-04-15 23:31:24 +03:30
}
else
{
var request = await _hc.PostAsJsonAsync($"Verification/Submit", VerificationCodeModel);
if (request.IsSuccessStatusCode)
2024-04-15 23:09:11 +03:30
{
2024-04-15 23:31:24 +03:30
var status = await request.Content.ReadFromJsonAsync<bool>();
if (status)
{
2024-04-19 03:23:30 +03:30
if (VerificationCodeModel.Type == "CompanyRegistration")
nav.NavigateTo("/Sign-in/Verification");
else
nav.NavigateTo("/");
2024-04-15 23:31:24 +03:30
}
else
{
2024-04-16 13:15:51 +03:30
ShowDangerAlert("خطای سیستمی رخ داده");
2024-04-15 23:31:24 +03:30
}
2024-04-15 23:09:11 +03:30
}
else
{
2024-04-16 13:15:51 +03:30
ShowDangerAlert(await request.Content.ReadFromJsonAsync<string>());
2024-04-15 23:09:11 +03:30
}
}
2024-04-15 23:31:24 +03:30
2024-04-15 23:09:11 +03:30
}
2024-04-16 13:15:51 +03:30
private void ShowSuccessAlert(string msg)
{
Hidealert = false;
alertColor = AlertColor.Success;
alertIconName = IconName.CheckCircleFill;
alertMessage = msg;
}
private void ShowDangerAlert(string msg)
{
Hidealert = false;
alertColor = AlertColor.Danger;
alertIconName = IconName.ExclamationTriangleFill;
alertMessage = msg;
}
2024-04-16 22:56:02 +03:30
private async Task EndForm()
{
if (!successfull)
await _hc.DeleteAsync($"Verification/Remove/{VerificationCodeModel?.ID}");
nav.NavigateTo("/");
}
2024-04-14 22:19:39 +03:30
}