/// <summary> /// This call requieres ServiceLocator.Current.GetInstance<ILoggingContext>() /// </summary> /// <param name="sender"></param> /// <param name="syncTask"></param> /// <returns></returns> async public virtual Task <Enums.eSyncResult> SaveAndSync(ISUPModel sender, Func <ISUPModel, Task <bool> > syncTask = null) { bool synchronized = false; sender.SaveAndSubmitPending(); if (InternetConnection.IsOnline) { try { if (syncTask == null) { synchronized = await new Func <ISUPModel, Task <bool> >(getDefaultSyncTask).Invoke(sender); } else { synchronized = await new Func <ISUPModel, Task <bool> >(syncTask).Invoke(sender); } } catch (Exception ex) { ServiceLocator.Current.GetInstance <ILoggingContext>().LogException(ex); } } return(synchronized ? Enums.eSyncResult.Synchronized : Enums.eSyncResult.Pending); }
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; }
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); }
private string getEntitySyncGroup(ISUPModel sender) { MethodInfo syncGroupMethod = sender.GetType().GetMethod("GetSynchronizationGroup"); if (syncGroupMethod == null) return null; ISynchronizationGroup syncGroup = (ISynchronizationGroup)syncGroupMethod.Invoke(this, null); if (syncGroup == null) return null; return syncGroup.Name; }
private Task<bool> getDefaultSyncTask(ISUPModel sender) { string syncGroup = getEntitySyncGroup(sender); if (syncGroup == null) { return new Task<bool>(() => { return false; }); } else { return new Task<bool>(() => { return ModelHelper.GetSUPContext().Sync(syncGroup); }); } }
private Task <bool> getDefaultSyncTask(ISUPModel sender) { string syncGroup = getEntitySyncGroup(sender); if (syncGroup == null) { return(new Task <bool>(() => { return false; })); } else { return(new Task <bool>(() => { return ModelHelper.GetSUPContext().Sync(syncGroup); })); } }
private string getEntitySyncGroup(ISUPModel sender) { MethodInfo syncGroupMethod = sender.GetType().GetMethod("GetSynchronizationGroup"); if (syncGroupMethod == null) { return(null); } ISynchronizationGroup syncGroup = (ISynchronizationGroup)syncGroupMethod.Invoke(this, null); if (syncGroup == null) { return(null); } return(syncGroup.Name); }
/// <summary> /// This call requieres ServiceLocator.Current.GetInstance<ILoggingContext>() /// </summary> /// <param name="sender"></param> /// <param name="syncTask"></param> /// <returns></returns> async public virtual Task<Enums.eSyncResult> SaveAndSync(ISUPModel sender, Func<ISUPModel, Task<bool>> syncTask = null ) { bool synchronized = false; sender.SaveAndSubmitPending(); if (InternetConnection.IsOnline) { try { if(syncTask == null) synchronized = await new Func<ISUPModel, Task<bool>>(getDefaultSyncTask).Invoke(sender); else synchronized = await new Func<ISUPModel, Task<bool>>(syncTask).Invoke(sender); } catch (Exception ex) { ServiceLocator.Current.GetInstance<ILoggingContext>().LogException(ex); } } return synchronized ? Enums.eSyncResult.Synchronized : Enums.eSyncResult.Pending; }
/// <summary> /// This call requieres ServiceLocator.Current.GetInstance<ILoggingContext>() /// </summary> /// <param name="sender"></param> /// <returns></returns> async public virtual Task <Enums.eSyncResult> SaveAndSync(ISUPModel sender) { return(await SaveAndSync(sender, null)); }
private async Task<bool> syncTransacciones(ISUPModel sender) { App.Locator.SUPServiceStatic.SincronizarInteraccionesXInterlocutor(Session.RepresentanteComercialStatic.CodigoInterlocutor); return true; }
/// <summary> /// This call requieres ServiceLocator.Current.GetInstance<ILoggingContext>() /// </summary> /// <param name="sender"></param> /// <returns></returns> async public virtual Task<Enums.eSyncResult> SaveAndSync(ISUPModel sender) { return await SaveAndSync(sender, null); }
private async Task <bool> syncTransacciones(ISUPModel sender) { App.Locator.SUPServiceStatic.SincronizarInteraccionesXInterlocutor(Session.RepresentanteComercialStatic.CodigoInterlocutor); return(true); }