This commit is contained in:
Dimitar Byalkov
2021-03-20 18:53:30 +02:00
parent 1adc2aac9e
commit 4f26a747c0
5 changed files with 130 additions and 28 deletions

View File

@@ -12,6 +12,9 @@ namespace Display
{ {
} }
/// <summary>
/// Asks the user for credentials used for the first user - administrator.
/// </summary>
public static void InitialUserInput(out string userName, out string password) public static void InitialUserInput(out string userName, out string password)
{ {
try try
@@ -28,6 +31,10 @@ namespace Display
Console.WriteLine(e.Message); Console.WriteLine(e.Message);
} }
} }
/// <summary>
/// Registers the initial user as an admin.
/// </summary>
/// <param name="uc">Current UserController</param>
public static void InitialRegistration(UserController uc) public static void InitialRegistration(UserController uc)
{ {
try try

View File

@@ -10,17 +10,38 @@ namespace Display
{ {
public class Program public class Program
{ {
static void Main(string[] args) static void Main()
{ {
User currentUser = new User();
var uc = new UserController();
try try
{ {
BigLogo(); BigLogo();
Console.WriteLine("Luminous Sales v0.1 by A. Konarcheva, D. Byalkov & D. Todorov 2021"); InitialSetup.InitialRegistration(uc);
Console.WriteLine(); }
var uc = new UserController(); catch (Exception e)
InitialSetup.InitialRegistration(uc); {
Console.Write("Enter password: "); Console.WriteLine(e.Message);
User currentUser = uc.ValidatePassword(Console.ReadLine()); }
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); uc = new UserController(currentUser);
var view = new BaseView(currentUser); var view = new BaseView(currentUser);
switch (currentUser.RoleId) switch (currentUser.RoleId)
@@ -44,6 +65,9 @@ namespace Display
Console.WriteLine(e.Message); Console.WriteLine(e.Message);
} }
} }
/// <summary>
/// Logo splash screen
/// </summary>
private static void BigLogo() private static void BigLogo()
{ {
Console.WriteLine(" _ _ _____ _ "); Console.WriteLine(" _ _ _____ _ ");
@@ -52,6 +76,8 @@ namespace Display
Console.WriteLine(" | | | | | | '_ ` _ \\| | '_ \\ / _ \\| | | / __| \\___ \\ / _` | |/ _ / __|"); Console.WriteLine(" | | | | | | '_ ` _ \\| | '_ \\ / _ \\| | | / __| \\___ \\ / _` | |/ _ / __|");
Console.WriteLine(" | |___| |_| | | | | | | | | | | (_) | |_| \\__ \\ ____) | (_| | | __\\__ \\"); Console.WriteLine(" | |___| |_| | | | | | | | | | | (_) | |_| \\__ \\ ____) | (_| | | __\\__ \\");
Console.WriteLine(" |______\\__,_|_| |_| |_|_|_| |_|\\___/ \\__,_|___/ |_____/ \\__,_|_|\\___|___/"); Console.WriteLine(" |______\\__,_|_| |_| |_|_|_| |_|\\___/ \\__,_|___/ |_____/ \\__,_|_|\\___|___/");
Console.WriteLine("Luminous Sales v0.1.1 by A. Konarcheva, D. Byalkov & D. Todorov 2021");
Console.WriteLine();
} }
} }
} }

View File

