Ejemplo n.º 1
0
        public static void Main()
        {
            try
            {
                _logger       = InitializeLogger();
                _emailService = new DummyEmailService();
                _logger.LogInformation("Creating OData container connection.");

                Uri odataWs = new Uri(ConfigurationManager.AppSettings["EsasWsUri"]);

                EsasWsContextFactory esasWsContextFactory = new EsasWsContextFactory(_esasSecuritySettings, odataWs, _logger);

                EsasWebServiceHealthChecker esasWebServiceHealthChecker = new EsasWebServiceHealthChecker(ConfigurationManager.AppSettings["EsasWsUri"], _esasSecuritySettings, _logger);
                _logger.LogInformation("Establishing sync-strategies.");

                IEsasDbContextFactory esasStagingDbContextFactory = new EsasDbContextFactory();
                IEnumerable <IEsasStagingDbDestination> esasStagingDbSyncStrategies = CreateEsasStagingDbDestinations(_logger);

                IEsasSyncDestination    stagingDbDestination      = new EsasStagingDbSyncDestination(esasStagingDbContextFactory, esasStagingDbSyncStrategies);
                ISyncResultsDestination whereToSendTheSyncResults = new EsasStagingDbLoadResultDestination(esasStagingDbContextFactory);
                ILoadTimeStrategy       loadTimeStrategy          = new LatestSuccesfulLoadStrategy(esasStagingDbContextFactory);

                IList <SyncStrategyBundle> syncStrategyBundles = new List <SyncStrategyBundle>();

                IEnumerable <IEsasSyncStrategy> standardEntitiesSyncs = CreateStandardEntitiesSyncs(esasWsContextFactory, whereToSendTheSyncResults, loadTimeStrategy, _logger, stagingDbDestination);

                // Create strategy-bundles for N-minute intervals for A am thru B pm, fx. 6 to 22:
                for (int hour = 6; hour < 22; hour++)
                {
                    for (int minutes = 0; minutes < 60; minutes += 30)
                    {
                        TimeSpan           syncTimeSpan = new TimeSpan(hour, minutes, 0);
                        SyncStrategyBundle bundle       = new SyncStrategyBundle(syncTimeSpan, standardEntitiesSyncs, _logger);
                        syncStrategyBundles.Add(bundle);
                    }
                }

                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[]
                {
                    new EsasSynchronizationService(syncStrategyBundles, esasStagingDbContextFactory, esasWebServiceHealthChecker, _logger, _emailService)
                };
#if (!DEBUG)
                // windows service rock'n roll
                ServiceBase.Run(ServicesToRun);
#else
                #region devSync - for manuel syncs.


                List <string> positivListe = new List <string>();

                #region strategyList
                // ***Virksomheds - og person - oplysninger ***
                positivListe.Add("LandLoadStrategy");
                positivListe.Add("KommuneLoadStrategy");
                positivListe.Add("PostnummerLoadStrategy");
                positivListe.Add("BrancheLoadStrategy");
                positivListe.Add("InstitutionVirksomhedLoadStrategy");
                positivListe.Add("InstitutionsoplysningerLoadStrategy");
                positivListe.Add("AfdelingsniveauLoadStrategy");
                positivListe.Add("AfdelingLoadStrategy");
                positivListe.Add("PersonLoadStrategy");
                positivListe.Add("PersonoplysningLoadStrategy");

                // *** opsætningstabeller, som øvrige syncs er afhængige af. ***
                positivListe.Add("AnsoegningskortOpsaetningLoadStrategy");
                positivListe.Add("PubliceringLoadStrategy");
                positivListe.Add("AdgangskravLoadStrategy");
                positivListe.Add("FravaersaarsagLoadStrategy");

                ////////// *** Uddannelsesaktiviteter ***
                positivListe.Add("UddannelsesaktivitetLoadStrategy");
                positivListe.Add("UddannelsesstrukturLoadStrategy");
                positivListe.Add("StruktureltUddannelseselementLoadStrategy");
                positivListe.Add("AktivitetsudbudLoadStrategy");

                //// *** PUE//Hold ***
                positivListe.Add("PlanlaegningsUddannelseselementLoadStrategy");
                positivListe.Add("HoldLoadStrategy");
                positivListe.Add("SamlaesningLoadStrategy");

                //// *** Ansøgninger ***
                positivListe.Add("RekvirenttypeLoadStrategy");
                positivListe.Add("AnsoegerLoadStrategy");
                positivListe.Add("AnsoegningsopsaetningLoadStrategy");
                positivListe.Add("AnsoegningskortTekstLoadStrategy");
                positivListe.Add("AnsoegningskortLoadStrategy");
                positivListe.Add("EksamenstypeLoadStrategy");
                positivListe.Add("OmraadenummerLoadStrategy");
                positivListe.Add("OmraadenummeropsaetningLoadStrategy");
                positivListe.Add("OmraadespecialiseringLoadStrategy");
                positivListe.Add("SpecialiseringLoadStrategy");
                positivListe.Add("AfslagsbegrundelseLoadStrategy");
                positivListe.Add("AnsoegningLoadStrategy");
                positivListe.Add("AnsoegningshandlingLoadStrategy");
                positivListe.Add("AnsoegningPlanlaegningsUddannelseselementLoadStrategy");
                positivListe.Add("BilagLoadStrategy");
                positivListe.Add("NationalAfgangsaarsagLoadStrategy");
                positivListe.Add("EnkeltfagLoadStrategy");

                //***GUEer / Studieforløb * **
                positivListe.Add("IndskrivningsformLoadStrategy");
                positivListe.Add("StudieforloebLoadStrategy");
                positivListe.Add("BedoemmelsesrundeLoadStrategy");
                positivListe.Add("KarakterLoadStrategy");
                positivListe.Add("GennemfoerelsesUddannelseselementLoadStrategy");
                positivListe.Add("BedoemmelseLoadStrategy");
                positivListe.Add("StudieinaktivPeriodeLoadStrategy");
                positivListe.Add("MeritRegistreringLoadStrategy");
                positivListe.Add("PraktikomraadeLoadStrategy");
                positivListe.Add("PraktikopholdLoadStrategy");
                //positivListe.Add("BevisgrundlagLoadStrategy"); --meget stor og omfattende tabel, er ikke sikker på dens forretningsværdi.Udelader den, for now.

                ////// *** Øvrige ***
                positivListe.Add("OptionSetValueLoadStrategy");
                #endregion strategyList

                var debugSyncStrategy   = new LatestSuccesfulLoadStrategy(esasStagingDbContextFactory);
                var debugSyncStrategies = CreateStandardEntitiesSyncs(esasWsContextFactory, whereToSendTheSyncResults, debugSyncStrategy, _logger, stagingDbDestination);

                //// tilføj initial-optionsetvaluestring load
                IEsasSyncStrategy initialOptionSetValueBulkLoadStrategy = new EsasSyncStrategy(new SyncStrategySettings {
                    SyncPriorityNumber = 1000
                },
                                                                                               new OptionSetValueLoadStrategy(esasWsContextFactory, _logger), stagingDbDestination, whereToSendTheSyncResults, _logger);
                debugSyncStrategies.Add(initialOptionSetValueBulkLoadStrategy);

                var initielleStrategier = debugSyncStrategies.Where(strat =>
                                                                    positivListe.Contains(strat.EsasEntitiesLoaderStrategy.GetType().Name)
                                                                    ||
                                                                    strat.EsasEntitiesLoaderStrategy.GetType().Name == "OptionSetValueInitialBulkLoadStrategy"
                                                                    );
                SyncStrategyBundle initialSaveToFileSyncBundle = new SyncStrategyBundle(
                    syncTime: new TimeSpan(01, 00, 00), // let's go back just a day for this manuel debug sync
                    syncStrategies: initielleStrategier,
                    logger: _logger);

                EsasSynchronizationService service = new EsasSynchronizationService(new List <SyncStrategyBundle>()
                {
                    initialSaveToFileSyncBundle
                }, esasStagingDbContextFactory, esasWebServiceHealthChecker, _logger, _emailService);
                initialSaveToFileSyncBundle.ExecuteSync();

                #endregion
#endif
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message, ex);
                _emailService.SendStatusMail("Error in start of ESAS sync service", ex.Message);
                throw;
            }
        }
