@using NetinaShop.Common.Models.Exception @using NetinaShop.Domain.CommandQueries.Commands @using NetinaShop.Domain.Entities.Brands @inject ISnackbar Snackbar @inject IRestWrapper RestWrapper @inject IUserUtility UserUtility اطلاعات کلی اطلاعات کلی دسته بندی محصول را به دقت وارد کنید @if (_isEditing) { } else { } بستن @code { [CascadingParameter] MudDialogInstance MudDialog { get; set; } [Parameter] public BrandSDto? Brand { get; set; } void Cancel() => MudDialog.Cancel(); private bool _isProcessing = false; private string _persianName = string.Empty; private string _englishName = string.Empty; private string _description = string.Empty; private bool _hasSpecialPage; private bool _isEditing; private string _pageUrl = string.Empty; protected override Task OnParametersSetAsync() { if (Brand != null) { _isEditing = true; _hasSpecialPage = Brand.HasSpecialPage; _description = Brand.Description; _englishName = Brand.EnglishName; _persianName = Brand.PersianName; } return base.OnParametersSetAsync(); } private async Task SubmitCreateAsync() { try { if (_englishName.IsNullOrEmpty()) throw new AppException("لطفا نام برند را وارد کنید"); _isProcessing = true; var token = await UserUtility.GetBearerTokenAsync(); var request = new CreateBrandCommand(_persianName,_englishName, _description, _hasSpecialPage, string.Empty, new List()); await RestWrapper.CrudApiRest(Address.BrandController).Create(request, token); MudDialog.Close(DialogResult.Ok(true)); } catch (ApiException ex) { var exe = await ex.GetContentAsAsync(); if (exe != null) Snackbar.Add(exe.Message, Severity.Error); Snackbar.Add(ex.Content, Severity.Error); } catch (Exception e) { Snackbar.Add(e.Message, Severity.Error); } finally { _isProcessing = false; } } private async Task SubmitEditAsync() { try { if (Brand == null) throw new AppException("برند به درستی ارسال نشده است"); if (_englishName.IsNullOrEmpty()) throw new AppException("لطفا نام برند را وارد کنید"); _isProcessing = true; await Task.Delay(1000); var token = await UserUtility.GetBearerTokenAsync(); var request = new UpdateBrandCommand(Brand.Id, _persianName,_englishName, _description, _hasSpecialPage, string.Empty , new List()); await RestWrapper.CrudApiRest(Address.BrandController).Update(request, token); MudDialog.Close(); } catch (ApiException ex) { var exe = await ex.GetContentAsAsync(); if (exe != null) Snackbar.Add(exe.Message, Severity.Error); Snackbar.Add(ex.Content, Severity.Error); MudDialog.Cancel(); } catch (Exception e) { Snackbar.Add(e.Message, Severity.Error); MudDialog.Cancel(); } finally { _isProcessing = false; } } }