diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/SqlDAO.cs b/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/SqlDAO.cs index 1843b50..6287a39 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/SqlDAO.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/SqlDAO.cs @@ -17,9 +17,9 @@ namespace TeamHobby.HobbyProjectGenerator.DataAccess public SqlDAO(string info) { try { - Console.WriteLine("Establising Connection"); + Console.WriteLine("Establising Connection..."); _conn = new OdbcConnection(info); - Console.WriteLine("Connection established"); + Console.WriteLine("Connection established."); } catch { //_conn = null; diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/AccountService.cs b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/AccountService.cs index 578c9d7..8a37d9c 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/AccountService.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/AccountService.cs @@ -3,28 +3,68 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Data.Odbc; +using TeamHobby.HobbyProjectGenerator.DataAccess; namespace TeamHobby.HobbyProjectGenerator.UserManagement { public class AccountService { - public bool CreateUserRecord(UserAccount newUser) + public bool CreateUserRecord(UserAccount newUser, IDataSource dbSource) + { + // string checkAdmin = $"Select * from users where username = {user.username} and password = {user.password};"; + // Insert into users table + string sqlUser = $"INSERT INTO hobby.users (UserName, Password," + + $"CreatedBy, CreatedDate, Email) VALUES ('{newUser.NewUserName}', " + + $"'{newUser.NewPassword}','{newUser.username}', NOW(),'{newUser.NewEmail}');"; + + Object insertNewUser = dbSource.WriteData(sqlUser); + // Insert into users table + string sqlRoles = $"INSERT INTO hobby.roles (Role, CreatedBy, CreatedDate) " + + $"VALUES ('{newUser.NewRole}', '{newUser.username}', 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.WriteData(confirmUser); + + //Console.WriteLine("type of Reesult:" + confirmAdmin.GetType()); + OdbcDataReader reader = null; + + if (conUser.GetType() == typeof(OdbcDataReader)) + { + reader = (OdbcDataReader)conUser; + } + + // Create String to hold sql output + string checkSql = ""; + + // Read Sql query results + while (reader.Read()) + { + Console.WriteLine(reader.GetString(0)); + } + + SqlDAO sqlDS = (SqlDAO)dbSource; + Console.WriteLine(""); + + // Closing the connection + sqlDS.getConnection().Close(); + return true; + } + public bool EditUserRecord(UserAccount newUser, IDataSource dbSource) { return true; } - public bool EditUserRecord(UserAccount newUser) + public bool DeleteUserRecord(UserAccount newUser, IDataSource dbSource) { return true; } - public bool DeleteUserRecord(UserAccount newUser) + public bool DisableUser(UserAccount newUser, IDataSource dbSource) { return true; } - public bool DisableUser(UserAccount newUser) - { - return true; - } - public bool EnableUser(UserAccount newUser) + public bool EnableUser(UserAccount newUser, IDataSource dbSource) { return true; } diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs index 8318853..47ab78a 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs @@ -146,7 +146,6 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement // Check with database if user is an admin public bool isAdmin(UserAccount user, IDataSource dbSource) { - // select r.Role from roles r, users u where UserName = '{user.username}' and Password = '{user.password}' and r.RoleID = u.RoleID; // string checkAdmin = $"Select * from users where username = {user.username} and password = {user.password};"; string checkAdmin = $"select r.Role from roles r, users u where " + $"UserName = '{user.username}' and Password = '{user.password}' and r.RoleID = u.RoleID;"; @@ -225,31 +224,31 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement UserAccount newUser = new UserAccount(newCredentials.GetUserName(), newCredentials.GetPassword(), newCredentials.GetEmail(), newCredentials.GetRole(), DateTime.UtcNow); - accountService.CreateUserRecord(newUser); + accountService.CreateUserRecord(newUser, dbSource); break; // Edit account case 2: UserAccount newEditUser = new UserAccount(newCredentials.GetUserName(), newCredentials.GetPassword(), DateTime.UtcNow); - accountService.EditUserRecord(newEditUser); + accountService.EditUserRecord(newEditUser, dbSource); break; // Delete account case 3: UserAccount newDeleteUser = new UserAccount(newCredentials.GetUserName(), newCredentials.GetPassword(), DateTime.UtcNow); - accountService.DeleteUserRecord(newDeleteUser); + accountService.DeleteUserRecord(newDeleteUser, dbSource); break; // Disable account case 4: UserAccount newDisableUser = new UserAccount(newCredentials.GetUserName(), newCredentials.GetPassword(), DateTime.UtcNow); - accountService.DisableUser(newDisableUser); + accountService.DisableUser(newDisableUser, dbSource); break; // Enable account case 5: UserAccount newEnableUser = new UserAccount(newCredentials.GetUserName(), newCredentials.GetPassword(), DateTime.UtcNow); - accountService.EnableUser(newEnableUser); + accountService.EnableUser(newEnableUser, dbSource); break; // View logs case 6: diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs index b75ac3b..3911cb4 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs @@ -51,24 +51,25 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement private string _newUserName; private string _newPassword; private string _newEmail; - private string _role; + private string _newRole; private DateTime _newTime; public UserAccount(string newUN, string newPWD, string Email, string role, DateTime newTime) { _newUserName = newUN; _newPassword = newPWD; - _role = role; + _newRole = role; _newEmail = Email; _newTime = newTime; } public UserAccount() { - _role = "regular"; + _newRole = "regular"; _newTime= DateTime.Now; } public string NewUserName { get { return _newUserName; } } public string NewPassword { get { return _newPassword; } } public string NewEmail { get { return _newEmail; } } - public DateTime Newtime { get { return _newTime; } } + public string NewRole { get { return _newRole; } } + public DateTime NewTime { get { return _newTime; } } } } diff --git a/Source Code/main/Controller.cs b/Source Code/main/Controller.cs index dad01c3..066b3cc 100644 --- a/Source Code/main/Controller.cs +++ b/Source Code/main/Controller.cs @@ -19,6 +19,8 @@ namespace TeamHobby.HobbyProjectGenerator.Main // Change terminal height Console.WindowHeight = 40; + Console.WriteLine(DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss")); + // Creating the Factory class string dbType = "sql"; RDSFactory factory = new RDSFactory();