Ejemplo n.º 2
0
        private static List <IEsasSyncStrategy> CreateStandardEntitiesSyncs(EsasWsContextFactory esasWsContextFactory, ISyncResultsDestination whereToSendTheSyncResults, ILoadTimeStrategy loadTimeStrategy, ILogger logger, IEsasSyncDestination stagingDbDestination)
        {
            // let's hook up some sync-strategies
            List <IEsasSyncStrategy> standardEntitiesSyncs = new List <IEsasSyncStrategy>();

            // Virksomheds- og person-oplysninger
            IEsasSyncStrategy LandSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 30
            }, new LandLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(LandSync);
            IEsasSyncStrategy KommuneSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 35
            }, new KommuneLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(KommuneSync);
            IEsasSyncStrategy PostNrSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 40
            }, new PostnummerLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(PostNrSync);
            IEsasSyncStrategy BrancheSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 45
            }, new BrancheLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(BrancheSync);

            IEsasSyncStrategy InstitutionsVirksomhedSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 50
            }, new InstitutionVirksomhedLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(InstitutionsVirksomhedSync);
            IEsasSyncStrategy InstInstitutionsoplysningerSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 60
            }, new InstitutionsoplysningerLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(InstInstitutionsoplysningerSync);
            IEsasSyncStrategy AAfdelingsniveauSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 65
            }, new AfdelingsniveauLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(AAfdelingsniveauSync);
            IEsasSyncStrategy AfdelingSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 70
            }, new AfdelingLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(AfdelingSync);

            IEsasSyncStrategy PersonSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 75
            }, new PersonLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(PersonSync);
            IEsasSyncStrategy PersonOplysningSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 80
            }, new PersonoplysningLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(PersonOplysningSync);

            // opsætningstabeller, som øvrige syncs er afhængige af.
            IEsasSyncStrategy AnsøgningskortopsætningSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 90
            }, new AnsoegningskortOpsaetningLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(AnsøgningskortopsætningSync);
            IEsasSyncStrategy PubliceringsSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 91
            }, new PubliceringLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(PubliceringsSync);
            IEsasSyncStrategy AdgangskravSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 92
            }, new AdgangskravLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(AdgangskravSync);


            // Uddannelsesaktiviteter
            IEsasSyncStrategy UddannelsesaktivitetSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 100
            }, new UddannelsesaktivitetLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(UddannelsesaktivitetSync);
            IEsasSyncStrategy UddannelsesstrukturSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 200
            }, new UddannelsesstrukturLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(UddannelsesstrukturSync); // Uddannelsesstrukturen består af strukturelle uddannelseselementer på bekendtgørelsesniveau og på studieordningsniveau.
            IEsasSyncStrategy SueSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 250
            }, new StruktureltUddannelseselementLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(SueSync); // Et strukturelt uddannelseselement er enten et semester, et f*g eller en gruppering
            IEsasSyncStrategy AktivitetsUdbudSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 300
            }, new AktivitetsudbudLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(AktivitetsUdbudSync);

            // PUE//Hold
            IEsasSyncStrategy PueSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 400
            }, new PlanlaegningsUddannelseselementLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(PueSync);
            IEsasSyncStrategy HoldSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 410
            }, new HoldLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(HoldSync);
            IEsasSyncStrategy SamlæsningSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 420
            }, new SamlaesningLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(SamlæsningSync);

            // Ansøgninger
            IEsasSyncStrategy RekvirenttypeSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 490
            }, new RekvirenttypeLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(RekvirenttypeSync);
            IEsasSyncStrategy AnsøgerSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 500
            }, new AnsoegerLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(AnsøgerSync);

            IEsasSyncStrategy AnsøgningsopsætningSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 520
            }, new AnsoegningsopsaetningLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(AnsøgningsopsætningSync);

            IEsasSyncStrategy AnsøgningsKorttekstSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 530
            }, new AnsoegningskortTekstLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(AnsøgningsKorttekstSync);

            IEsasSyncStrategy AnsøgningskortSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 540
            }, new AnsoegningskortLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(AnsøgningskortSync);

            IEsasSyncStrategy EksamenstypeSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 550
            }, new EksamenstypeLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(EksamenstypeSync);

            IEsasSyncStrategy OmrådenummerSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 555
            }, new OmraadenummerLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(OmrådenummerSync);

            IEsasSyncStrategy Områdenummeropsætningsync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 560
            }, new OmraadenummeropsaetningLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(Områdenummeropsætningsync);

            IEsasSyncStrategy OmrådeSpecialiseringSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 570
            }, new OmraadespecialiseringLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(OmrådeSpecialiseringSync);

            IEsasSyncStrategy SpecialiseringSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 580
            }, new SpecialiseringLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(SpecialiseringSync);

            IEsasSyncStrategy AfslagsbegrundelseSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 590
            }, new AfslagsbegrundelseLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(AfslagsbegrundelseSync);

            IEsasSyncStrategy AnsøgningSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 600
            }, new AnsoegningLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(AnsøgningSync);

            IEsasSyncStrategy AnsøgninghandlingSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 610
            }, new AnsoegningshandlingLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(AnsøgninghandlingSync);

            IEsasSyncStrategy BilagSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 620
            }, new BilagLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(BilagSync);

            IEsasSyncStrategy NationalAfgangsårsagSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 630
            }, new NationalAfgangsaarsagLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(NationalAfgangsårsagSync);

            IEsasSyncStrategy EnkeltfagSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 640
            }, new EnkeltfagLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(EnkeltfagSync);


            // GUEer/Studieforløb
            IEsasSyncStrategy IndskrivningsformSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 695
            }, new IndskrivningsformLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(IndskrivningsformSync);

            IEsasSyncStrategy StudieforløbSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 700
            }, new StudieforloebLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(StudieforløbSync);

            IEsasSyncStrategy BedømmelsesrundeSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 720
            }, new BedoemmelsesrundeLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(BedømmelsesrundeSync);
            IEsasSyncStrategy KarakterSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 740
            }, new KarakterLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(KarakterSync);

            IEsasSyncStrategy GueSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 750
            }, new GennemfoerelsesUddannelseselementLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(GueSync);

            IEsasSyncStrategy Bedømmelsesync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 760
            }, new BedoemmelseLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(Bedømmelsesync);

            // TODO: Fraværsårsag mangler endpoint - afvent SIU
            IEsasSyncStrategy FravaersaarsagSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 770
            }, new FravaersaarsagLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(FravaersaarsagSync);

            IEsasSyncStrategy StudieinaktivPeriodeSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 780
            }, new StudieinaktivPeriodeLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(StudieinaktivPeriodeSync);

            IEsasSyncStrategy MeritRegistreringSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 790
            }, new MeritRegistreringLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(MeritRegistreringSync);

            IEsasSyncStrategy PraktikomraadeSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 800
            }, new PraktikomraadeLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(PraktikomraadeSync);
            IEsasSyncStrategy PraktikopholdSync = new EsasSyncStrategy(new SyncStrategySettings {
                SyncPriorityNumber = 810
            }, new PraktikopholdLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);

            standardEntitiesSyncs.Add(PraktikopholdSync);

            //IEsasSyncStrategy BevisgrundlagSync = new EsasSyncStrategy(new SyncStrategySettings { SyncPriorityNumber = 820 }, new BevisgrundlagLoadStrategy(esasWsContextFactory, loadTimeStrategy, logger), stagingDbDestination, whereToSendTheSyncResults, logger);
            //standardEntitiesSyncs.Add(BevisgrundlagSync); // Meget stor og omfattende tabel, er ikke sikker på dens forretningsværdi. Undlader den, for now.

            return(standardEntitiesSyncs);
        }