コード例 #1
0
ファイル: Program.cs プロジェクト: robinvanpoppel/WsdlFilter
        private static ICommandHandler CreateRootHandler()
        {
            return(CommandHandler.Create((Action <bool, FileInfo, FileInfo, FileInfo, string, string, string, bool>)((removeDocumentation, input, output, intermediate, keepOperations, fireAndForget, removePortTypes, embedConfig) =>
            {
                var fullCommandLine = string.Join(" ", Environment.GetCommandLineArgs());
                var removePortTypesSplit = removePortTypes?.Split(',') ?? Array.Empty <string>();
                var keepOperationsSplit = keepOperations?.Split(',') ?? Array.Empty <string>();
                var convertToFireAndForgetSplit = fireAndForget?.Split(',') ?? Array.Empty <string>();

                Console.WriteLine($"Reading from {input}");

                var sd = ServiceDescription.Read(input.FullName);

                if (intermediate != null)
                {
                    Console.WriteLine($"Writing intermediate to {intermediate.FullName}");
                    sd.Write(intermediate.FullName);
                }

                var wsdlProcessingOptions = new WsdlProcessingOptions(removeDocumentation, removePortTypesSplit, keepOperationsSplit, convertToFireAndForgetSplit, embedConfig, fullCommandLine);

                Console.WriteLine($"Processing");
                sd.Process(wsdlProcessingOptions);

                Console.WriteLine($"Writing output to {output.FullName}");
                sd.Write(output.FullName);

                Console.WriteLine($"Done.");
            })));
        }
コード例 #2
0
        public static void Process(this ServiceDescription sd, WsdlProcessingOptions options)
        {
            if (options.RemoveDocumentation)
            {
                sd.RemoveDocumentation();
            }

            if (options.EmbedCommandLineConfig)
            {
                sd.AddCommandLineConfig(options.RawProcessArguments);
            }

            if (options.RemovePortTypes.Any())
            {
                sd.RemovePortTypes(options.RemovePortTypes);
            }

            if (options.KeepOperations.Any())
            {
                sd.RemoveAllOtherOperations(options.KeepOperations);
            }

            if (options.ConvertToFireAndForget.Any())
            {
                sd.ConvertToFireAndForget(options.ConvertToFireAndForget);
            }

            sd.RemovePortsWithoutOperations();
            sd.RemoveBindingsWithoutOperations();
            sd.RemoveServicePortsWithoutBindings();
            sd.RemoveUnreferencesMessages();
        }