@@ -9,22 +9,32 @@ namespace Display.Views
{ {
public class AdminView : ManagerView public class AdminView : ManagerView
{ {
UserController userctl = new UserController(); User currentUser;
public AdminView(User currentUser) : base(currentUser) public AdminView(User currentUser) : base(currentUser)
{ {
this.currentUser = currentUser; this.currentUser = currentUser;
} }
/// <summary>
/// Shows the avaliable to the user commands.
/// </summary>
/// <remarks>
/// The main menu.
/// </remarks>
public override void ShowAvaliableCommands() public override void ShowAvaliableCommands()
{ {
base.ShowAvaliableCommands(); base.ShowAvaliableCommands();
Console.WriteLine("3. Administration"); Console.WriteLine("3. Administration");
} }
/// <summary>
/// Asks the user to choose which group of action to use.
/// </summary>
public override void ActionHandle() public override void ActionHandle()
{ {
try try
{ {
while (true) while (true)
{ {
Console.Clear();
ShowAvaliableCommands(); ShowAvaliableCommands();
Console.Write("> "); Console.Write("> ");
int input = int.Parse(Console.ReadLine()); int input = int.Parse(Console.ReadLine());
@@ -52,6 +62,12 @@ namespace Display.Views
Console.WriteLine(e.Message); Console.WriteLine(e.Message);
} }
} }
/// <summary>
/// Selection menu with admin actions.
/// </summary>
/// <remarks>
/// Requires role level 3 (Admin).
/// </remarks>
public void AdminHandle() public void AdminHandle()
{ {
bool running = true; bool running = true;
@@ -62,18 +78,18 @@ namespace Display.Views
Console.WriteLine("0. Back"); Console.WriteLine("0. Back");
Console.WriteLine(); Console.WriteLine();
Console.WriteLine("User Managment"); Console.WriteLine("User Managment");
Console.WriteLine("1. GetAll"); Console.WriteLine("1. List all users");
Console.WriteLine("2. Get"); Console.WriteLine("2. Get user by id or name");
Console.WriteLine("3. GetByApproximateName"); Console.WriteLine("3. List users by name");
Console.WriteLine("4. Register user"); Console.WriteLine("4. Register user");
Console.WriteLine("5. Update Role"); Console.WriteLine("5. Update role");
Console.WriteLine("6. Update username"); Console.WriteLine("6. Update username");
Console.WriteLine("7. UpdatePassword"); Console.WriteLine("7. Update password");
Console.WriteLine("8. Delete User"); Console.WriteLine("8. Delete user");
Console.WriteLine(); Console.WriteLine();
Console.WriteLine("Product Managment"); Console.WriteLine("Product Managment");
Console.WriteLine("9. AddItem"); Console.WriteLine("9. Add product");
Console.WriteLine("10. GetAllItems"); Console.WriteLine("10. List all products");
Console.Write("> "); Console.Write("> ");
try try
{ {
@@ -125,11 +141,14 @@ namespace Display.Views
} }
} }
/// <summary>
/// Lists all products from the database.
/// </summary>
private void GetAllItems() private void GetAllItems()
{ {
try try
{ {
ProductController productctrl = new ProductController(currentUser);
Console.WriteLine("Getting all items..."); Console.WriteLine("Getting all items...");
Console.WriteLine("ID - Name - Amount - Price"); Console.WriteLine("ID - Name - Amount - Price");
foreach (var item in productctrl.GetAll()) foreach (var item in productctrl.GetAll())
@@ -142,16 +161,19 @@ namespace Display.Views
Console.WriteLine(e.Message); Console.WriteLine(e.Message);
} }
} }
/// <summary>
/// Lists all registered users from the database.
/// </summary>
public void GetAllUsers() public void GetAllUsers()
{ {
try try
{ {
UserController userctl = new UserController(currentUser);
Console.WriteLine("Getting all users..."); Console.WriteLine("Getting all users...");
Console.WriteLine("User ID - Username - Role"); Console.WriteLine("User ID - Username - Role");
foreach (var item in userctl.GetAll()) 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) catch (Exception e)
@@ -159,10 +181,14 @@ namespace Display.Views
Console.WriteLine(e.Message); Console.WriteLine(e.Message);
} }
} }
/// <summary>
/// Lists info about a user using their ID or name from the database.
/// </summary>
public void Get() public void Get()
{ {
try try
{ {
UserController userctl = new UserController(currentUser);
Console.WriteLine("Getting user..."); Console.WriteLine("Getting user...");
Console.Write("Get user by ID or Name: "); Console.Write("Get user by ID or Name: ");
string input = Console.ReadLine(); string input = Console.ReadLine();
@@ -181,16 +207,20 @@ namespace Display.Views
Console.WriteLine(e.Message); Console.WriteLine(e.Message);
} }
} }
/// <summary>
/// Lists all users which match the search term from the database.
/// </summary>
public void GetByApproximateName() public void GetByApproximateName()
{ {
try try
{ {
UserController userctl = new UserController(currentUser);
Console.WriteLine("Getting by name..."); Console.WriteLine("Getting by name...");
Console.Write("Enter name: "); Console.Write("Enter name: ");
string input = Console.ReadLine(); string input = Console.ReadLine();
foreach (var item in userctl.GetByApproximateName(input)) 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) catch (Exception e)
@@ -198,10 +228,14 @@ namespace Display.Views
Console.WriteLine(e.Message); Console.WriteLine(e.Message);
} }
} }
/// <summary>
/// Registers a user using the provided data.
/// </summary>
public void RegisterItem() public void RegisterItem()
{ {
try try
{ {
UserController userctl = new UserController(currentUser);
Console.WriteLine("Registering user..."); Console.WriteLine("Registering user...");
Console.Write("Enter username: "); Console.Write("Enter username: ");
string username = Console.ReadLine(); string username = Console.ReadLine();
@@ -213,14 +247,17 @@ namespace Display.Views
if (role == null) if (role == null)
{ {
userctl.RegisterItem(username, password); userctl.RegisterItem(username, password);
Console.WriteLine("Registered user successfully");
} }
else if (result) else if (result)
{ {
userctl.RegisterItem(username, password, roleId); userctl.RegisterItem(username, password, roleId);
Console.WriteLine("Registered user successfully");
} }
else else
{ {
userctl.RegisterItem(username, password, role); userctl.RegisterItem(username, password, role);
Console.WriteLine("Registered user successfully");
} }
} }
catch (Exception e) catch (Exception e)
@@ -228,10 +265,14 @@ namespace Display.Views
Console.WriteLine(e.Message); Console.WriteLine(e.Message);
} }
} }
/// <summary>
/// Changes the role given to a specific user.
/// </summary>
public void UpdateRole() public void UpdateRole()
{ {
try try
{ {
UserController userctl = new UserController(currentUser);
Console.WriteLine("Updating role..."); Console.WriteLine("Updating role...");
Console.Write("Enter username: "); Console.Write("Enter username: ");
string username = Console.ReadLine(); string username = Console.ReadLine();
@@ -241,10 +282,12 @@ namespace Display.Views
if (result) if (result)
{ {
userctl.UpdateRole(username, roleId); userctl.UpdateRole(username, roleId);
Console.WriteLine("Updated role successfully");
} }
else else
{ {
userctl.UpdateRole(username, role); userctl.UpdateRole(username, role);
Console.WriteLine("Updated role successfully");
} }
} }
catch (Exception e) catch (Exception e)
@@ -252,10 +295,14 @@ namespace Display.Views
Console.WriteLine(e.Message); Console.WriteLine(e.Message);
} }
} }
/// <summary>
/// Renames a user.
/// </summary>
public void UpdateName() public void UpdateName()
{ {
try try
{ {
UserController userctl = new UserController(currentUser);
Console.WriteLine("Updating username..."); Console.WriteLine("Updating username...");
Console.Write("Enter username or ID: "); Console.Write("Enter username or ID: ");
string user = Console.ReadLine(); string user = Console.ReadLine();
@@ -265,10 +312,12 @@ namespace Display.Views
if (result) if (result)
{ {
userctl.UpdateName(userId, username); userctl.UpdateName(userId, username);
Console.WriteLine("Updated username successfully");
} }
else else
{ {
userctl.UpdateRole(user, username); userctl.UpdateName(user, username);
Console.WriteLine("Updated username successfully");
} }
} }
catch (Exception e) catch (Exception e)
@@ -276,10 +325,14 @@ namespace Display.Views
Console.WriteLine(e.Message); Console.WriteLine(e.Message);
} }
} }
/// <summary>
/// Changes a users' password.
/// </summary>
public void UpdatePassword() public void UpdatePassword()
{ {
try try
{ {
UserController userctl = new UserController(currentUser);
Console.WriteLine("Updating password..."); Console.WriteLine("Updating password...");
Console.Write("Enter username or ID: "); Console.Write("Enter username or ID: ");
string user = Console.ReadLine(); string user = Console.ReadLine();
@@ -289,10 +342,12 @@ namespace Display.Views
if (result) if (result)
{ {
userctl.UpdatePassword(userId, username); userctl.UpdatePassword(userId, username);
Console.WriteLine("Updated password successfully");
} }
else else
{ {
userctl.UpdatePassword(user, username); userctl.UpdatePassword(user, username);
Console.WriteLine("Updated password successfully");
} }
} }
catch (Exception e) catch (Exception e)
@@ -300,10 +355,14 @@ namespace Display.Views
Console.WriteLine(e.Message); Console.WriteLine(e.Message);
} }
} }
/// <summary>
/// Deletes a user from the database.
/// </summary>
public void Delete() public void Delete()
{ {
try try
{ {
UserController userctl = new UserController(currentUser);
Console.WriteLine("Deleting user..."); Console.WriteLine("Deleting user...");
Console.Write("Enter username or ID: "); Console.Write("Enter username or ID: ");
string user = Console.ReadLine(); string user = Console.ReadLine();
@@ -311,10 +370,12 @@ namespace Display.Views
if (result) if (result)
{ {
userctl.Delete(userId); userctl.Delete(userId);
Console.WriteLine("Deleted successfully");
} }
else else
{ {
userctl.Delete(user); userctl.Delete(user);
Console.WriteLine("Deleted successfully");
} }
} }
catch (Exception e) catch (Exception e)
@@ -322,6 +383,9 @@ namespace Display.Views
Console.WriteLine(e.Message); Console.WriteLine(e.Message);
} }
} }
/// <summary>
/// Add product to the database.
/// </summary>
public void AddItem() public void AddItem()
{ {
ProductController productctrl = new ProductController(currentUser); ProductController productctrl = new ProductController(currentUser);

View File

@@ -22,6 +22,7 @@ namespace Display.Views
Console.WriteLine(); Console.WriteLine();
Console.WriteLine("=== MAIN MENU ==="); Console.WriteLine("=== MAIN MENU ===");
Console.WriteLine("0. Exit"); Console.WriteLine("0. Exit");
Console.WriteLine();
Console.WriteLine("1. Sales"); Console.WriteLine("1. Sales");
} }
public virtual void ActionHandle() public virtual void ActionHandle()
@@ -30,6 +31,7 @@ namespace Display.Views
{ {
while (true) while (true)
{ {
Console.Clear();
ShowAvaliableCommands(); ShowAvaliableCommands();
Console.Write("> "); Console.Write("> ");
int input = int.Parse(Console.ReadLine()); int input = int.Parse(Console.ReadLine());
@@ -114,7 +116,7 @@ namespace Display.Views
bool endTyped = false; bool endTyped = false;
while (!endTyped) while (!endTyped)
{ {
Console.Write("Type in item id or name: "); Console.Write("Enter item id or name (\"end\" to finish): ");
string itemInput = Console.ReadLine(); string itemInput = Console.ReadLine();
if (itemInput.ToLower() != "end") if (itemInput.ToLower() != "end")
{ {

View File

@@ -13,7 +13,6 @@ namespace Display.Views
public ManagerView(User currentUser):base(currentUser) public ManagerView(User currentUser):base(currentUser)
{ {
stockctrl = new StockController(currentUser); stockctrl = new StockController(currentUser);
dealctrl = new DealController(currentUser);
} }
public override void ShowAvaliableCommands() public override void ShowAvaliableCommands()
{ {
@@ -26,6 +25,7 @@ namespace Display.Views
{ {
while (true) while (true)
{ {
Console.Clear();
ShowAvaliableCommands(); ShowAvaliableCommands();
Console.Write("> "); Console.Write("> ");
int input = int.Parse(Console.ReadLine()); int input = int.Parse(Console.ReadLine());
@@ -59,11 +59,11 @@ namespace Display.Views
Console.WriteLine("0. Back"); Console.WriteLine("0. Back");
Console.WriteLine(); Console.WriteLine();
Console.WriteLine("Stock Managment"); Console.WriteLine("Stock Managment");
Console.WriteLine("1. GetAll"); Console.WriteLine("1. List all stocks");
Console.WriteLine("2. Get"); Console.WriteLine("2. Get a stock");
Console.WriteLine("3. GetByTime"); Console.WriteLine("3. List stocks by time");
Console.WriteLine("4. Add"); Console.WriteLine("4. Add stock");
Console.WriteLine("5. Delete"); Console.WriteLine("5. Delete stock");
Console.Write("> "); Console.Write("> ");
try try
{ {
@@ -174,10 +174,12 @@ namespace Display.Views
if (result) if (result)
{ {
stockctrl.Add(productId, amount, DateTime.Now); stockctrl.Add(productId, amount, DateTime.Now);
Console.WriteLine("Added stock successfully");
} }
else else
{ {
stockctrl.Add(product, amount, DateTime.Now); stockctrl.Add(product, amount, DateTime.Now);
Console.WriteLine("Added stock successfully");
} }
} }
catch (Exception e) catch (Exception e)
@@ -195,6 +197,7 @@ namespace Display.Views
Console.Write("Enter stock id: "); Console.Write("Enter stock id: ");
int id = int.Parse(Console.ReadLine()); int id = int.Parse(Console.ReadLine());
stockctrl.Delete(id); stockctrl.Delete(id);
Console.WriteLine($"Deleted stock {id} successfully");
} }
catch (Exception e) catch (Exception e)
{ {