u
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
using static FrontOffice.Main.Pages.Profile.Components.OrganizationChartLevel;
|
||||
using FrontOffice.BFF.User.Protobuf.Protos.User;
|
||||
using Mapster;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using static FrontOffice.Main.Pages.Profile.Components.OrganizationChartLevel;
|
||||
|
||||
namespace FrontOffice.Main.Pages.Profile.Components;
|
||||
public partial class OrganizationChart
|
||||
@@ -6,112 +9,82 @@ public partial class OrganizationChart
|
||||
private UserNode? _currentUser;
|
||||
private bool _isExpanded;
|
||||
|
||||
[Inject] private UserContract.UserContractClient UserContract { get; set; } = default!;
|
||||
private GetUserResponse _userProfile = new();
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
await LoadCurrentUser();
|
||||
}
|
||||
|
||||
private async Task LoadUserProfile()
|
||||
{
|
||||
try
|
||||
{
|
||||
_userProfile = await UserContract.GetUserAsync(request: new());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// Handle the case when user is not authenticated or API fails
|
||||
_userProfile = new GetUserResponse();
|
||||
}
|
||||
StateHasChanged();
|
||||
}
|
||||
private async Task LoadCurrentUser()
|
||||
{
|
||||
await LoadUserProfile();
|
||||
|
||||
|
||||
// Mock data - replace with actual API call
|
||||
_currentUser = new UserNode
|
||||
{
|
||||
Id = 1,
|
||||
FirstName = "علی",
|
||||
LastName = "رضایی",
|
||||
Avatar = "images/avatar1.jpg",
|
||||
PersonalPurchase = 2500000,
|
||||
TeamPurchase = 15000000,
|
||||
Children = new List<UserNode>
|
||||
{
|
||||
new UserNode
|
||||
{
|
||||
Id = 2,
|
||||
FirstName = "مریم",
|
||||
LastName = "احمدی",
|
||||
Avatar = "images/avatar2.jpg",
|
||||
PersonalPurchase = 1800000,
|
||||
TeamPurchase = 8500000,
|
||||
Children = new List<UserNode>
|
||||
{
|
||||
new UserNode
|
||||
{
|
||||
Id = 5,
|
||||
FirstName = "سارا",
|
||||
LastName = "کریمی",
|
||||
PersonalPurchase = 1200000,
|
||||
TeamPurchase = 3200000,
|
||||
Children = new List<UserNode>
|
||||
{
|
||||
new UserNode
|
||||
{
|
||||
Id = 8,
|
||||
FirstName = "نازنین",
|
||||
LastName = "رضایی",
|
||||
PersonalPurchase = 950000,
|
||||
TeamPurchase = 2100000
|
||||
},
|
||||
new UserNode
|
||||
{
|
||||
Id = 8,
|
||||
FirstName = "فرزاد",
|
||||
LastName = "رضایی",
|
||||
PersonalPurchase = 950000,
|
||||
TeamPurchase = 2100000
|
||||
}
|
||||
}
|
||||
},
|
||||
new UserNode
|
||||
{
|
||||
Id = 6,
|
||||
FirstName = "امیر",
|
||||
LastName = "حسینی",
|
||||
PersonalPurchase = 950000,
|
||||
TeamPurchase = 1800000
|
||||
}
|
||||
}
|
||||
},
|
||||
new UserNode
|
||||
{
|
||||
Id = 3,
|
||||
FirstName = "حسن",
|
||||
LastName = "کریمی",
|
||||
Avatar = "images/avatar3.jpg",
|
||||
PersonalPurchase = 2200000,
|
||||
TeamPurchase = 9200000,
|
||||
Children = new List<UserNode>
|
||||
{
|
||||
new UserNode
|
||||
{
|
||||
Id = 7,
|
||||
FirstName = "فاطمه",
|
||||
LastName = "رضایی",
|
||||
PersonalPurchase = 1350000,
|
||||
TeamPurchase = 4100000
|
||||
},
|
||||
new UserNode
|
||||
{
|
||||
Id = 7,
|
||||
FirstName = "آرش",
|
||||
LastName = "رضایی",
|
||||
PersonalPurchase = 1350000,
|
||||
TeamPurchase = 4100000
|
||||
}
|
||||
}
|
||||
},
|
||||
new UserNode
|
||||
{
|
||||
Id = 4,
|
||||
FirstName = "زهرا",
|
||||
LastName = "محمدی",
|
||||
Avatar = "images/avatar4.jpg",
|
||||
PersonalPurchase = 1950000,
|
||||
TeamPurchase = 7800000
|
||||
}
|
||||
}
|
||||
Id = _userProfile.Id,
|
||||
FirstName = _userProfile.FirstName,
|
||||
LastName = _userProfile.LastName,
|
||||
Mobile = _userProfile.Mobile,
|
||||
Avatar = _userProfile.AvatarPath,
|
||||
PersonalPurchase = 0,
|
||||
TeamPurchase = 0,
|
||||
Children = await GetUserChildren(userId: _userProfile.Id)
|
||||
};
|
||||
}
|
||||
|
||||
private async Task<List<UserNode>?> GetUserChildren(long userId)
|
||||
{
|
||||
Console.WriteLine("OK0");
|
||||
if (userId != 0)
|
||||
{
|
||||
Console.WriteLine("OK1");
|
||||
var children = await UserContract.GetAllUserByFilterAsync(request: new()
|
||||
{
|
||||
Filter = new()
|
||||
{
|
||||
ParentId = userId,
|
||||
}
|
||||
});
|
||||
if (children?.Models?.Any() == true)
|
||||
{
|
||||
Console.WriteLine("OK2");
|
||||
var result = new List<UserNode>();
|
||||
foreach (var item in children.Models)
|
||||
{
|
||||
var node = new UserNode
|
||||
{
|
||||
Id = item.Id,
|
||||
FirstName = item.FirstName,
|
||||
LastName = item.LastName,
|
||||
Mobile = item.Mobile,
|
||||
Avatar = item.AvatarPath,
|
||||
ReferralCode = item.ReferralCode,
|
||||
PersonalPurchase = 0,
|
||||
TeamPurchase = 0,
|
||||
Children = await GetUserChildren(userId: item.Id)
|
||||
};
|
||||
result.Add(node);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
private void ToggleExpand()
|
||||
{
|
||||
_isExpanded = !_isExpanded;
|
||||
|
||||
Reference in New Issue
Block a user