Пример #1
0
        private static void AddInPartnerUpdates(IPartnerDAO partnerDao, IStoreDAO storeDao, SyncModel syncModel, int fromVersion)
        {
            // Get all the partners that have changed since the last sync with this specific cloud server
            List <AndroAdminDataAccess.Domain.Partner> partners = (List <AndroAdminDataAccess.Domain.Partner>)partnerDao.GetAfterDataVersion(fromVersion);

            foreach (AndroAdminDataAccess.Domain.Partner partner in partners)
            {
                // Add the partner
                Partner syncPartner = new Partner()
                {
                    Id         = partner.Id,
                    ExternalId = partner.ExternalId,
                    Name       = partner.Name
                };

                syncModel.Partners.Add(syncPartner);

                // Get the partner DAO
                IACSApplicationDAO acsApplicationDao = AndroAdminDataAccessFactory.GetACSApplicationDAO();
                if (SyncHelper.ConnectionStringOverride != null)
                {
                    acsApplicationDao.ConnectionStringOverride = SyncHelper.ConnectionStringOverride;
                }

                // Get all the applications that have changed for this partner since the last sync with this specific cloud server
                IList <AndroAdminDataAccess.Domain.ACSApplication> acsApplications = acsApplicationDao.GetByPartnerAfterDataVersion(partner.Id, fromVersion);
                foreach (AndroAdminDataAccess.Domain.ACSApplication acsApplication in acsApplications)
                {
                    // Add the application
                    Application syncApplication = new Application()
                    {
                        Id = acsApplication.Id,
                        ExternalApplicationId = acsApplication.ExternalApplicationId,
                        Name = acsApplication.Name,
                        ExternalDisplayName = acsApplication.ExternalApplicationName
                    };
                    syncPartner.Applications.Add(syncApplication);

                    // Get all the application stores that have changed for this application since the last sync with this specific cloud server
                    StringBuilder siteIds = new StringBuilder();
                    IList <AndroAdminDataAccess.Domain.Store> acsApplicationStores = storeDao.GetByACSApplicationId(acsApplication.Id);
                    foreach (AndroAdminDataAccess.Domain.Store store in acsApplicationStores)
                    {
                        if (siteIds.Length > 0)
                        {
                            siteIds.Append(",");
                        }

                        siteIds.Append(store.AndromedaSiteId.ToString());
                    }

                    syncApplication.Sites = siteIds.ToString();
                }
            }
        }
Пример #2
0
        private static string GenerateExportJson(int fromDataVersion, out string exportJson)
        {
            string error = "";

            exportJson = "";
            int    toDataVersion = -1;
            string settingValue  = "";

            // Get the current data version
            error = AndroAdminDataAccessFactory.GetSettingsDAO().GetByName("DataVersion", out settingValue);

            if (String.IsNullOrEmpty(error))
            {
                if (!int.TryParse(settingValue, out toDataVersion))
                {
                    error = "Version setting is not a number: " + settingValue;
                }
            }
            SignpostSync signpostSync = null;

            if (String.IsNullOrEmpty(error))
            {
                List <SignpostACSApplication> signpostACSApplications = new List <SignpostACSApplication>();

                // Get the acs applications that have changed since the last sync
                IList <ACSApplication> acsApplications = AndroAdminDataAccessFactory.GetACSApplicationDAO().GetDataBetweenVersions(fromDataVersion, toDataVersion);

                signpostSync = new SignpostSync()
                {
                    fromVersion = fromDataVersion,
                    toVersion   = toDataVersion
                };

                foreach (ACSApplication acsApplication in acsApplications)
                {
                    // Get the sites for the acs application
                    IList <int> siteIds = AndroAdminDataAccessFactory.GetACSApplicationDAO().GetSites(acsApplication.Id);

                    // Put together the ACS application data
                    SignpostACSApplication signpostACSApplication = new SignpostACSApplication()
                    {
                        id = acsApplication.Id,
                        acsApplicationSites   = siteIds,
                        environmentId         = acsApplication.EnvironmentId,
                        externalApplicationId = acsApplication.ExternalApplicationId,
                        name = acsApplication.Name
                    };

                    signpostSync.acsApplicationSyncs.Add(signpostACSApplication);
                }
            }

            if (String.IsNullOrEmpty(error))
            {
                if (signpostSync != null)
                {
                    exportJson = JsonConvert.SerializeObject(signpostSync);
                }
            }

            return(error);
        }