예제 #1
0
        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)));
        }
예제 #2
0
        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));
        }
예제 #3
0
        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))));
        }
예제 #4
0
        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)));
        }