private static CreationResultStatus TemplateDetailedHelpForSingularTemplateGroup(IReadOnlyList <ITemplateMatchInfo> unambiguousTemplateGroup, IEngineEnvironmentSettings environmentSettings, INewCommandInput commandInput, IHostSpecificDataLoader hostDataLoader, TemplateCreator templateCreator) { ShowUsageHelp(commandInput); // (scp 2017-09-06): parse errors probably can't happen in this context. foreach (string parseErrorMessage in unambiguousTemplateGroup.Where(x => x.HasParseError()).Select(x => x.GetParseError()).ToList()) { Reporter.Error.WriteLine(parseErrorMessage.Bold().Red()); } GetParametersInvalidForTemplatesInList(unambiguousTemplateGroup, out IReadOnlyList <string> invalidForAllTemplates, out IReadOnlyList <string> invalidForSomeTemplates); if (invalidForAllTemplates.Count > 0 || invalidForSomeTemplates.Count > 0) { DisplayInvalidParameters(invalidForAllTemplates); DisplayParametersInvalidForSomeTemplates(invalidForSomeTemplates, LocalizableStrings.SingleTemplateGroupPartialMatchSwitchesNotValidForAllMatches); } bool showImplicitlyHiddenParams = unambiguousTemplateGroup.Count > 1; TemplateDetailsDisplay.ShowTemplateGroupHelp(unambiguousTemplateGroup, environmentSettings, commandInput, hostDataLoader, templateCreator, showImplicitlyHiddenParams); return(invalidForAllTemplates.Count > 0 || invalidForSomeTemplates.Count > 0 ? CreationResultStatus.InvalidParamValues : CreationResultStatus.Success); }
private static CreationResultStatus TemplateDetailedHelpForSingularTemplateGroup(IReadOnlyCollection <ITemplateMatchInfo> unambiguousTemplateGroup, IEngineEnvironmentSettings environmentSettings, INewCommandInput commandInput, IHostSpecificDataLoader hostDataLoader, TemplateCreator templateCreator) { // sanity check: should never happen; as condition for unambiguous template group is checked above if (!unambiguousTemplateGroup.Any()) { return(CreationResultStatus.NotFound); } GetParametersInvalidForTemplatesInList(unambiguousTemplateGroup, out IReadOnlyList <string> invalidForAllTemplates, out IReadOnlyList <string> invalidForSomeTemplates); if (invalidForAllTemplates.Count > 0 || invalidForSomeTemplates.Count > 0) { DisplayInvalidParameters(invalidForAllTemplates); DisplayParametersInvalidForSomeTemplates(invalidForSomeTemplates, LocalizableStrings.SingleTemplateGroupPartialMatchSwitchesNotValidForAllMatches); } if (invalidForAllTemplates.Count == 0) { bool showImplicitlyHiddenParams = unambiguousTemplateGroup.Count > 1; TemplateDetailsDisplay.ShowTemplateGroupHelp(unambiguousTemplateGroup, environmentSettings, commandInput, hostDataLoader, templateCreator, showImplicitlyHiddenParams); } else { string?templateHelpCommand = GetTemplateHelpCommand(commandInput.CommandName, unambiguousTemplateGroup.First().Info); if (!string.IsNullOrWhiteSpace(templateHelpCommand)) { Reporter.Error.WriteLine( string.Format(LocalizableStrings.InvalidParameterTemplateHint, templateHelpCommand).Bold().Red()); } } return(invalidForAllTemplates.Count > 0 || invalidForSomeTemplates.Count > 0 ? CreationResultStatus.InvalidParamValues : CreationResultStatus.Success); }