Esempio n. 1
0
        public Task Execute(IJobExecutionContext context)
        {
            var serviceProvider = context.Scheduler.Context.Get(QuartzScheduler.SERVICE_PROVIDER) as IServiceProvider;
            var jobData         = QuartzScheduler.GetJobDataConfiguration <FintoDataJobDataConfiguration>(context.JobDetail);

            ExecuteInternal(() =>
            {
                var settings     = FintoJobExtension.GetSettings(jobData.DownloadType);
                var typeSettings = FintoJobExtension.SetDownloadDefinition(settings, jobData.DownloadType);

                var downloadFintoTask = new DownloadFintoDataTask();
                downloadFintoTask.DownloadData(settings).Wait();
                if (typeSettings.MergeTo == null)
                {
                    return;
                }

                var service = serviceProvider.GetService <ISeedingService>();
                service?.SeedOntologyTerms(typeSettings.MergeTo, context.JobDetail.Key.Name);
            }, context);
            return(Task.CompletedTask);
        }
Esempio n. 2
0
        public static void ProcessMenuAction(ProgramMenuOption userMenuAction, ILogger logger)
        {
            Console.WriteLine($"Calling '{userMenuAction}'...");
            switch (userMenuAction)
            {
            case ProgramMenuOption.InitialPtvCreate:
                Stopwatch sw      = new Stopwatch();
                Stopwatch swTotal = new Stopwatch();
                swTotal.Start();

                // create and apply migrations
                System.Console.WriteLine("Creating new database...");
                sw.Start();
                FrameworksInitializer.DoMigration(Program.ServiceProvider);
                sw.Stop();
                string msg = $"Database created in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();

                // seed system data
                System.Console.WriteLine("Seeding system data to database..");
                sw.Restart();
                FrameworksInitializer.SeedDatabase(Program.ServiceProvider);
                sw.Stop();
                msg = $"System data seeded to database in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();

                // Seed finto data
                System.Console.WriteLine("Seeding finto data..");
                sw.Restart();
                ImportFintoDataTask fintoTask = new ImportFintoDataTask(Program.ServiceProvider);
                fintoTask.ImportData();
                sw.Stop();
                System.Console.WriteLine();
                msg = $"Finto items imported in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();

                // Seed digital authorizations
                System.Console.WriteLine("Seeding digital authorizations..");
                sw.Restart();
                var importDigitalAuthorizations = new DownloadAndImportDigitalAuthorizationsTask(ServiceProvider);
                importDigitalAuthorizations.ImportDigitalAuthorizations();
                sw.Stop();
                System.Console.WriteLine();
                msg = $"Digital authorization items imported in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();

                // Create organizations for municipalities
                System.Console.WriteLine("Creating organizations for municipalities..");
                sw.Restart();
                CreateMunicipalityOrganizationsTask munOrgTask = new CreateMunicipalityOrganizationsTask(Program.ServiceProvider);
                munOrgTask.Create();
                sw.Stop();
                System.Console.WriteLine();
                msg = $"Organizations for municipalities created in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();

                // import general descriptions
                System.Console.WriteLine("Importing general descriptions from JSON file..");
                sw.Restart();
                UpdateCreateGeneralDescriptionsTask generalDescriptionsTask = new UpdateCreateGeneralDescriptionsTask(ServiceProvider);
                generalDescriptionsTask.ImportDataFromJSON();
                CreateServiceDataForGeneralDescriptionsJsonTask createServicesDescTask = new CreateServiceDataForGeneralDescriptionsJsonTask(Program.ServiceProvider);
                createServicesDescTask.ImportDataFromJSON();
                sw.Stop();
                System.Console.WriteLine();
                msg = $"General descriptions imported in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();

                // import fake ptv data from json
                System.Console.WriteLine("Starting fake PTV import..");
                sw.Restart();
                ImportTask fakeit = new ImportTask(Program.ServiceProvider);
                fakeit.ImportFakePtv();
                sw.Stop();
                msg = $"Fake PTV import complete in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();
                var languagesAndVersionsTask = new UpdateLangaugeAvailabilitiesAndVersions(Program.ServiceProvider);
                languagesAndVersionsTask.CheckAndUpdateLangaugeAvailabilitiesAndVersions();
                //Update text description to Json
                var updateTextDescriptionTask = new UpdateTextDescriptionToJsonTask(Program.ServiceProvider);
                updateTextDescriptionTask.CheckAndUpdateTextDescriptionToJson();

                swTotal.Stop();
                msg = $"Create, seed and import data, total time: {swTotal.Elapsed}";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();

                System.Console.WriteLine("See log files in /logs subfolder for details.");
                break;

            case ProgramMenuOption.CreateOrMigrateDatabase:
                // create and apply migrations
                System.Console.WriteLine("Applying migrations...");
                FrameworksInitializer.DoMigration(Program.ServiceProvider);
                System.Console.WriteLine("Database created.");
                break;

            case ProgramMenuOption.SeedSystemData:
                // seed system data
                System.Console.WriteLine("Seeding system data to database..");
                FrameworksInitializer.SeedDatabase(Program.ServiceProvider);
                System.Console.WriteLine("System data seeded to database.");
                break;

            case ProgramMenuOption.DownloadGeneralDescription:
                // import general descriptions
                System.Console.WriteLine("Downloading general descriptions from DB to file..");
                sw = new Stopwatch();
                sw.Restart();
                UpdateCreateGeneralDescriptionsTask downloadDescTask = new UpdateCreateGeneralDescriptionsTask(Program.ServiceProvider);
                downloadDescTask.DownloadFromDatabase();
                sw.Stop();

                System.Console.WriteLine();
                msg = $"General descriptions downloaded in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();
                break;

            case ProgramMenuOption.UpdateGeneralDescription:
                // import general descriptions
                System.Console.WriteLine("Importing general descriptions from JSON file..");
                sw = new Stopwatch();
                sw.Restart();
                UpdateCreateGeneralDescriptionsTask updateDescTask = new UpdateCreateGeneralDescriptionsTask(Program.ServiceProvider);
                updateDescTask.ImportDataFromJSON();
                sw.Stop();

                System.Console.WriteLine();
                msg = $"General descriptions imported in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();
                break;

            case ProgramMenuOption.CreateMunicipalityOrganizations:
                System.Console.WriteLine("Creating Organizations for Municipalities.");
                CreateMunicipalityOrganizationsTask municipalityOrganizationsTask = new CreateMunicipalityOrganizationsTask(Program.ServiceProvider);
                municipalityOrganizationsTask.Create();
                break;

            //case ProgramMenuOption.ImportGeneralDescriptions:
            //    System.Console.WriteLine("Generating general descriptions JSON...");
            //    CreateGeneralDescriptionsJsonTask generalDescriptionTask = new CreateGeneralDescriptionsJsonTask(Program.ServiceProvider);
            //    generalDescriptionTask.Generate();
            //    System.Console.WriteLine("General descriptions JSON generation complete.");
            //    break;
            //case ProgramMenuOption.ImportFakePtv:
            //    System.Console.WriteLine("Starting fake PTV import..");
            //    ImportTask it = new ImportTask(Program.ServiceProvider);
            //    it.ImportFakePtv();
            //    System.Console.WriteLine("Fake PTV import complete.");
            //    break;
            case ProgramMenuOption.DumpFakePtv:
                System.Console.WriteLine("Starting to dump fake PTV to JSON files..");
                DumpFakePtvToFilesTask task = new DumpFakePtvToFilesTask(Program.ServiceProvider);
                task.WriteToFiles();
                System.Console.WriteLine("Fake PTV dumped to JSON files.");
                break;

            case ProgramMenuOption.ValidateFakePtvJson:
                System.Console.WriteLine("Starting to validate fake PTV generated JSON files to model..");

                try
                {
                    DumpFakePtvToFilesTask validationTask = new DumpFakePtvToFilesTask(Program.ServiceProvider);
                    validationTask.ValidateJson();
                    System.Console.WriteLine("Validation success.");
                }
                catch (Exception ex)
                {
                    System.Console.WriteLine(ex.ToString());

                    System.Console.BackgroundColor = ConsoleColor.Red;
                    System.Console.Write("Error:");
                    System.Console.ResetColor();
                    System.Console.WriteLine($" check the SourceXXX model, {ex.Message}");
                }
                break;

            case ProgramMenuOption.CreatePostalCodesJson:
                System.Console.WriteLine("Generating postal codes JSON..");
                CreatePostalCodesJsonTask pct = new CreatePostalCodesJsonTask(Program.ServiceProvider);
                pct.Generate();
                System.Console.WriteLine("Postal codes JSON generation complete.");
                break;

            case ProgramMenuOption.ImportOrganizations:
                System.Console.WriteLine("Importing organizations JSON..");
                CreateOrganizationsJsonTask organizationTask = new CreateOrganizationsJsonTask(Program.ServiceProvider);
                organizationTask.ImportDataFromJSON();
                System.Console.WriteLine("Importing organizations complete.");
                break;

            case ProgramMenuOption.UpdateCoordinatesForAddress:
                System.Console.WriteLine("Updating addresses..");
                var addressTask = new UpdateCoordinatesForAddressesTask(Program.ServiceProvider);
                addressTask.UpdateAddresses();
                System.Console.WriteLine("Updating addresses complete.");
                break;

            case ProgramMenuOption.ImportOrUpdateFinto:
                System.Console.WriteLine("Importing finto data..");
                var fintoUpdateTask = new ImportFintoDataTask(Program.ServiceProvider);
                fintoUpdateTask.ImportData();
                System.Console.WriteLine("Importing finto data complete.");
                break;

            case ProgramMenuOption.DownloadFinto:
                System.Console.WriteLine("Importing finto data..");
                var downloadFintoTask = new DownloadFintoDataTask();
                downloadFintoTask.GetAllFintoData();
                System.Console.WriteLine("Importing finto data complete.");
                break;

            //                        case ProgramMenuOption.SwitchCoordinates:
            //                            System.Console.WriteLine("Switching coordinates..");
            //                            var addressSwitchTask = new UpdateCoordinatesForAddressesTask(Program.ServiceProvider);
            //                            addressSwitchTask.SwitchCoordinates();
            //                            System.Console.WriteLine("Switching coordinates complete.");
            //                            break;
            case ProgramMenuOption.UpdateLanguageAvailabilitiesAndVersions:
                var languagesAndVersions = new UpdateLangaugeAvailabilitiesAndVersions(Program.ServiceProvider);
                languagesAndVersions.CheckAndUpdateLangaugeAvailabilitiesAndVersions();
                break;

            case ProgramMenuOption.UpdateTextDescription:
                var updateTextDescription = new UpdateTextDescriptionToJsonTask(Program.ServiceProvider);
                updateTextDescription.CheckAndUpdateTextDescriptionToJson();
                break;

            case ProgramMenuOption.UpdateServiceDescriptionByGeneralDescription:
                Console.WriteLine($"Update operation can take few minutes...");
                var updateBackgroundGeneralDescription = new UpdateServiceDescriptionByGeneralDescriptionTask(Program.ServiceProvider);
                updateBackgroundGeneralDescription.CheckAndUpdateServiceDescriptionByGeneralDescription();
                Console.WriteLine("Update operation is complete.");
                break;

            case ProgramMenuOption.FindCyclicOrganizations:
                var findCylicOrganizationsTask = new FindCyclicOrganizationsTask(Program.ServiceProvider);
                findCylicOrganizationsTask.FindCyclicOrganizations();
                break;

            case ProgramMenuOption.DeleteOldData:
                var deleteOldDataTask = new DeleteOldDataTask(Program.ServiceProvider);
                deleteOldDataTask.DeleteOldData();
                break;

            case ProgramMenuOption.DownloadAndImportDigitalAuthorizations:
                var digitalAuthorizationsTask = new DownloadAndImportDigitalAuthorizationsTask(ServiceProvider);
                digitalAuthorizationsTask.DownloadAndImportDigitalAuthorizations();
                break;

            case ProgramMenuOption.FixFintoMerge:
                var fixFintoTask = new FixFintoTask(ServiceProvider);
                fixFintoTask.Apply();
                break;

            case ProgramMenuOption.DownloadPostalCodesFromCodeServiceTask:
                DownloadPostalCodesFromCodeServiceTask dpcTask = new DownloadPostalCodesFromCodeServiceTask(ServiceProvider);
                dpcTask.Download();
                break;

            case ProgramMenuOption.FixMultiPublishedEntities:
                FixMultiplePublishedEntitiesTask fixMultipleTask = new FixMultiplePublishedEntitiesTask(ServiceProvider);
                fixMultipleTask.Apply();
                break;

//                case ProgramMenuOption.PrintGDwithoutLaw:
//                    PrintGdWithoutLaw printGd = new PrintGdWithoutLaw(ServiceProvider);
//                    printGd.Apply();
//                    break;
            case ProgramMenuOption.CopyLawsFromArchivedToPublishedGeneralDescs:
                CopyLawsOfGeneralDescs copyLaws = new CopyLawsOfGeneralDescs(ServiceProvider);
                copyLaws.Apply();
                break;

//                case ProgramMenuOption.PrintMissingGDSWELaws:
//                    CopyLawsOfGeneralDescs copyLaws2 = new CopyLawsOfGeneralDescs(ServiceProvider);
//                    copyLaws2.PrintMissingSweLaws();
//                    break;
            default:
                break;
            }
        }