namespace Lux.UI.Components.Compo.Offer { public partial class OfferDelivery { #region Public Properties [Parameter] public OfferModel CurrRecord { get; set; } = null!; [Parameter] public EventCallback EC_Cancel { get; set; } [Parameter] public EventCallback EC_Updated { get; set; } #endregion Public Properties #region Protected Methods /// /// Chiamato automaticamente all'inizializzazione del componente. /// protected override Task OnInitializedAsync() { setOriginal(); return base.OnInitializedAsync(); } protected override void OnParametersSet() { setOriginal(); } #endregion Protected Methods #region Private Fields private bool isLoading = false; private OfferModel? OrigRecord = null; #endregion Private Fields #region Private Methods private Task DoCancel() { return EC_Cancel.InvokeAsync(true); } private Task DoSave() { // richiesta update con salvataggio record return EC_Updated.InvokeAsync(CurrRecord); } private bool HasChanged() { bool answ = false; if (OrigRecord != null && CurrRecord != null) { if (IsChanged(OrigRecord.DueDateReq, CurrRecord.DueDateReq)) return true; if (IsChanged(OrigRecord.DueDateProm, CurrRecord.DueDateProm)) return true; if (IsChanged(OrigRecord.ConsNote, CurrRecord.ConsNote)) return true; } return answ; } /// /// Verifica variazione tramite helper /// /// /// /// /// private bool IsChanged(T original, T edited) => CloneExtensions.IsChanged(original, edited); private void setOriginal() { if (CurrRecord != null && OrigRecord == null) { OrigRecord = CurrRecord.DeepClone(); } } #endregion Private Methods } }