Started implementing ConsoleMenu

This commit is contained in:
TypoMustakes
2023-12-29 16:02:09 +01:00
parent 473dd4ce70
commit 3e82a21b74
2 changed files with 90 additions and 194 deletions

View File

@@ -1,36 +1,15 @@
using System; using System;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using ConsoleTools;
using WD7UVN_HFT_2023241.Models; using WD7UVN_HFT_2023241.Models;
namespace WD7UVN_HFT_2023241.Client namespace WD7UVN_HFT_2023241.Client
{ {
public class NonCRUD public class NonCRUD
{ {
private static void RESTWhoMaintainsService(int id)
public static void WhoMaintainsService()
{ {
foreach (Service s in RestService.Get<Service>("/api/Service"))
{
Console.WriteLine("Service: " + s.NAME);
Console.WriteLine("ID: " + s.ID);
}
int id = 1;
bool flag = true;
while (flag)
{
try
{
Console.Write("Your choice: ");
id = Convert.ToInt32(Console.ReadLine());
flag = false;
}
catch (FormatException)
{
Console.WriteLine("You must enter a number");
}
}
IQueryable<Employee> res = RestService.WhoMaintainsService(id); IQueryable<Employee> res = RestService.WhoMaintainsService(id);
if (res.Count() != 0) if (res.Count() != 0)
{ {
@@ -45,7 +24,16 @@ namespace WD7UVN_HFT_2023241.Client
} }
else else
{ {
Console.WriteLine("No such database entry was found :/"); Console.WriteLine("ERROR: No such database entry was found :/");
}
}
public static void WhoMaintainsService()
{
var servicesMenu = new ConsoleMenu();
foreach (Service s in RestService.Get<Service>("/api/Service"))
{
servicesMenu.Add($"{s.NAME}: {s.ID}", () => RESTWhoMaintainsService(s.ID));
} }
} }

View File

@@ -1,175 +1,83 @@
using System; using System;
using System.Threading;
using System.Threading.Tasks;
using ConsoleTools;
namespace WD7UVN_HFT_2023241.Client namespace WD7UVN_HFT_2023241.Client
{ {
class Program public class Program
{ {
static bool FLAG = true; private static async Task Main(string[] args)
static RestService rest = new RestService(); {
var commonConfig = new MenuConfig
{
Selector = "--> ",
EnableFilter = true,
EnableBreadcrumb = true,
WriteBreadcrumbAction = titles => Console.WriteLine(string.Join(" / ", titles)),
};
static void Main(string[] args) var nonCrudMenu = new ConsoleMenu(args, level: 2)
{ .Add("Who maintains specified service?", () => NonCRUD.WhoMaintainsService())
rest = new RestService(); .Add("Get employee's subordinates", ConsoleMenu.Close)
ActionMenuHandler(); .Add("Get clients of specified service", ConsoleMenu.Close)
} .Add("Get employees in specified maintainer team", ConsoleMenu.Close)
.Add("Get employee responsible for specified service", ConsoleMenu.Close)
.Add("Sub_Exit", () => Environment.Exit(0))
.Configure(commonConfig)
.Configure(config =>
{
config.Title = "Submenu1";
});
static void ActionMenuHandler() var crudMenu = new ConsoleMenu(args, level: 1)
{ .Add("Sub_One", () => SomeAction("Sub_One"))
while (FLAG) .Add("Sub_Five", async (cancellationToken) => await SomeAction2(cancellationToken))
{ .Add("Get all", ConsoleMenu.Close)
int choice = ActionMenu(); .Add("Get by id", ConsoleMenu.Close)
if (choice == 6) .Add("Create", ConsoleMenu.Close)
{ .Add("Update", ConsoleMenu.Close)
NonCRUDMenuHandler(); .Add("Delete", ConsoleMenu.Close)
} .Add("Sub_Close", ConsoleMenu.Close)
else if (choice == 0) .Add("Sub_Exit", () => Environment.Exit(0))
{ .Configure(commonConfig)
FLAG = false; .Configure(config =>
} {
else if (1 <= choice && choice <= 5) config.Title = "Tables";
{ });
switch (TypeSelectorMenu())
{
case 1:
if (choice == 1) { Read.Employee(); }
else if (choice == 2) { ReadAll.Employee(); }
else if (choice == 3) { Create.Employee(); }
else if (choice == 4) { Update.Employee(); }
else if (choice == 5) { Delete.Employee(); }
break;
case 2:
if (choice == 1) { Read.Customer(); }
else if (choice == 2) { ReadAll.Customer(); }
else if (choice == 3) { Create.Customer(); }
else if (choice == 4) { Update.Customer(); }
else if (choice == 5) { Delete.Customer(); }
break;
case 3:
if (choice == 1) { Read.Service(); }
else if (choice == 2) { ReadAll.Service(); }
else if (choice == 3) { Create.Service(); }
else if (choice == 4) { Update.Service(); }
else if (choice == 5) { Delete.Service(); }
break;
case 4:
if (choice == 1) { Read.MaintainerTeam(); }
else if (choice == 2) { ReadAll.MaintainerTeam(); }
else if (choice == 3) { Create.MaintainerTeam(); }
else if (choice == 4) { Update.MaintainerTeam(); }
else if (choice == 5) { Delete.MaintainerTeam(); }
break;
}
}
}
}
static int TypeSelectorMenu() var menu = new ConsoleMenu(args, level: 0)
{ .Add("One", () => SomeAction("One"))
Console.WriteLine("1.) Employee"); .Add("CRUD", crudMenu.Show)
Console.WriteLine("2.) Customer"); .Add("Non-CRUD", nonCrudMenu.Show)
Console.WriteLine("3.) Service"); .Add("Close", ConsoleMenu.Close)
Console.WriteLine("4.) MaintainerTeam"); .Add("Exit", () => Environment.Exit(0))
.Configure(commonConfig)
.Configure(config =>
{
config.Title = "Main menu";
config.EnableWriteTitle = true;
config.EnableBreadcrumb = true;
});
while (true) var token = new CancellationTokenSource(7000).Token;
{ await menu.ShowAsync(token);
try }
{
Console.Write("Your choice: ");
return Convert.ToInt32(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("You must enter a number");
}
}
} private static void SomeAction(string text)
{
Console.WriteLine(text);
Console.WriteLine("Press any key to continue...");
Console.ReadKey();
}
static int ReadMenuHandler() private static async Task SomeAction2(CancellationToken token)
{ {
Console.WriteLine("1.) "); Console.WriteLine("start delay...");
await Task.Delay(2000, token);
while (true) Console.WriteLine("end delay");
{ Console.WriteLine("Press any key to continue...");
try Console.ReadKey();
{ }
Console.Write("Your choice: "); }
return Convert.ToInt32(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("You must enter a number");
}
}
}
static void NonCRUDMenuHandler()
{
switch (NonCRUDMenu())
{
case 1:
NonCRUD.WhoWorksInMaintainerTeam();
break;
case 2:
NonCRUD.GetSubordinates();
break;
case 3:
NonCRUD.WhoUsesService();
break;
case 4:
NonCRUD.WhoIsResponsibleForService();
break;
case 5:
NonCRUD.WhoMaintainsService();
break;
}
}
static int NonCRUDMenu()
{
Console.WriteLine("1.) Who works in specified maintainer team?");
Console.WriteLine("2.) Get manager's subordinates");
Console.WriteLine("3.) Which client(s) use(s) specified service?");
Console.WriteLine("4.) Who (which manager) is responsible for a specified service?");
Console.WriteLine("5.) Get all employees who maintain a specified service");
while (true)
{
try
{
Console.Write("Your choice: ");
return Convert.ToInt32(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("You must enter a number");
}
}
}
static int ActionMenu()
{
Console.WriteLine("1.) Read");
Console.WriteLine("2.) ReadAll");
Console.WriteLine("3.) Create");
Console.WriteLine("4.) Update");
Console.WriteLine("5.) Delete");
Console.WriteLine("6.) Non-CRUD");
Console.WriteLine("0.) Exit");
while (true)
{
try
{
Console.Write("Your choice: ");
return Convert.ToInt32(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("You must enter a number");
}
}
}
}
} }