public override async Task <Enums.eSyncResult> SaveAndSync(ISUPModel sender) { InteraccionModel <InteraccionBusiness> interaccion = sender as InteraccionModel <InteraccionBusiness>; Enums.eSyncResult syncResult = Enums.eSyncResult.Synchronized; LocalTransaction localTransaction = CRMMobileDesaDB.BeginTransaction(); try { if (interaccion.Formulario_CodigoSAP != null) { // Save formularios guardarFormularios(interaccion); guardarRelevamientos(interaccion); } // Save this and sync Transacciones syncResult = await base.SaveAndSync(sender, new Func <ISUPModel, Task <bool> >(syncTransacciones)); localTransaction.Commit(); } catch (Exception ex) { localTransaction.Rollback(); throw ex; } return(syncResult); }
async private static void saveInteraccionActual(InteraccionModel <InteraccionBusiness> interaccion) { bool wasNew = interaccion.IsNew; // Se resguarda el valor pq luego de guardar ya no es nueva. string resultMsg = string.Empty; MessageBoxImage resultMsgType = MessageBoxImage.Information; try { Enums.eSyncResult syncResult = await interaccion.SaveAndSync(); switch (syncResult) { case Enums.eSyncResult.Pending: resultMsg = "Interacción nro. " + interaccion.IdInteraccion + " creada con éxito. \nPor favor ejecute la SINCRONIZACIÓN cuando esté conectado a internet."; resultMsgType = MessageBoxImage.Warning; break; case Enums.eSyncResult.Synchronized: resultMsg = "La interacción nro. " + interaccion.IdInteraccion + " ha sido creada y sincronizada con éxito."; break; } if (wasNew) { App.Locator.MainViewModelStatic.AddInteraccionToLeftPanel((InteraccionModel)interaccion); App.Locator.CalendarViewModelStatic.AddInteraccionToCalendar((InteraccionModel)interaccion); } ; CRMMessageBox.ShowSuccess(resultMsg, resultMsgType); // Mostrar la nueva interaccion creada. App.Locator.MainViewModelStatic.FechaSeleccionada = interaccion.FechaInicioPlanificada.Value; interaccion = null; // Clear ViewModel Interaccion NavigationHelper.NavigateHome(); } catch (Exception ex) { App.CurrentLoggingContext.LogException(ex); Task.Factory.StartNew(() => { App.Locator.InteraccionViewModelStatic.ConfigureView(); }); CRMMessageBox.ShowError("Error al guardar los datos de la interacción."); } }