diff --git a/LuminousSales/Display/InitialSetup.cs b/LuminousSales/Display/InitialSetup.cs index 4faaefb..f0995b1 100644 --- a/LuminousSales/Display/InitialSetup.cs +++ b/LuminousSales/Display/InitialSetup.cs @@ -12,6 +12,9 @@ namespace Display { } + /// + /// Asks the user for credentials used for the first user - administrator. + /// public static void InitialUserInput(out string userName, out string password) { try @@ -28,6 +31,10 @@ namespace Display Console.WriteLine(e.Message); } } + /// + /// Registers the initial user as an admin. + /// + /// Current UserController public static void InitialRegistration(UserController uc) { try diff --git a/LuminousSales/Display/Program.cs b/LuminousSales/Display/Program.cs index 22ad0e2..75d391b 100644 --- a/LuminousSales/Display/Program.cs +++ b/LuminousSales/Display/Program.cs @@ -10,17 +10,38 @@ namespace Display { public class Program { - static void Main(string[] args) + static void Main() { + User currentUser = new User(); + var uc = new UserController(); try { BigLogo(); - Console.WriteLine("Luminous Sales v0.1 by A. Konarcheva, D. Byalkov & D. Todorov 2021"); - Console.WriteLine(); - var uc = new UserController(); - InitialSetup.InitialRegistration(uc); - Console.Write("Enter password: "); - User currentUser = uc.ValidatePassword(Console.ReadLine()); + InitialSetup.InitialRegistration(uc); + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + bool isRunning = true; + while (isRunning) + { + try + { + Console.Write("Enter password: "); + currentUser = uc.ValidatePassword(Console.ReadLine()); + if (currentUser != null) + { + isRunning = false; + } + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + } + try + { uc = new UserController(currentUser); var view = new BaseView(currentUser); switch (currentUser.RoleId) @@ -44,6 +65,9 @@ namespace Display Console.WriteLine(e.Message); } } + /// + /// Logo splash screen + /// private static void BigLogo() { Console.WriteLine(" _ _ _____ _ "); @@ -52,6 +76,8 @@ namespace Display Console.WriteLine(" | | | | | | '_ ` _ \\| | '_ \\ / _ \\| | | / __| \\___ \\ / _` | |/ _ / __|"); Console.WriteLine(" | |___| |_| | | | | | | | | | | (_) | |_| \\__ \\ ____) | (_| | | __\\__ \\"); Console.WriteLine(" |______\\__,_|_| |_| |_|_|_| |_|\\___/ \\__,_|___/ |_____/ \\__,_|_|\\___|___/"); + Console.WriteLine("Luminous Sales v0.1.1 by A. Konarcheva, D. Byalkov & D. Todorov 2021"); + Console.WriteLine(); } } } diff --git a/LuminousSales/Display/Views/AdminView.cs b/LuminousSales/Display/Views/AdminView.cs index 53e5929..435380f 100644 --- a/LuminousSales/Display/Views/AdminView.cs +++ b/LuminousSales/Display/Views/AdminView.cs @@ -9,22 +9,32 @@ namespace Display.Views { public class AdminView : ManagerView { - UserController userctl = new UserController(); + User currentUser; public AdminView(User currentUser) : base(currentUser) { this.currentUser = currentUser; } + /// + /// Shows the avaliable to the user commands. + /// + /// + /// The main menu. + /// public override void ShowAvaliableCommands() { base.ShowAvaliableCommands(); Console.WriteLine("3. Administration"); } + /// + /// Asks the user to choose which group of action to use. + /// public override void ActionHandle() { try { while (true) { + Console.Clear(); ShowAvaliableCommands(); Console.Write("> "); int input = int.Parse(Console.ReadLine()); @@ -52,6 +62,12 @@ namespace Display.Views Console.WriteLine(e.Message); } } + /// + /// Selection menu with admin actions. + /// + /// + /// Requires role level 3 (Admin). + /// public void AdminHandle() { bool running = true; @@ -62,18 +78,18 @@ namespace Display.Views Console.WriteLine("0. Back"); Console.WriteLine(); Console.WriteLine("User Managment"); - Console.WriteLine("1. GetAll"); - Console.WriteLine("2. Get"); - Console.WriteLine("3. GetByApproximateName"); + Console.WriteLine("1. List all users"); + Console.WriteLine("2. Get user by id or name"); + Console.WriteLine("3. List users by name"); Console.WriteLine("4. Register user"); - Console.WriteLine("5. Update Role"); + Console.WriteLine("5. Update role"); Console.WriteLine("6. Update username"); - Console.WriteLine("7. UpdatePassword"); - Console.WriteLine("8. Delete User"); + Console.WriteLine("7. Update password"); + Console.WriteLine("8. Delete user"); Console.WriteLine(); Console.WriteLine("Product Managment"); - Console.WriteLine("9. AddItem"); - Console.WriteLine("10. GetAllItems"); + Console.WriteLine("9. Add product"); + Console.WriteLine("10. List all products"); Console.Write("> "); try { @@ -125,11 +141,14 @@ namespace Display.Views } } - + /// + /// Lists all products from the database. + /// private void GetAllItems() { try { + ProductController productctrl = new ProductController(currentUser); Console.WriteLine("Getting all items..."); Console.WriteLine("ID - Name - Amount - Price"); foreach (var item in productctrl.GetAll()) @@ -142,16 +161,19 @@ namespace Display.Views Console.WriteLine(e.Message); } } - + /// + /// Lists all registered users from the database. + /// public void GetAllUsers() { try { + UserController userctl = new UserController(currentUser); Console.WriteLine("Getting all users..."); Console.WriteLine("User ID - Username - Role"); foreach (var item in userctl.GetAll()) { - Console.WriteLine($"{item.Id} - {item.Name} - {item.Role} "); + Console.WriteLine($"{item.Id} - {item.Name} - {item.Role.Name} "); } } catch (Exception e) @@ -159,10 +181,14 @@ namespace Display.Views Console.WriteLine(e.Message); } } + /// + /// Lists info about a user using their ID or name from the database. + /// public void Get() { try { + UserController userctl = new UserController(currentUser); Console.WriteLine("Getting user..."); Console.Write("Get user by ID or Name: "); string input = Console.ReadLine(); @@ -181,16 +207,20 @@ namespace Display.Views Console.WriteLine(e.Message); } } + /// + /// Lists all users which match the search term from the database. + /// public void GetByApproximateName() { try { + UserController userctl = new UserController(currentUser); Console.WriteLine("Getting by name..."); Console.Write("Enter name: "); string input = Console.ReadLine(); foreach (var item in userctl.GetByApproximateName(input)) { - Console.WriteLine($"{item.Id} {item.Name} {item.Role}"); + Console.WriteLine($"{item.Id} {item.Name} {item.Role.Name}"); } } catch (Exception e) @@ -198,10 +228,14 @@ namespace Display.Views Console.WriteLine(e.Message); } } + /// + /// Registers a user using the provided data. + /// public void RegisterItem() { try { + UserController userctl = new UserController(currentUser); Console.WriteLine("Registering user..."); Console.Write("Enter username: "); string username = Console.ReadLine(); @@ -213,14 +247,17 @@ namespace Display.Views if (role == null) { userctl.RegisterItem(username, password); + Console.WriteLine("Registered user successfully"); } else if (result) { userctl.RegisterItem(username, password, roleId); + Console.WriteLine("Registered user successfully"); } else { userctl.RegisterItem(username, password, role); + Console.WriteLine("Registered user successfully"); } } catch (Exception e) @@ -228,10 +265,14 @@ namespace Display.Views Console.WriteLine(e.Message); } } + /// + /// Changes the role given to a specific user. + /// public void UpdateRole() { try { + UserController userctl = new UserController(currentUser); Console.WriteLine("Updating role..."); Console.Write("Enter username: "); string username = Console.ReadLine(); @@ -241,10 +282,12 @@ namespace Display.Views if (result) { userctl.UpdateRole(username, roleId); + Console.WriteLine("Updated role successfully"); } else { userctl.UpdateRole(username, role); + Console.WriteLine("Updated role successfully"); } } catch (Exception e) @@ -252,10 +295,14 @@ namespace Display.Views Console.WriteLine(e.Message); } } + /// + /// Renames a user. + /// public void UpdateName() { try { + UserController userctl = new UserController(currentUser); Console.WriteLine("Updating username..."); Console.Write("Enter username or ID: "); string user = Console.ReadLine(); @@ -265,10 +312,12 @@ namespace Display.Views if (result) { userctl.UpdateName(userId, username); + Console.WriteLine("Updated username successfully"); } else { - userctl.UpdateRole(user, username); + userctl.UpdateName(user, username); + Console.WriteLine("Updated username successfully"); } } catch (Exception e) @@ -276,10 +325,14 @@ namespace Display.Views Console.WriteLine(e.Message); } } + /// + /// Changes a users' password. + /// public void UpdatePassword() { try { + UserController userctl = new UserController(currentUser); Console.WriteLine("Updating password..."); Console.Write("Enter username or ID: "); string user = Console.ReadLine(); @@ -289,10 +342,12 @@ namespace Display.Views if (result) { userctl.UpdatePassword(userId, username); + Console.WriteLine("Updated password successfully"); } else { userctl.UpdatePassword(user, username); + Console.WriteLine("Updated password successfully"); } } catch (Exception e) @@ -300,10 +355,14 @@ namespace Display.Views Console.WriteLine(e.Message); } } + /// + /// Deletes a user from the database. + /// public void Delete() { try { + UserController userctl = new UserController(currentUser); Console.WriteLine("Deleting user..."); Console.Write("Enter username or ID: "); string user = Console.ReadLine(); @@ -311,10 +370,12 @@ namespace Display.Views if (result) { userctl.Delete(userId); + Console.WriteLine("Deleted successfully"); } else { userctl.Delete(user); + Console.WriteLine("Deleted successfully"); } } catch (Exception e) @@ -322,6 +383,9 @@ namespace Display.Views Console.WriteLine(e.Message); } } + /// + /// Add product to the database. + /// public void AddItem() { ProductController productctrl = new ProductController(currentUser); diff --git a/LuminousSales/Display/Views/BaseView.cs b/LuminousSales/Display/Views/BaseView.cs index cd5f094..02f3b04 100644 --- a/LuminousSales/Display/Views/BaseView.cs +++ b/LuminousSales/Display/Views/BaseView.cs @@ -22,6 +22,7 @@ namespace Display.Views Console.WriteLine(); Console.WriteLine("=== MAIN MENU ==="); Console.WriteLine("0. Exit"); + Console.WriteLine(); Console.WriteLine("1. Sales"); } public virtual void ActionHandle() @@ -30,6 +31,7 @@ namespace Display.Views { while (true) { + Console.Clear(); ShowAvaliableCommands(); Console.Write("> "); int input = int.Parse(Console.ReadLine()); @@ -114,7 +116,7 @@ namespace Display.Views bool endTyped = false; while (!endTyped) { - Console.Write("Type in item id or name: "); + Console.Write("Enter item id or name (\"end\" to finish): "); string itemInput = Console.ReadLine(); if (itemInput.ToLower() != "end") { diff --git a/LuminousSales/Display/Views/ManagerView.cs b/LuminousSales/Display/Views/ManagerView.cs index 6faa857..0882b42 100644 --- a/LuminousSales/Display/Views/ManagerView.cs +++ b/LuminousSales/Display/Views/ManagerView.cs @@ -13,7 +13,6 @@ namespace Display.Views public ManagerView(User currentUser):base(currentUser) { stockctrl = new StockController(currentUser); - dealctrl = new DealController(currentUser); } public override void ShowAvaliableCommands() { @@ -26,6 +25,7 @@ namespace Display.Views { while (true) { + Console.Clear(); ShowAvaliableCommands(); Console.Write("> "); int input = int.Parse(Console.ReadLine()); @@ -59,11 +59,11 @@ namespace Display.Views Console.WriteLine("0. Back"); Console.WriteLine(); Console.WriteLine("Stock Managment"); - Console.WriteLine("1. GetAll"); - Console.WriteLine("2. Get"); - Console.WriteLine("3. GetByTime"); - Console.WriteLine("4. Add"); - Console.WriteLine("5. Delete"); + Console.WriteLine("1. List all stocks"); + Console.WriteLine("2. Get a stock"); + Console.WriteLine("3. List stocks by time"); + Console.WriteLine("4. Add stock"); + Console.WriteLine("5. Delete stock"); Console.Write("> "); try { @@ -174,10 +174,12 @@ namespace Display.Views if (result) { stockctrl.Add(productId, amount, DateTime.Now); + Console.WriteLine("Added stock successfully"); } else { stockctrl.Add(product, amount, DateTime.Now); + Console.WriteLine("Added stock successfully"); } } catch (Exception e) @@ -195,6 +197,7 @@ namespace Display.Views Console.Write("Enter stock id: "); int id = int.Parse(Console.ReadLine()); stockctrl.Delete(id); + Console.WriteLine($"Deleted stock {id} successfully"); } catch (Exception e) {