From 53aaf77c6bf6fabf83bba7acf1bc493a49c291cb Mon Sep 17 00:00:00 2001 From: Im_Alpha Date: Tue, 14 Dec 2021 02:01:28 -0800 Subject: [PATCH] finished all UM features create account edit account delete account disable account enable account --- .../AccountService.cs | 93 ++++++++++++------- .../SystemAccountManager.cs | 64 +++++++++++-- .../UserAccount.cs | 6 ++ Source Code/main/Controller.cs | 23 ----- 4 files changed, 117 insertions(+), 69 deletions(-) diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/AccountService.cs b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/AccountService.cs index 198f16c..cf332f7 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/AccountService.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/AccountService.cs @@ -29,53 +29,74 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement return false; } } - public bool EditUserRecord(UserAccount newUser, string CreatedBy, IDataSource dbSource) + public bool EditUserRecord(UserAccount editUser, string CreatedBy, IDataSource dbSource) { -/* // Insert into users table - string sqlUser = $"UPDATE hobby.roles r SET r.Role = 'regular',r.CreatedBy = 'colin'WHERE r.RoleID = 5; "; - - Object insertNewUser = dbSource.WriteData(sqlUser); - // Insert into users table - string sqlRoles = $"INSERT INTO roles (Role, CreatedBy, CreatedDate) " + - $"VALUES ('{newUser.NewRole}', '{CreatedBy}', NOW());"; - Object insertNewRole = dbSource.WriteData(sqlUser); - // Create string for confirming user account - string confirmUser = $"Select * from users where username = {newUser.NewUserName} " + - $"and password = {newUser.NewPassword};"; - Object conUser = dbSource.ReadData(confirmUser); - - //Console.WriteLine("type of Reesult:" + confirmAdmin.GetType()); - OdbcDataReader reader = null; - - if (conUser.GetType() == typeof(OdbcDataReader)) + try { - reader = (OdbcDataReader)conUser; - } + // Insert into users table + string sqlUser = $"UPDATE users t SET t.Password = '{editUser.password}', " + + $"t.Role = '{editUser.role}',t.Email = '{editUser.email}' " + + $"WHERE t.UserName = '{editUser.username}';"; - // Read Sql query results - while (reader.Read()) + bool updateNewUser = dbSource.UpdateData(sqlUser); + return updateNewUser; + + } + catch (Exception ex) { - Console.WriteLine(reader.GetString(0)); + return false; } + } + public bool DeleteUserRecord(UserAccount deleteUser, string CreatedBy, IDataSource dbSource) + { + try + { + // Insert into users table + string sqlUser = $"DELETE from users WHERE UserName = '{deleteUser.username}' " + + $"and Password = '{deleteUser.password}';"; - SqlDAO sqlDS = (SqlDAO)dbSource; - Console.WriteLine(""); + bool deleteNewUser = dbSource.DeleteData(sqlUser); + return deleteNewUser; - // Closing the connection - sqlDS.getConnection().Close();*/ - return true; + } + catch (Exception ex) + { + return false; + } } - public bool DeleteUserRecord(UserAccount newUser, IDataSource dbSource) + public bool DisableUser(UserAccount disableUser, string CreatedBy, IDataSource dbSource) { - return true; + try + { + // Insert into users table + string sqlUser = $"UPDATE users u SET u.IsActive = 0 WHERE u.UserName = '{disableUser.username}'" + + $"and u.Role = '{disableUser.role}';"; + + bool disableNewUser = dbSource.UpdateData(sqlUser); + return disableNewUser; + + } + catch (Exception ex) + { + return false; + } } - public bool DisableUser(UserAccount newUser, IDataSource dbSource) + public bool EnableUser(UserAccount enableUser, string CreatedBy, IDataSource dbSource) { - return true; - } - public bool EnableUser(UserAccount newUser, IDataSource dbSource) - { - return true; + try + { + // Insert into users table + string sqlUser = $"UPDATE users u SET u.IsActive = 1 WHERE u.UserName = '{enableUser.username}'" + + $"and u.Role = '{enableUser.role}';"; + + bool disableNewUser = dbSource.UpdateData(sqlUser); + return disableNewUser; + + } + catch (Exception ex) + { + return false; + } } } } diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs index e1129a2..d124ccb 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs @@ -224,7 +224,7 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement UserAccount newUser = new UserAccount(newCredentials.GetUserName(), newCredentials.GetPassword(), newCredentials.GetEmail(), newCredentials.GetRole(), DateTime.UtcNow); - bool accountValid = accountService.CreateUserRecord(newUser,user.username, dbSource); + bool accountValid = accountService.CreateUserRecord(newUser, user.username, dbSource); if (accountValid is true) { Console.WriteLine("\nAccount created Successfully"); @@ -234,30 +234,74 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement { return "Database Timed out"; } - //break; // Edit account case 2: - /* UserAccount newEditUser = new UserAccount(newCredentials.GetUserName(), - newCredentials.GetPassword(), DateTime.UtcNow); - accountService.EditUserRecord(newEditUser, dbSource);*/ + // State what account is being edited + string userName = newCredentials.GetUserName(); + string userRole = newCredentials.GetRole(); + + // Notify the user of what can be edited + Console.WriteLine($"\n****The following information will be used to update {userName}"); + + // Get updated parameters + UserAccount newEditUser = new UserAccount(userName, + newCredentials.GetPassword(), newCredentials.GetEmail(), + newCredentials.GetRole(), DateTime.UtcNow); + bool editValid = accountService.EditUserRecord(newEditUser, user.username, dbSource); + if (editValid is true) + { + Console.WriteLine("\nAccount updated Successfully"); + break; + } + else + { + return "Database Timed out"; + } break; // Delete account case 3: UserAccount newDeleteUser = new UserAccount(newCredentials.GetUserName(), newCredentials.GetPassword(), DateTime.UtcNow); - accountService.DeleteUserRecord(newDeleteUser, dbSource); + bool deleteValid = accountService.DeleteUserRecord(newDeleteUser, user.username , dbSource); + if (deleteValid is true) + { + Console.WriteLine("\nAccount deleted Successfully"); + break; + } + else + { + return "User does not exist"; + } break; // Disable account case 4: UserAccount newDisableUser = new UserAccount(newCredentials.GetUserName(), - newCredentials.GetPassword(), DateTime.UtcNow); - accountService.DisableUser(newDisableUser, dbSource); + newCredentials.GetRole()); + bool disableValid = accountService.DisableUser(newDisableUser, user.username , dbSource); + if (disableValid is true) + { + Console.WriteLine("\nAccount disabled Successfully"); + break; + } + else + { + return "Database Timed out"; + } break; // Enable account case 5: UserAccount newEnableUser = new UserAccount(newCredentials.GetUserName(), - newCredentials.GetPassword(), DateTime.UtcNow); - accountService.EnableUser(newEnableUser, dbSource); + newCredentials.GetRole()); + bool enableValid = accountService.EnableUser(newEnableUser, user.username , dbSource); + if (enableValid is true) + { + Console.WriteLine("\nAccount enabled Successfully"); + break; + } + else + { + return "Database Timed out"; + } break; // View logs case 6: diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs index 4b9a38f..a40deef 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs @@ -52,6 +52,12 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement _password = pwd; _Time = TimeStamp; } + public UserAccount(string un, string role) + { + _userName = un; + _Role = role; + _Time = DateTime.UtcNow; + } public UserAccount(string newUN, string newPWD, string Email, string role, DateTime newTime) { _userName = newUN; diff --git a/Source Code/main/Controller.cs b/Source Code/main/Controller.cs index f65ab47..97bcb58 100644 --- a/Source Code/main/Controller.cs +++ b/Source Code/main/Controller.cs @@ -95,29 +95,6 @@ namespace TeamHobby.HobbyProjectGenerator.Main } } - //Console.WriteLine(value: $"Welcome {username}\n"); - - /* string sqlQuery = "Select * from log;"; - Object result = datasource.ReadData(sqlQuery); - Console.WriteLine("type of Result: " + result.GetType()); - OdbcDataReader reader = null; - - if (result.GetType() == typeof(OdbcDataReader)) - { - reader = (OdbcDataReader)result; - - } - - Console.WriteLine("Reading from the database"); - while (reader.Read()) - { - Console.WriteLine("Date={0} {1} {2} {3} {4} {5}", reader[0], reader[1], reader[2], reader[3], reader[4], reader[5]); - } - SqlDAO sqlDS = (SqlDAO)datasource; - Console.WriteLine(""); - - // Closing the connection - sqlDS.getConnection().Close();*/ /* // While loop to keep this running forever with UserManagement // Testing archive Manager