106 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
| namespace NetinaShop.AdminPanel.PWA.Dialogs;
 | |
| 
 | |
| public class OrderActionDialogBoxViewModel : BaseViewModel<OrderLDto>
 | |
| {
 | |
| 
 | |
|     private readonly ISnackbar _snackbar;
 | |
|     private readonly IRestWrapper _restWrapper;
 | |
|     private readonly IUserUtility _userUtility;
 | |
|     private readonly IDialogService _dialogService;
 | |
|     private readonly MudDialogInstance _mudDialog;
 | |
| 
 | |
|     public OrderActionDialogBoxViewModel(ISnackbar snackbar, IRestWrapper restWrapper, IUserUtility userUtility, IDialogService dialogService, MudDialogInstance mudDialog)
 | |
|     {
 | |
|         _snackbar = snackbar;
 | |
|         _restWrapper = restWrapper;
 | |
|         _userUtility = userUtility;
 | |
|         _dialogService = dialogService;
 | |
|         _mudDialog = mudDialog;
 | |
|     }
 | |
|     public OrderActionDialogBoxViewModel(ISnackbar snackbar,
 | |
|         IRestWrapper restWrapper,
 | |
|         IUserUtility userUtility,
 | |
|         IDialogService dialogService,
 | |
|         MudDialogInstance mudDialog,
 | |
|         OrderSDto order)
 | |
|     {
 | |
|         _snackbar = snackbar;
 | |
|         _restWrapper = restWrapper;
 | |
|         _userUtility = userUtility;
 | |
|         _dialogService = dialogService;
 | |
|         _mudDialog = mudDialog;
 | |
|         PageDto.Id = order.Id;
 | |
|         IsEditing = true;
 | |
|     }
 | |
| 
 | |
| 
 | |
|     public void Cancel() => _mudDialog.Cancel();
 | |
| 
 | |
|     public bool IsEditing = false;
 | |
| 
 | |
| 
 | |
|     public override async Task InitializeAsync()
 | |
|     {
 | |
|         if (IsEditing && PageDto.Id != default)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
| 
 | |
|                 var token = await _userUtility.GetBearerTokenAsync();
 | |
|                 if (token == null)
 | |
|                     throw new Exception("Token is null");
 | |
| 
 | |
|                 IsProcessing = true;
 | |
| 
 | |
|                 var order = await _restWrapper.OrderRestApi.ReadOne(PageDto.Id, token);
 | |
|                 PageDto = order;
 | |
|             }
 | |
|             catch (ApiException ex)
 | |
|             {
 | |
|                 var exe = await ex.GetContentAsAsync<ApiResult>();
 | |
|                 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;
 | |
|             }
 | |
|         };
 | |
|     }
 | |
| 
 | |
|     public async Task SubmitEditAsync()
 | |
|     {
 | |
|         try
 | |
|         {
 | |
|             IsProcessing = true;
 | |
|             _snackbar.Add($"ویرایش سفارش {PageDto.FactorCode} با موفقیت انجام شد", Severity.Success);
 | |
|             _mudDialog.Close();
 | |
|         }
 | |
|         catch (ApiException ex)
 | |
|         {
 | |
|             var exe = await ex.GetContentAsAsync<ApiResult>();
 | |
|             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;
 | |
|         }
 | |
|     }
 | |
| } |