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(); }
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); } }