@using salesbook.Shared.Core.Dto @using salesbook.Shared.Components.Layout @using salesbook.Shared.Core.Interface @using salesbook.Shared.Components.Layout.Overlay @inject IManageDataService ManageData @inject INetworkService NetworkService @inject IIntegryApiService IntegryApiService
Email
Fax
Cellulare
Telefono
@code { [CascadingParameter] private IMudDialogInstance MudDialog { get; set; } [Parameter] public PersRifDTO? OriginalModel { get; set; } [Parameter] public ContactDTO? ContactModel { get; set; } [Parameter] public List? PersRifList { get; set; } private PersRifDTO PersRifModel { get; set; } = new(); private bool IsNew => OriginalModel is null; private bool IsView => !NetworkService.ConnectionAvailable; private string? LabelSave { get; set; } //Overlay for save private bool VisibleOverlay { get; set; } private bool SuccessAnimation { get; set; } protected override async Task OnInitializedAsync() { Snackbar.Configuration.PositionClass = Defaults.Classes.Position.TopCenter; _ = LoadData(); LabelSave = IsNew ? "Aggiungi" : null; } private async Task Save() { VisibleOverlay = true; StateHasChanged(); if (ContactModel != null && PersRifList != null) { PersRifList.Add(PersRifModel); var requestDto = new CRMCreateContactRequestDTO { TipoAnag = ContactModel.IsContact ? "C" : "P", Cliente = ContactModel, PersRif = PersRifList, CodVage = ContactModel.CodVage, CodAnag = ContactModel.CodContact }; var response = await IntegryApiService.SaveContact(requestDto); switch (response) { case null: VisibleOverlay = false; StateHasChanged(); return; case {AnagClie: null, PtbPros: not null}: await ManageData.InsertOrUpdate(response.PtbPros); await ManageData.InsertOrUpdate(response.PtbProsRif); break; case { AnagClie: not null, PtbPros: null }: await ManageData.InsertOrUpdate(response.AnagClie); await ManageData.InsertOrUpdate(response.VtbCliePersRif); break; default: VisibleOverlay = false; StateHasChanged(); return; } } SuccessAnimation = true; StateHasChanged(); await Task.Delay(1250); MudDialog.Close(PersRifModel); } private async Task LoadData() { if (!IsNew) PersRifModel = OriginalModel!.Clone(); } private void OnAfterChangeValue() { if (!IsNew) { LabelSave = !OriginalModel.Equals(PersRifModel) ? "Aggiorna" : null; } } }