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