Add class to manage UI
This commit is contained in:
parent
10636b9529
commit
682634ce1d
2 changed files with 65 additions and 0 deletions
64
UI.cs
Normal file
64
UI.cs
Normal file
|
@ -0,0 +1,64 @@
|
|||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -38,6 +38,7 @@
|
|||
<ItemGroup>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="UI.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<ItemGroup>
|
||||
|
|
Reference in a new issue