private void SyncEntryPoint(object sender, ElapsedEventArgs e) { SyncronizerStatus.Enabled = Syncronizer.Enabled = false; var Config = new SyncStartingEventArgs(); OnSyncStarting(Config); if (!Config.Cancel) try { lastNotifier = Config.Notifier; CurrentContext = new ConfigurationModelManager(); Config.Notifier.SetProcess("Iniciando conexion"); bool finishState = false; Config.Notifier.SetProgress(0); int step = 0; foreach (var item in Steps) { Config.Notifier.SetProgress(++step * 100 / Steps.Count); Config.Notifier.Log(TraceLevel.Verbose, string.Format("Executing {0}, step {1}", item.Method,step)); finishState = item(Config); if (!finishState) break; } Config.Notifier.SetUserMessage(!finishState, "Sincronizacion Finalizada"); Config.Notifier.SetProgress(100); Config.Notifier.SetProcess(finishState ? "Listo" : "Error"); LastSync = DateTime.Now; } catch (Exception ex) { Config.Notifier.Log(TraceLevel.Error, string.Format("Sincronizacion Finalizada con error. {0}", ex)); Config.Notifier.SetUserMessage(true, "Sincronizacion Finalizada con error: " + ex.Message); Config.Notifier.SetProgress(100); Config.Notifier.SetProcess("Error"); } finally { if (CurrentContext != null) CurrentContext.Dispose(); } Config.Cancel = false; OnSyncFinished(); SyncronizerStatus.Enabled = Syncronizer.Enabled = true; }