private static void AddInHubTasks(SyncModel syncModel, int fromVersion) { //get the hub and site-hub data services IHubDataService hubDataDao = AndroAdminDataAccessFactory.GetHubDAO(); IStoreHubDataService storeHubDataDao = AndroAdminDataAccessFactory.GetSiteHubDAO(); IHubResetDataService storeHubResetDao = AndroAdminDataAccessFactory.GetHubResetDAO(); var signalRHubs = hubDataDao.GetAfterDataVersion(fromVersion); var activeHubs = signalRHubs.Where(e => !e.Removed && e.Active).ToList(); var inactiveHubs = signalRHubs.Where(e => e.Removed || !e.Active).ToList(); var resets = storeHubResetDao.GetStoresToResetAfterDataVersion(fromVersion); syncModel.HubUpdates = new CloudSyncModel.Hubs.HubUpdates() { ActiveHubList = activeHubs.Select(e => new CloudSyncModel.Hubs.HubHostModel() { Id = e.Id, Url = e.Address, SiteHubs = storeHubDataDao.GetSitesUsingHub(e.Id).Select(s => new CloudSyncModel.Hubs.SiteHubs() { HubId = e.Id, ExternalId = s.StoreExternalId }).ToList() }).ToList(), InActiveHubList = inactiveHubs.Select(e => new CloudSyncModel.Hubs.HubHostModel() { Id = e.Id, Url = e.Address, SiteHubs = new List <CloudSyncModel.Hubs.SiteHubs>()//empty list as the tables will enforce the dropping related rows }).ToList(), SiteHubHardwareKeyResets = resets.Select(e => new CloudSyncModel.Hubs.SiteHubReset() { AndromedaSiteId = e.AndromedaSiteId, ExternalSiteId = e.ExternalSiteId }).ToList() }; }