private void Add(UserConsole console, StateKeeper stateKeeper) { stateKeeper.ArgsCount = 2; var args = stateKeeper.GetArgs(); var a = args[0] == null?int.Parse(console.ReadLine().Trim(), Culture) : int.Parse(args[0], Culture); stateKeeper.Args[0] = a.ToString(Culture); stateKeeper.SaveState(); var b = args[1] == null?int.Parse(console.ReadLine().Trim(), Culture) : int.Parse(args[1], Culture); stateKeeper.Args[1] = b.ToString(Culture); stateKeeper.SaveState(); console.WriteLine((a + b).ToString(Culture)); }
private void Median(UserConsole console, StateKeeper stateKeeper) { stateKeeper.ArgsCount = stateKeeper.ArgsCount == -1 ? int.Parse(console.ReadLine().Trim(), Culture) : stateKeeper.ArgsCount; stateKeeper.SaveState(); var args = stateKeeper.GetArgs(); for (var i = 0; i < stateKeeper.ArgsCount; i++) { args[i] = args[i] ?? console.ReadLine().Trim(); stateKeeper.SaveState(); } var result = CalculateMedian(args.Select(x => int.Parse(x, Culture)).ToList()); console.WriteLine(result.ToString(Culture)); }
private void Help(UserConsole console, StateKeeper stateKeeper) { const string exitMessage = "Чтобы выйти из режима помощи введите end"; const string commands = "Доступные команды: add, median, rand"; stateKeeper.ArgsCount = 1; if (stateKeeper.ResultsCount == 0) { var introText = new List <string> { "Укажите команду, для которой хотите посмотреть помощь", commands, exitMessage }; PrintHelp(console, stateKeeper, introText); stateKeeper.ResultsCount = 1; stateKeeper.ShowedResults = 0; stateKeeper.SaveState(); } while (true) { var command = stateKeeper.GetArgs()[0] == null || stateKeeper.GetArgs()[0].Equals("") ? console.ReadLine().Trim() : stateKeeper.GetArgs()[0]; stateKeeper.Args[0] = command; stateKeeper.SaveState(); switch (command) { case "end": return; case "add": var addText = new List <string> { "Вычисляет сумму двух чисел", exitMessage }; PrintHelp(console, stateKeeper, addText); break; case "median": var medianText = new List <string> { "Вычисляет медиану списка чисел", exitMessage }; PrintHelp(console, stateKeeper, medianText); break; case "rand": var randText = new List <string> { "Генерирует список случайных чисел", exitMessage }; PrintHelp(console, stateKeeper, randText); break; default: var defaultText = new List <string> { "Такой команды нет", commands, exitMessage }; PrintHelp(console, stateKeeper, defaultText); break; } stateKeeper.Args[0] = null; stateKeeper.ShowedResults = 0; } }