using NetinaShop.Domain.Entities.Brands; namespace NetinaShop.AdminPanel.PWA.Pages; public class BrandsPageViewModel : BaseViewModel> { private readonly NavigationManager _navigationManager; private readonly ISnackbar _snackbar; private readonly IUserUtility _userUtility; private readonly IDialogService _dialogService; private readonly IRestWrapper _restWrapper; public BrandsPageViewModel(NavigationManager navigationManager, ISnackbar snackbar, IUserUtility userUtility, IRestWrapper restWrapper, IDialogService dialogService) { _navigationManager = navigationManager; _snackbar = snackbar; _userUtility = userUtility; _restWrapper = restWrapper; _dialogService = dialogService; } public override async Task InitializeAsync() { try { IsProcessing = true; var dto = await _restWrapper.CrudDtoApiRest(Address.BrandController) .ReadAll(0); PageDto = dto; } catch (ApiException ex) { var exe = await ex.GetContentAsAsync(); _snackbar.Add(exe != null ? exe.Message : ex.Content, Severity.Error); } catch (Exception e) { _snackbar.Add(e.Message, Severity.Error); } finally { IsProcessing = false; } await base.InitializeAsync(); } public async Task AddBrandClicked() { DialogOptions maxWidth = new DialogOptions() { MaxWidth = MaxWidth.Medium, FullWidth = true, DisableBackdropClick = true }; await _dialogService.ShowAsync("افزودن برند جدید", maxWidth); } public async Task DeleteBrandAsync(Guid selectedCategoryId) { var options = new DialogOptions { CloseOnEscapeKey = true }; var parameters = new DialogParameters(); parameters.Add(x => x.ContentText, "آیا از حذف برند اطمینان دارید ?"); var dialogReference = await _dialogService.ShowAsync("حذف برند", parameters, options); var result = await dialogReference.Result; if (!result.Canceled) { try { IsProcessing = true; var token = await _userUtility.GetBearerTokenAsync(); await _restWrapper.CrudDtoApiRest(Address.BrandController) .Delete(selectedCategoryId, token); _snackbar.Add("حذف برند با موفقیت انجام شد", Severity.Success); await InitializeAsync(); } catch (ApiException ex) { var exe = await ex.GetContentAsAsync(); _snackbar.Add(exe != null ? exe.Message : ex.Content, Severity.Error); } catch (Exception e) { _snackbar.Add(e.Message, Severity.Error); } finally { IsProcessing = false; } } } }