in src/Cli/func/Actions/UserInputHandler.cs [27:85]
public void RunUserInputActions(IDictionary<string, string> providedValues, IList<TemplateJobInput> inputs, IDictionary<string, string> variables)
{
foreach (var theInput in inputs)
{
var userPrompt = _userPrompts.Value.First(x => string.Equals(x.Id, theInput.ParamId, StringComparison.OrdinalIgnoreCase));
var defaultValue = theInput.DefaultValue ?? userPrompt.DefaultValue;
string response = null;
if (providedValues.ContainsKey(theInput.ParamId) && !string.IsNullOrEmpty(providedValues[theInput.ParamId]))
{
response = providedValues[theInput.ParamId];
}
if (userPrompt.Value == Constants.UserPromptEnumType || userPrompt.Value == UserPromptBooleanType)
{
var values = new List<string>() { true.ToString(), false.ToString() };
if (userPrompt.Value == UserPromptEnumType)
{
values = userPrompt.EnumList.Select(x => x.Display).ToList();
}
while (!ValidateResponse(userPrompt, response))
{
SelectionMenuHelper.DisplaySelectionWizardPrompt(LabelMap(userPrompt.Label));
response = SelectionMenuHelper.DisplaySelectionWizard(values);
if (string.IsNullOrEmpty(response) && !string.IsNullOrEmpty(defaultValue))
{
response = defaultValue;
}
else if (userPrompt.Value == UserPromptEnumType)
{
response = userPrompt.EnumList.Single(x => x.Display == response).Value;
}
}
}
else
{
while (!ValidateResponse(userPrompt, response))
{
PrintInputLabel(userPrompt, defaultValue);
response = Console.ReadLine();
if (string.IsNullOrEmpty(response) && defaultValue != null)
{
response = defaultValue;
}
}
if (providedValues.ContainsKey(theInput.ParamId))
{
providedValues[theInput.ParamId] = response;
}
}
var variableName = theInput.AssignTo;
variables[variableName] = response;
}
}