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 } }