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; } }