public void ParseButtonClicked(object sender, RoutedEventArgs args) { var directory = new DirectoryInfo(InputRootDirectoryPath); var outputDirectory = new DirectoryInfo(OutputRootDirectoryPath); bool exportSqlite = ExportSqlite.IsChecked ?? false; bool exportJson = ExportJson.IsChecked ?? false; bool shouldOverwrite = ShouldOverwrite.IsChecked ?? false; PersistSettings(); Task.Factory.StartNew(() => { if (shouldOverwrite && exportSqlite) { LibraryParsing.CreateDatabase(SqliteFilepath); } ParseMetadataRecursive(directory, outputDirectory, "", exportSqlite, exportJson, shouldOverwrite); CurrentDirectoryPath = "Finished!"; }); }