Beispiel #1
0
        static void Main()
        {
            var dataType      = PromptDataTypeInput();
            var factory       = new DataContextFactory(CONNECTION_STRING);
            var dataProcessor = DataProcessorFactory.GetDataProcessor(factory, dataType);

            var fileName = SelectGeoJsonFile();

            if (string.IsNullOrEmpty(fileName))
            {
                ConsoleLogger.WriteWarning("No file is selected.");
            }

            var fileContent = File.ReadAllText(fileName);

            try
            {
                dataProcessor.ParseFileData(fileContent);
                ConsoleLogger.WriteSuccess("Imported data parsed!");

                if (PromptYesNo("Would you like to sync data with database?"))
                {
                    var rewriteWaterObjects = PromptYesNo("Rewrite existing water objects in the database?");
                    ConsoleLogger.WriteText("Starting data synchronation...");
                    dataProcessor.SyncWithDataBase(rewriteWaterObjects);
                    ConsoleLogger.WriteSuccess("The database has been updated!");
                }

                if (PromptYesNo("Would you like to write result data into JSON file?"))
                {
                    var outputFileData = dataProcessor.GetOutputFileData();

                    ConsoleLogger.WriteText("Enter file name:");
                    var filename = Console.ReadLine().Trim();

                    var settings = new JsonSerializerSettings
                    {
                        ContractResolver = new CamelCasePropertyNamesContractResolver(),
                        Formatting       = Formatting.None
                    };

                    ConsoleLogger.WriteText("Writing geo data into JSON file...");

                    var outputFileContent = JsonConvert.SerializeObject(outputFileData, settings);
                    File.WriteAllText($"{filename}.json", outputFileContent, Encoding.UTF8);
                    ConsoleLogger.WriteSuccess("The JSON file generated.");
                }
            }
            catch (Exception exception)
            {
                ConsoleLogger.WriteError("An unexpected exception occured.", exception);
            }

            ConsoleLogger.WriteSuccess("Done!");
            Console.ReadKey();
        }
Beispiel #2
0
        public static void Main(string[] args)
        {
            // TODO: REMOVE AFTER RESHARPER FIX BUG https://youtrack.jetbrains.com/issue/RSRP-466882
            if (args.Contains("--disablePipedInput"))
            {
                DisablePipedInput   = true;
                IsSilentModeEnabled = false;
            }

            // TODO: REMOVE AFTER RESHARPER FIX BUG https://youtrack.jetbrains.com/issue/RSRP-466882

            Logger = new QpUpdateLoggingWrapper();
            Logger.Info($"QuantumArt DbUpdate for QP8 version 6.0. Version: {CommonHelpers.GetAssemblyVersion()}. Args: {args.ToJsonLog()}");

            try
            {
                ConsoleHelpers.SetupConsole();
                ConsoleHelpers.PrintHelloMessage();
                ConsoleHelpers.ReadFromStandardInput();

                var selectedMode = ConsoleHelpers.GetUtilityMode(args);
                Logger.SetLogLevel(VerboseLevel);

                var argsParser = ConsoleArgsProcessorFactory.Create(selectedMode);
                var settings   = argsParser.ParseConsoleArguments(args);
                Logger.Debug($"Parsed settings: {settings.ToJsonLog()}");

                var dataProcessor = DataProcessorFactory.Create(settings);
                if (Console.IsInputRedirected && !DisablePipedInput)
                {
                    dataProcessor.Process(StandardInputData);
                }
                else
                {
                    dataProcessor.Process();
                }

                Logger.Debug("Processing successfuly finished..");
                ConsoleHelpers.ExitProgram(ExitCode.Success);
            }
            catch (OptionException ex)
            {
                Logger.Error($"Some params to qpupdate utility was wrong. Option name: \"{ex.OptionName}\"", ex);
                ConsoleHelpers.ExitProgram(ExitCode.Error);
            }
            catch (XmlDbUpdateLoggingException ex)
            {
                Logger.Warn("Some problems were countered while updating database", ex);
                ConsoleHelpers.ExitProgram(ExitCode.DbUpdateError);
            }
            catch (XmlDbUpdateReplayActionException ex)
            {
                Logger.Error("There was a problem while replaying xml db update process", ex);
                ConsoleHelpers.ExitProgram(ExitCode.Error);
            }
            catch (Exception ex)
            {
                Logger.Fatal("There was an unexpected exception in xml db updater", ex);
                ConsoleHelpers.ExitProgram(ExitCode.Error);
            }
        }