@page "/"
@inject NavigationManager NavigationManager
@inject IRestWrapper RestWrapper
@inject ISnackbar Snackbar
@inject ILocalStorageService LocalStorage
@inject IUserUtility UserUtility
نرم افزار داکیومد با امکانات بسیار زیاد
خود
مثل شرح حال نویسی همراه و همیار همیشگی پزشکان محترم
نرم افزار داکیومد با امکانات بسیار زیاد
خود
مثل شرح حال نویسی همیار همیشگی پزشکان محترم
نرم افزار داکیومد با امکانات بسیار زیاد
خود
مثل تهیه پیشنویس شرح حال همراه همیشگی پزشکان محترم
برای ورود یا ثبت نام به اپلیکیشن داکیومد باید شماره تلفن همراه خود را
وارد کنید
با تایید شماره تلفن همراه با همه شرایط
حریم
خصوصی
اپلیکیشن داکیومد موافقت می کنم
برای ورود یا ثبت نام به اپلیکیشن داکیومد باید شماره تلفن همراه خود را
وارد کنید
برای ثبت نام به اپلیکیشن داکیومد باید اطلاعات کامل خود را وارد
کنید
@e.Name
@e.Name
@code
{
private List _cities = new List();
private List _universities = new List();
private SignUpRequestDto _signUpRequest = new SignUpRequestDto();
private MudCarousel? _carousel;
private int _currentSignOnStep = 0;
private MudForm? _confirmPhoneNumberForm;
private MudForm? _confirmSignUpForm;
private CitySDto? _selectedCity;
private UniversitySDto? _selectedUni;
private string _phoneNumber = string.Empty;
private string _verifyCode = string.Empty;
private bool _isProcessing = false;
private SignUpStatus _signUpStatus;
protected override async Task OnInitializedAsync()
{
var token = await UserUtility.GetBearerTokenAsync();
if (!token.IsNullOrEmpty())
{
var user = await UserUtility.GetUserAsync();
if (user.SignUpStatus == SignUpStatus.SignUpCompleted)
NavigationManager.NavigateTo("HomePage");
if (user.SignUpStatus == SignUpStatus.PhoneNumberVerified)
{
_phoneNumber = user.PhoneNumber;
_currentSignOnStep = 2;
_carousel?.MoveTo(_currentSignOnStep);
}
}
await base.OnInitializedAsync();
}
private async Task ConfirmPhoneNumber()
{
try
{
_confirmPhoneNumberForm?.Validate();
if (_confirmPhoneNumberForm is { IsValid: true })
{
_isProcessing = true;
_signUpStatus = await RestWrapper.AuthRestApi.GetVerifyCodeAsync(_phoneNumber);
_carousel?.MoveTo(++_currentSignOnStep);
}
}
catch (ApiException ex)
{
var exe = await ex.GetContentAsAsync();
if (exe != null)
Snackbar.Add(exe.Message, Severity.Error);
Snackbar.Add(ex.Content, Severity.Error);
}
catch (Exception e)
{
Snackbar.Add(e.Message, Severity.Error);
}
finally
{
_isProcessing = false;
}
}
private async Task ConfirmVerifyCode()
{
try
{
_isProcessing = true;
var rest = await RestWrapper.AuthRestApi.LoginWithVerifyCodeAsync(new LoginRequestDto { UserName = _phoneNumber, VerifyCode = _verifyCode });
await UserUtility.SetBearerTokenAsync(rest.BearerToken);
await UserUtility.SetUserAsync(rest.User);
if (_signUpStatus == SignUpStatus.SignUpCompleted)
NavigationManager.NavigateTo("HomePage");
else
_carousel?.MoveTo(++_currentSignOnStep);
}
catch (ApiException ex)
{
var exe = await ex.GetContentAsAsync();
if (exe != null)
Snackbar.Add(exe.Message, Severity.Error);
Snackbar.Add(ex.Content, Severity.Error);
}
catch (Exception e)
{
Snackbar.Add(e.Message, Severity.Error);
}
finally
{
_isProcessing = false;
}
}
private void PhoneNumberRollBack()
{
_carousel?.MoveTo(--_currentSignOnStep);
}
private async Task ConfirmSignUp()
{
try
{
_confirmSignUpForm?.Validate();
if (_confirmSignUpForm is { IsValid: true })
{
_isProcessing = true;
_signUpRequest.CityId = _selectedCity.Id;
_signUpRequest.UniversityId = _selectedUni.Id;
var token = await UserUtility.GetBearerTokenAsync();
var rest = await RestWrapper.AuthRestApi.CompleteSignUpAsync(_signUpRequest, token);
await UserUtility.SetBearerTokenAsync(rest.BearerToken);
await UserUtility.SetUserAsync(rest.User);
NavigationManager.NavigateTo("HomePage");
}
}
catch (ApiException ex)
{
var exe = await ex.GetContentAsAsync();
if (exe != null)
Snackbar.Add(exe.Message, Severity.Error);
Snackbar.Add(ex.Content, Severity.Error);
}
catch (Exception e)
{
Snackbar.Add(e.Message, Severity.Error);
}
finally
{
_isProcessing = false;
}
}
private async Task> SearchCity(string city)
{
try
{
if (_cities.Count == 0)
{
var token = await UserUtility.GetBearerTokenAsync();
_cities = await RestWrapper.CrudDtoApiRest(Address.CityController).ReadAll(0, token);
}
if (city.IsNullOrEmpty())
return _cities;
return _cities.Where(c => c.Name.Contains(city));
}
catch (ApiException ex)
{
var exe = await ex.GetContentAsAsync();
if (exe != null)
Snackbar.Add(exe.Message, Severity.Error);
Snackbar.Add(ex.Content, Severity.Error);
return _cities;
}
catch (Exception e)
{
Snackbar.Add(e.Message, Severity.Error);
return _cities;
}
}
private async Task> SearchUniversity(string uni)
{
try
{
uni = uni == null ? string.Empty : uni;
if (_selectedCity == null)
{
await _confirmSignUpForm!.Validate();
return _universities;
}
var token = await UserUtility.GetBearerTokenAsync();
_universities = await RestWrapper.CityRestApi.GetUniversitiesAsync(_selectedCity.Id, token);
return _universities.Where(c => c.Name.Contains(uni));
}
catch (ApiException ex)
{
var exe = await ex.GetContentAsAsync();
if (exe != null)
Snackbar.Add(exe.Message, Severity.Error);
Snackbar.Add(ex.Content, Severity.Error);
return _universities;
}
catch (Exception e)
{
Snackbar.Add(e.Message, Severity.Error);
return _universities;
}
}
}