feat: integrate d3-org-chart for network visualization and add SignalR token notification service

This commit is contained in:
masoodafar-web
2025-12-18 03:19:06 +03:30
parent 27c2c0259b
commit 6b457d0ce6
21 changed files with 1558 additions and 201 deletions
+32 -32
View File
@@ -21,7 +21,7 @@ public partial class Index:IDisposable
{
await InvokeAsync(StateHasChanged);
};
await LoadPackagesAsync();
// await LoadPackagesAsync();
//string mobileNumber = "09387342688";
@@ -50,37 +50,37 @@ public partial class Index:IDisposable
await base.OnAfterRenderAsync(firstRender);
}
private async Task LoadPackagesAsync()
{
_isLoadingPackages = true;
try
{
var response = await PackageClient.GetAllPackageByFilterAsync(request: new());
if (response?.Models?.Any() == true)
{
_packs = response.Models.Select(p => new Pack(
Id: p.Id,
Title: p.Title,
Body: p.Description,
Image: UrlUtility.DownloadUrl + p.ImagePath,
Price: p.Price
)).ToList();
}
else
_packs = new List<Pack>();
}
catch (Exception ex)
{
Snackbar.Add($"خطا در بارگذاری پکیج‌ها: {ex.Message}", Severity.Error);
// Fallback to empty list
_packs = new List<Pack>();
}
finally
{
_isLoadingPackages = false;
await InvokeAsync(StateHasChanged);
}
}
// private async Task LoadPackagesAsync()
// {
// _isLoadingPackages = true;
// try
// {
// var response = await PackageClient.GetAllPackageByFilterAsync(request: new());
// if (response?.Models?.Any() == true)
// {
// _packs = response.Models.Select(p => new Pack(
// Id: p.Id,
// Title: p.Title,
// Body: p.Description,
// Image: UrlUtility.DownloadUrl + p.ImagePath,
// Price: p.Price
// )).ToList();
// }
// else
// _packs = new List<Pack>();
// }
// catch (Exception ex)
// {
// Snackbar.Add($"خطا در بارگذاری پکیج‌ها: {ex.Message}", Severity.Error);
// // Fallback to empty list
// _packs = new List<Pack>();
// }
// finally
// {
// _isLoadingPackages = false;
// await InvokeAsync(StateHasChanged);
// }
// }
private void JoinWaitlist()
{