using Microsoft.AspNetCore.Components;
using Server.Data;
using Server.Model;
namespace Server.Components.Pages
{
public partial class CustomerPage : ComponentBase
{
#region Private Properties
private bool EditFormIsNew { get; set; }
private Address? EditFormObject { get; set; }
private bool EditFormShow { get; set; }
#endregion
#region Override SetParametersAsync
////
public override async Task SetParametersAsync(ParameterView parameters)
{
parameters.SetParameterProperties(this);
await CustomerData.LoadAsync();
await base.SetParametersAsync(ParameterView.Empty);
}
#endregion
#region Private Method DeleteCustomerAsync
///
/// Deletes the specified customer asynchronously.
///
/// The customer to be deleted.
/// A Task representing the asynchronous operation.
private async Task DeleteCustomerAsync(Address customer)
{
customer.State = RecordState.Deleted;
await CustomerData.SaveAsync();
}
#endregion
#region Private Method EditCustomerAsync
///
/// Initiates the edit process for a given customer asynchronously.
///
/// The customer to be edited.
/// A Task representing the asynchronous operation.
private Task EditCustomerAsync(Address customer)
{
EditFormIsNew = false;
EditFormObject = customer;
EditFormShow = true;
return Task.CompletedTask;
}
#endregion
#region Private Method HideEditFormAsync
///
/// Hides the edit form asynchronously.
///
/// A Task representing the asynchronous operation.
private Task HideEditFormAsync()
{
EditFormObject = new();
EditFormShow = false;
return Task.CompletedTask;
}
#endregion
#region Private Method SaveCustomerAsync
///
/// Saves the current customer data asynchronously.
///
/// A Task representing the asynchronous operation.
private async Task SaveCustomerAsync()
{
if (EditFormObject == null) return;
EditFormShow = false;
if (EditFormIsNew) CustomerData.Instance.Customers.Add(EditFormObject);
await CustomerData.SaveAsync();
EditFormObject = new();
}
#endregion
#region Private Method ShowCreateAsync
///
/// Displays the form for creating a new customer.
///
/// A Task representing the asynchronous operation.
private Task ShowCreateAsync()
{
EditFormIsNew = true;
EditFormObject = new();
EditFormShow = true;
return Task.CompletedTask;
}
#endregion
}
}