diff --git a/src/BackOffice/BackOffice.csproj b/src/BackOffice/BackOffice.csproj
index 8bab5d7..b2be996 100644
--- a/src/BackOffice/BackOffice.csproj
+++ b/src/BackOffice/BackOffice.csproj
@@ -138,7 +138,7 @@
-
+
diff --git a/src/BackOffice/Pages/Club/Components/ActivateClubDialog.razor b/src/BackOffice/Pages/Club/Components/ActivateClubDialog.razor
index 1df8afd..cc9d66e 100644
--- a/src/BackOffice/Pages/Club/Components/ActivateClubDialog.razor
+++ b/src/BackOffice/Pages/Club/Components/ActivateClubDialog.razor
@@ -1,4 +1,5 @@
@using CMSMicroservice.Protobuf.Protos.ClubMembership
+@using CMSMicroservice.Protobuf.Protos.Package
@using BackOffice.Pages.AutoComplete
@@ -7,23 +8,32 @@
-
-
-
+ @if (_isLoadingPackages)
+ {
+
+ }
+ else
+ {
+
+ @foreach (var pkg in _packages)
+ {
+
+ @pkg.Title — @($"{pkg.Price:N0}") ریال
+
+ }
+
+ }
با تایید، عضویت باشگاه برای کاربر فعال میشود.
+
+ عضویت باشگاه بدون محدودیت زمانی است.
@@ -34,7 +44,7 @@
+ Disabled="@(!_formValid || _isSubmitting || _isLoadingPackages)">
@if (_isSubmitting)
{
@@ -51,12 +61,49 @@
@code {
[CascadingParameter] IMudDialogInstance MudDialog { get; set; }
[Inject] public ClubMembershipContract.ClubMembershipContractClient ClubContract { get; set; }
+ [Inject] public PackageContract.PackageContractClient PackageClient { get; set; }
private MudForm _form;
private bool _formValid;
private bool _isSubmitting;
+ private bool _isLoadingPackages = true;
+ private List _packages = new();
private ActivateModel _model = new();
+ protected override async Task OnInitializedAsync()
+ {
+ await LoadPackages();
+ }
+
+ private async Task LoadPackages()
+ {
+ _isLoadingPackages = true;
+ try
+ {
+ var request = new GetAllPackageByFilterRequest
+ {
+ PaginationState = new CMSMicroservice.Protobuf.Protos.PaginationState
+ {
+ PageNumber = 1,
+ PageSize = 50
+ }
+ };
+ var result = await PackageClient.GetAllPackageByFilterAsync(request);
+ if (result?.Models != null)
+ {
+ _packages = result.Models.ToList();
+ }
+ }
+ catch (Exception ex)
+ {
+ Snackbar.Add($"خطا در بارگذاری پکیجها: {ex.Message}", Severity.Error);
+ }
+ finally
+ {
+ _isLoadingPackages = false;
+ }
+ }
+
private void Cancel() => MudDialog.Cancel();
private async Task Submit()
@@ -70,6 +117,12 @@
return;
}
+ if (_model.PackageId <= 0)
+ {
+ Snackbar.Add("لطفاً پکیج را انتخاب کنید.", Severity.Warning);
+ return;
+ }
+
_isSubmitting = true;
try
{
@@ -77,12 +130,12 @@
{
UserId = _model.UserId.Value,
PackageId = _model.PackageId,
- DurationMonths = _model.DurationMonths
+ ForceActivation = true
};
var response = await ClubContract.ActivateClubMembershipAsync(request);
- Snackbar.Add($"عضویت با موفقیت فعال شد.", Severity.Success);
+ Snackbar.Add("عضویت با موفقیت فعال شد.", Severity.Success);
MudDialog.Close(DialogResult.Ok(true));
}
catch (Exception ex)
@@ -99,6 +152,5 @@
{
public long? UserId { get; set; }
public long PackageId { get; set; }
- public int DurationMonths { get; set; } = 1;
}
}