@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();
Snackbar.Add(exe != null ? exe.Message : 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();
Snackbar.Add(exe != null ? exe.Message : ex.Content, Severity.Error);
MudDialog.Cancel();
}
catch (Exception e)
{
Snackbar.Add(e.Message, Severity.Error);
MudDialog.Cancel();
}
finally
{
_isProcessing = false;
}
}
}