private string SelectFeatureInteractively(string name) { InteractiveFeature feature = LookupFeature(name); if (feature == null) { return(null); } do { Console.WriteLine(feature.InteractivePrompt); string entry = GetKey(); Console.WriteLine(); if (!int.TryParse(entry, out int index) || index < 1 || index > feature.Values.Length) { if (entry.Length > 0 && entry[0] == 'Q') { return("Q"); } else { Console.WriteLine("Invalid selection!\n"); } } else { return(feature.Values[index - 1]); } } while (true); }
private InteractiveFeature LookupFeature(string id) { InteractiveFeature result = null; if (Lookup != null) { result = Lookup[id]; } return(result); }
private IList <object> FeatureList(string[] select, string[] answers) { if ((select == null || select.Length == 0) || (answers == null || answers.Length == 0) || (answers.Length != select.Length)) { return(null); } InteractiveFeature feature = LookupFeature(select[0]); StringBuilder contextFeaturesJson = new StringBuilder("["); contextFeaturesJson.Append($"{{ \"{feature.Name}\": \"{answers[0]}\" }}"); for (int i = 1; i < select.Length; i++) { feature = LookupFeature(select[i]); contextFeaturesJson.Append($",{{ \"{feature.Name}\": \"{answers[i]}\" }}"); } contextFeaturesJson.Append("]"); return(JsonSerializer.Deserialize <List <object> >(contextFeaturesJson.ToString())); }