u
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
<MudDialog>
|
<MudDialog>
|
||||||
<TitleContent>
|
<TitleContent>
|
||||||
<MudText Typo="Typo.h4" Align="Align.Center">@(IsEdit ? "ویرایش آدرس" : "افزودن آدرس جدید")</MudText>
|
<MudText Typo="Typo.h4" Align="Align.Center">افزودن آدرس جدید</MudText>
|
||||||
</TitleContent>
|
</TitleContent>
|
||||||
<DialogContent>
|
<DialogContent>
|
||||||
<MudForm @ref="_form" Model="_request" Validation="@(_validator.ValidateValue)">
|
<MudForm @ref="_form" Model="_request" Validation="@(_validator.ValidateValue)">
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
OnClick="SaveAddress"
|
OnClick="SaveAddress"
|
||||||
Disabled="_isSaving"
|
Disabled="_isSaving"
|
||||||
FullWidth="true">
|
FullWidth="true">
|
||||||
@(IsEdit ? "ویرایش آدرس" : "افزودن آدرس")
|
افزودن آدرس
|
||||||
</MudButton>
|
</MudButton>
|
||||||
</DialogActions>
|
</DialogActions>
|
||||||
</MudDialog>
|
</MudDialog>
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
using FrontOffice.BFF.UserAddress.Protobuf.Protos.UserAddress;
|
||||||
|
using FrontOffice.BFF.UserAddress.Protobuf.Validator;
|
||||||
|
using Microsoft.AspNetCore.Components;
|
||||||
|
using MudBlazor;
|
||||||
|
using Severity = MudBlazor.Severity;
|
||||||
|
|
||||||
|
namespace FrontOffice.Main.Pages.Profile.Components;
|
||||||
|
|
||||||
|
public partial class AddAddressDialog : ComponentBase
|
||||||
|
{
|
||||||
|
[CascadingParameter] private MudDialogInstance MudDialog { get; set; } = default!;
|
||||||
|
[Inject] private UserAddressContract.UserAddressContractClient UserAddressContract { get; set; } = default!;
|
||||||
|
|
||||||
|
private MudForm? _form;
|
||||||
|
private readonly CreateNewUserAddressRequestValidator _validator = new();
|
||||||
|
private bool _isSaving;
|
||||||
|
private CreateNewUserAddressRequest _request = new();
|
||||||
|
|
||||||
|
private async Task SaveAddress()
|
||||||
|
{
|
||||||
|
if (_form == null) return;
|
||||||
|
|
||||||
|
await _form.Validate();
|
||||||
|
if (!_form.IsValid) return;
|
||||||
|
|
||||||
|
_isSaving = true;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var response = await UserAddressContract.CreateNewUserAddressAsync(_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();
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
<MudDialog>
|
||||||
|
<TitleContent>
|
||||||
|
<MudText Typo="Typo.h4" Align="Align.Center">ویرایش آدرس</MudText>
|
||||||
|
</TitleContent>
|
||||||
|
<DialogContent>
|
||||||
|
<MudForm @ref="_form" Model="_request" Validation="@(_validator.ValidateValue)">
|
||||||
|
<MudStack Spacing="3">
|
||||||
|
<MudTextField @bind-Value="_request.Title"
|
||||||
|
For="@(() => _request.Title)"
|
||||||
|
Label="عنوان آدرس"
|
||||||
|
Variant="Variant.Outlined"
|
||||||
|
Required="true"
|
||||||
|
RequiredError="عنوان آدرس الزامی است." />
|
||||||
|
|
||||||
|
<MudTextField @bind-Value="_request.Address"
|
||||||
|
For="@(() => _request.Address)"
|
||||||
|
Label="آدرس کامل"
|
||||||
|
Variant="Variant.Outlined"
|
||||||
|
Lines="3"
|
||||||
|
Required="true"
|
||||||
|
RequiredError="آدرس الزامی است." />
|
||||||
|
|
||||||
|
<MudTextField @bind-Value="_request.PostalCode"
|
||||||
|
For="@(() => _request.PostalCode)"
|
||||||
|
Label="کد پستی"
|
||||||
|
Variant="Variant.Outlined"
|
||||||
|
InputType="InputType.Text"
|
||||||
|
Required="true"
|
||||||
|
RequiredError="کد پستی الزامی است." />
|
||||||
|
|
||||||
|
<MudTextField @bind-Value="_request.CityId"
|
||||||
|
For="@(() => _request.CityId)"
|
||||||
|
Label="شناسه شهر"
|
||||||
|
Variant="Variant.Outlined"
|
||||||
|
InputType="InputType.Number"
|
||||||
|
Required="true"
|
||||||
|
RequiredError="شهر الزامی است." />
|
||||||
|
</MudStack>
|
||||||
|
</MudForm>
|
||||||
|
</DialogContent>
|
||||||
|
<DialogActions>
|
||||||
|
<MudButton Variant="Variant.Text"
|
||||||
|
OnClick="Cancel"
|
||||||
|
Disabled="_isSaving">لغو</MudButton>
|
||||||
|
<MudButton Variant="Variant.Filled"
|
||||||
|
Color="Color.Primary"
|
||||||
|
OnClick="SaveAddress"
|
||||||
|
Disabled="_isSaving">
|
||||||
|
ذخیره تغییرات
|
||||||
|
</MudButton>
|
||||||
|
</DialogActions>
|
||||||
|
</MudDialog>
|
||||||
@@ -5,26 +5,27 @@ using Microsoft.AspNetCore.Components;
|
|||||||
using MudBlazor;
|
using MudBlazor;
|
||||||
using Severity = MudBlazor.Severity;
|
using Severity = MudBlazor.Severity;
|
||||||
|
|
||||||
namespace FrontOffice.Main.Pages.Profile;
|
namespace FrontOffice.Main.Pages.Profile.Components;
|
||||||
|
|
||||||
public partial class AddressDialog : ComponentBase
|
public partial class EditAddressDialog : ComponentBase
|
||||||
{
|
{
|
||||||
[CascadingParameter] private MudDialogInstance MudDialog { get; set; } = default!;
|
[CascadingParameter] private MudDialogInstance MudDialog { get; set; } = default!;
|
||||||
[Inject] private UserAddressContract.UserAddressContractClient UserAddressContract { get; set; } = default!;
|
[Inject] private UserAddressContract.UserAddressContractClient UserAddressContract { get; set; } = default!;
|
||||||
|
|
||||||
[Parameter] public GetAllUserAddressByFilterResponseModel? Model { get; set; }
|
[Parameter] public GetAllUserAddressByFilterResponseModel? Model { get; set; }
|
||||||
[Parameter] public bool IsEdit { get; set; }
|
|
||||||
|
|
||||||
private MudForm? _form;
|
private MudForm? _form;
|
||||||
private readonly UpdateUserAddressRequestValidator _validator = new();
|
private readonly UpdateUserAddressRequestValidator _validator = new();
|
||||||
private bool _isSaving;
|
private bool _isSaving;
|
||||||
private UpdateUserAddressRequest _request = new();
|
private UpdateUserAddressRequest _request = new();
|
||||||
|
|
||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
base.OnInitialized();
|
base.OnInitialized();
|
||||||
if (Model != null)
|
if (Model != null)
|
||||||
_request = Model.Adapt<UpdateUserAddressRequest>();
|
_request = Model.Adapt<UpdateUserAddressRequest>();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task SaveAddress()
|
private async Task SaveAddress()
|
||||||
{
|
{
|
||||||
if (_form == null) return;
|
if (_form == null) return;
|
||||||
@@ -35,19 +36,9 @@ public partial class AddressDialog : ComponentBase
|
|||||||
_isSaving = true;
|
_isSaving = true;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (IsEdit)
|
await UserAddressContract.UpdateUserAddressAsync(_request);
|
||||||
{
|
Snackbar.Add("آدرس با موفقیت ویرایش شد.", Severity.Success);
|
||||||
await UserAddressContract.UpdateUserAddressAsync(_request);
|
MudDialog.Close(DialogResult.Ok(true));
|
||||||
Snackbar.Add("آدرس با موفقیت ویرایش شد.", Severity.Success);
|
|
||||||
MudDialog.Close(DialogResult.Ok(true));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var createRequest = _request.Adapt<CreateNewUserAddressRequest>();
|
|
||||||
var response = await UserAddressContract.CreateNewUserAddressAsync(createRequest);
|
|
||||||
Snackbar.Add("آدرس با موفقیت اضافه شد.", Severity.Success);
|
|
||||||
MudDialog.Close(DialogResult.Ok(true));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -3,6 +3,7 @@ using FrontOffice.BFF.User.Protobuf.Protos.User;
|
|||||||
using FrontOffice.BFF.User.Protobuf.Validator;
|
using FrontOffice.BFF.User.Protobuf.Validator;
|
||||||
using FrontOffice.BFF.UserAddress.Protobuf.Protos.UserAddress;
|
using FrontOffice.BFF.UserAddress.Protobuf.Protos.UserAddress;
|
||||||
using FrontOffice.BFF.UserAddress.Protobuf.Validator;
|
using FrontOffice.BFF.UserAddress.Protobuf.Validator;
|
||||||
|
using FrontOffice.Main.Pages.Profile.Components;
|
||||||
using FrontOffice.Main.Utilities;
|
using FrontOffice.Main.Utilities;
|
||||||
using Mapster;
|
using Mapster;
|
||||||
using Microsoft.AspNetCore.Components;
|
using Microsoft.AspNetCore.Components;
|
||||||
@@ -186,11 +187,7 @@ public partial class Index
|
|||||||
|
|
||||||
private async Task OpenAddAddressDialog()
|
private async Task OpenAddAddressDialog()
|
||||||
{
|
{
|
||||||
_newAddressRequest = new CreateNewUserAddressRequest();
|
var dialog = await DialogService.ShowAsync<AddAddressDialog>("افزودن آدرس جدید");
|
||||||
var dialog = await DialogService.ShowAsync<AddressDialog>("افزودن آدرس جدید", new DialogParameters<AddressDialog>
|
|
||||||
{
|
|
||||||
{ x => x.IsEdit, false }
|
|
||||||
});
|
|
||||||
var result = await dialog.Result;
|
var result = await dialog.Result;
|
||||||
|
|
||||||
if (!result.Canceled)
|
if (!result.Canceled)
|
||||||
@@ -201,10 +198,9 @@ public partial class Index
|
|||||||
|
|
||||||
private async Task OpenEditAddressDialog(GetAllUserAddressByFilterResponseModel address)
|
private async Task OpenEditAddressDialog(GetAllUserAddressByFilterResponseModel address)
|
||||||
{
|
{
|
||||||
var dialog = await DialogService.ShowAsync<AddressDialog>("ویرایش آدرس", new DialogParameters<AddressDialog>
|
var dialog = await DialogService.ShowAsync<EditAddressDialog>("ویرایش آدرس", new DialogParameters<EditAddressDialog>
|
||||||
{
|
{
|
||||||
{ x => x.Model, address },
|
{ x => x.Model, address }
|
||||||
{ x => x.IsEdit, true }
|
|
||||||
});
|
});
|
||||||
var result = await dialog.Result;
|
var result = await dialog.Result;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user