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."); }))); }
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(); }