@attribute [Route(RouteConstants.Club.Features)] @using FrontOffice.Main.Utilities @using MudBlazor @inject ClubConfigurationService ClubConfigService @inject IDialogService DialogService ویژگی‌های باشگاه مشتریان ویژگی‌های باشگاه مشتریان بازگشت ویژگی‌های اختصاصی شما علاوه بر مزایای پایه عضویت در باشگاه مشتریان، شما به مجموعه‌ای از ویژگی‌های اختصاصی دسترسی دارید. برخی از این ویژگی‌ها ممکن است نیاز به زمان برای فعال‌سازی داشته باشند. با کلیک روی دکمه «جزئیات» هر ویژگی، می‌توانید اطلاعات بیشتری درباره نحوه استفاده از آن امکان را مشاهده کنید. ویژگی‌های شما @if (_isLoading) { } else if (_features == null || !_features.Any()) { هنوز ویژگی‌ای برای شما فعال نشده است. } else { @foreach (var feature in _features) { @feature.Title جزئیات @if (feature != _features.Last()) { } } } بازگشت به صفحه باشگاه @_selectedFeature?.Title @if (_selectedFeature != null) { وضعیت: @if (_selectedFeature.IsEnabled) { فعال } else { غیرفعال } @if (!string.IsNullOrEmpty(_selectedFeature.Description)) { @_selectedFeature.Description } تاریخ ایجاد: @(_selectedFeature.CreatedAt?.ToLocalTime().ToString("yyyy/MM/dd HH:mm") ?? "-") تاریخ فعال‌سازی: @(_selectedFeature.GrantedAt.HasValue && _selectedFeature.GrantedAt.Value > DateTime.MinValue ? _selectedFeature.GrantedAt.Value.ToLocalTime().ToString("yyyy/MM/dd HH:mm") : "-") @if (!string.IsNullOrEmpty(_selectedFeature.Notes)) { توضیحات تکمیلی: @((MarkupString)_selectedFeature.Notes) } } بستن @code { private List? _features; private bool _isLoading = true; private bool _showDetailDialog; private ClubFeatureDto? _selectedFeature; private DialogOptions _dialogOptions = new() { MaxWidth = MaxWidth.Small, FullWidth = true, CloseButton = true, CloseOnEscapeKey = true }; protected override async Task OnInitializedAsync() { await LoadFeatures(); } private async Task LoadFeatures() { _isLoading = true; try { _features = await ClubConfigService.GetClubFeaturesAsync(); } catch (Exception ex) { Console.WriteLine($"Error loading features: {ex.Message}"); _features = new List(); } finally { _isLoading = false; } } private void ShowFeatureDetails(ClubFeatureDto feature) { _selectedFeature = feature; _showDetailDialog = true; } }