This repository has been archived on 2023-03-26. You can view files and clone it, but cannot push or open issues or pull requests.
product-list/UI.cs

65 lines
1.3 KiB
C#
Raw Normal View History

2016-04-15 11:57:36 +01:00
using System;
namespace productlist
{
public static class UI
{
private enum inputType {
create,
delete,
list,
help
}
private static inputType decodeInputType(string input) {
string command = input.Split (null, 1)[0];
switch (command.ToLower()) {
case "create":
return inputType.create;
case "delete":
return inputType.delete;
case "list":
return inputType.list;
default:
case "help":
return inputType.help;
}
}
public static bool validateInt(string input) {
int result;
return Int32.TryParse (input, out result);
}
public static bool validateString (object input) {
return input is string;
}
public static string getAnswer(string prompt, Func<string, bool> validator) {
string input;
do {
Console.Write(prompt + ": ");
input = Console.ReadLine();
} while (!validator (input));
return input;
}
public static void promptForCommand() {
while (true) {
Console.Write ("Enter command: ");
string command = Console.ReadLine ();
inputType type = decodeInputType (command);
switch (type) {
case inputType.create:
Product p = Product.fromPrompt ();
Storage.Add (p);
break;
case inputType.list:
Storage.List ();
break;
}
}
}
}
}