public void InitializeSynchronizers(bool recovery = false) { if (recovery) { repo.Recovering = true; SQLiteRepositoryDAO dao = new SQLiteRepositoryDAO(); dao.Update(repo); } if (recovery || repo.Recovering) { SQLiteEventDAO eventDao = new SQLiteEventDAO(this.repo); eventDao.RemoveAllUnsynchronized(); recoverySynchronizer.Start(); } else { recoverySynchronizer.Skip(); } localSynchronizer.Start (); remoteSynchronizer.Start (); synchronizerResolver.Start(); }