public (FileExtension extension, TOutput result) Convert(string inputExtension, TInput content, string outputExtension) { IDocumentInput <TInput> input = InputCatalog.BestMatch(inputExtension); if (input == null) { return(default((FileExtension, TOutput))); } IDocumentOutput <TOutput> output = OutputCatalog.BestMatch(outputExtension); return(output != null ? (output.FileExtension, output.Convert(input.Convert(content))) : default((FileExtension, TOutput))); }
public TOutput Convert(FileExtension inputExtension, TInput content, FileExtension outputExtension) { IDocumentInput <TInput> input = InputCatalog.FirstOrDefault(x => x.FileExtension == inputExtension); if (input == null) { return(default(TOutput)); } IDocumentOutput <TOutput> output = OutputCatalog.FirstOrDefault(x => x.FileExtension == outputExtension); return(output != null?output.Convert(input.Convert(content)) : default(TOutput)); }
public IEnumerable <(FileExtension extension, TOutput result)> Convert(string inputExtension, TInput content, IEnumerable <string> outputExtensions) { IDocumentInput <TInput> input = InputCatalog.BestMatch(inputExtension); if (input == null) { return(Enumerable.Empty <(FileExtension, TOutput)>()); } IDocumentNode document = input.Convert(content); return(outputExtensions.Select(e => OutputCatalog.BestMatch(e)) .Select(o => (o?.FileExtension ?? FileExtension.Unknown, o != null ? o.Convert(document) : default(TOutput)))); }
public IEnumerable <TOutput> Convert(FileExtension inputExtension, TInput content, IEnumerable <FileExtension> outputExtensions) { IDocumentInput <TInput> input = InputCatalog.FirstOrDefault(x => x.FileExtension == inputExtension); if (input == null) { return(Enumerable.Empty <TOutput>()); } IDocumentNode document = input.Convert(content); return(outputExtensions.Select(e => OutputCatalog.FirstOrDefault(x => x.FileExtension == e)) .Select(o => o != null ? o.Convert(document) : default(TOutput))); }