Example #1
0
        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()
            };
        }