private static IFileExport GetExport(string flag) { Enumerations.ExportFileStructure export = Enumerations.ExportFileStructure.None; if (flag.Equals(m_Export_TextFile, StringComparison.OrdinalIgnoreCase)) { export = Enumerations.ExportFileStructure.TextFile; } else if (flag.Equals(m_Export_TextFlat, StringComparison.OrdinalIgnoreCase)) { export = Enumerations.ExportFileStructure.TextFlat; } else if (flag.Equals(m_Export_CsvFile, StringComparison.OrdinalIgnoreCase)) { export = Enumerations.ExportFileStructure.CSV; } else { throw new ArgumentException($"The export flag is unhandled: \"{flag}\"."); } Log($"Export is {export}"); return(FileExporterFactory.Get(export)); }
internal async Task ExportAsync(string fullyQualifiedPath) { Log($"{nameof(DirectoryViewModel)}.{nameof(ExportAsync)} => Filepath: \"{fullyQualifiedPath}\""); if (RootNode is null) { throw new ArgumentException("Root node is null.", nameof(fullyQualifiedPath)); } StringBuilder sb = new StringBuilder(); if (HashAlgorithim is null) { sb.AppendLine("No hashing selected."); } else { sb.AppendLine($"Hashing algorithm: {HashAlgorithim.AlgorithimName}"); } IFileExport exporter = FileExporterFactory.Get(SelectedExportStructure); await Task.Run(() => exporter.Export(RootNode, fullyQualifiedPath, sb)); Log($"File written to: \"{fullyQualifiedPath}\"."); }