This commit is contained in:
MeysamMoghaddam
2025-10-13 10:30:22 +03:30
parent edc8733ae4
commit 19960547a4
5 changed files with 110 additions and 26 deletions
@@ -0,0 +1,55 @@
using FrontOffice.BFF.UserAddress.Protobuf.Protos.UserAddress;
using FrontOffice.BFF.UserAddress.Protobuf.Validator;
using Mapster;
using Microsoft.AspNetCore.Components;
using MudBlazor;
using Severity = MudBlazor.Severity;
namespace FrontOffice.Main.Pages.Profile.Components;
public partial class EditAddressDialog : ComponentBase
{
[CascadingParameter] private MudDialogInstance MudDialog { get; set; } = default!;
[Inject] private UserAddressContract.UserAddressContractClient UserAddressContract { get; set; } = default!;
[Parameter] public GetAllUserAddressByFilterResponseModel? Model { get; set; }
private MudForm? _form;
private readonly UpdateUserAddressRequestValidator _validator = new();
private bool _isSaving;
private UpdateUserAddressRequest _request = new();
protected override void OnInitialized()
{
base.OnInitialized();
if (Model != null)
_request = Model.Adapt<UpdateUserAddressRequest>();
}
private async Task SaveAddress()
{
if (_form == null) return;
await _form.Validate();
if (!_form.IsValid) return;
_isSaving = true;
try
{
await UserAddressContract.UpdateUserAddressAsync(_request);
Snackbar.Add("آدرس با موفقیت ویرایش شد.", Severity.Success);
MudDialog.Close(DialogResult.Ok(true));
}
catch (Exception ex)
{
Snackbar.Add($"خطا: {ex.Message}", Severity.Error);
}
finally
{
_isSaving = false;
await InvokeAsync(StateHasChanged);
}
}
private void Cancel() => MudDialog.Cancel();
}