Add MainService for state management and update Index and AuthDialog to utilize it
This commit is contained in:
@@ -6,7 +6,7 @@ using System.Security.Cryptography;
|
||||
|
||||
namespace FrontOffice.Main.Pages;
|
||||
|
||||
public partial class Index
|
||||
public partial class Index:IDisposable
|
||||
{
|
||||
[Inject] private PackageContract.PackageContractClient PackageClient { get; set; } = default!;
|
||||
[Inject] private MobileNumberEncryptor Encryptor { get; set; }
|
||||
@@ -17,7 +17,25 @@ public partial class Index
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
MainService.OnChangeHandler +=async () =>
|
||||
{
|
||||
await InvokeAsync(StateHasChanged);
|
||||
};
|
||||
await LoadPackagesAsync();
|
||||
|
||||
//string mobileNumber = "09387342688";
|
||||
|
||||
//// انکریپت کردن
|
||||
//string encrypted = Encryptor.EncryptMobileNumber(mobileNumber);
|
||||
//Console.WriteLine($"Encrypted: {encrypted}");
|
||||
|
||||
//// دیکریپت کردن برای تست
|
||||
//string decrypted = Encryptor.DecryptMobileNumber(encrypted);
|
||||
//Console.WriteLine($"Decrypted: {decrypted}");
|
||||
}
|
||||
|
||||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||
{
|
||||
if (await AuthService.IsAuthenticatedAsync())
|
||||
{
|
||||
if ((await AuthService.IsCompleteRegisterAsync()))
|
||||
@@ -29,16 +47,7 @@ public partial class Index
|
||||
Navigation.NavigateTo(RouteConstants.Registration.Wizard);
|
||||
}
|
||||
}
|
||||
|
||||
//string mobileNumber = "09387342688";
|
||||
|
||||
//// انکریپت کردن
|
||||
//string encrypted = Encryptor.EncryptMobileNumber(mobileNumber);
|
||||
//Console.WriteLine($"Encrypted: {encrypted}");
|
||||
|
||||
//// دیکریپت کردن برای تست
|
||||
//string decrypted = Encryptor.DecryptMobileNumber(encrypted);
|
||||
//Console.WriteLine($"Decrypted: {decrypted}");
|
||||
await base.OnAfterRenderAsync(firstRender);
|
||||
}
|
||||
|
||||
private async Task LoadPackagesAsync()
|
||||
@@ -108,4 +117,12 @@ public partial class Index
|
||||
new("چه درگاههایی پشتیبانی میشود؟", "Stripe و PayPal یا درگاه اختصاصی از طریق وبهوکها."),
|
||||
new("میتوانم دادهها را خروجی بگیرم؟", "هر زمان از داشبورد ادمین خروجی CSV/Excel بگیرید."),
|
||||
};
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
MainService.OnChangeHandler -=async () =>
|
||||
{
|
||||
await InvokeAsync(StateHasChanged);
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,7 @@ builder.Services.AddServerSideBlazor();
|
||||
#region AddCommonServices
|
||||
|
||||
builder.Services.AddCommonServices();
|
||||
builder.Services.AddSingleton<MainService>();
|
||||
|
||||
#endregion
|
||||
#region AddGrpcServices
|
||||
|
||||
@@ -231,7 +231,10 @@ public partial class AuthDialog : IDisposable
|
||||
{
|
||||
MudDialog?.Close();
|
||||
}
|
||||
|
||||
await OnLoginSuccess.InvokeAsync();
|
||||
await InvokeAsync(StateHasChanged);
|
||||
MainService.OnOnChangeHandler();
|
||||
// await OnLoginSuccessAsync();
|
||||
return true;
|
||||
}
|
||||
|
||||
13
src/FrontOffice.Main/Utilities/MainService.cs
Normal file
13
src/FrontOffice.Main/Utilities/MainService.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace FrontOffice.Main.Utilities;
|
||||
|
||||
public class MainService
|
||||
{
|
||||
public event Action OnChangeHandler;
|
||||
|
||||
public virtual void OnOnChangeHandler()
|
||||
{
|
||||
OnChangeHandler?.Invoke();
|
||||
}
|
||||
}
|
||||
@@ -16,4 +16,5 @@
|
||||
@inject NavigationManager Navigation
|
||||
@inject IDialogService DialogService
|
||||
@inject IJSRuntime JSRuntime
|
||||
@inject ISnackbar Snackbar
|
||||
@inject ISnackbar Snackbar
|
||||
@inject MainService MainService
|
||||
Reference in New Issue
Block a user