diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Class1.cs b/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Class1.cs deleted file mode 100644 index e92f039..0000000 --- a/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Class1.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace TeamHobby.HobbyProjectGenerator.DataAccess -{ - public class Class1 - { - - } -} \ No newline at end of file diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/SqlDAO.cs b/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/SqlDAO.cs index 56c42f7..90f8416 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.DataAccess/Implementations/UiPrint.cs b/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/UiPrint.cs index e197fbb..6d06cb8 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/UiPrint.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/UiPrint.cs @@ -4,20 +4,12 @@ namespace TeamHobby.HobbyProjectGenerator.DataAccess { public class UiPrint { - public void InitialMenu() - { - // Create intial menu - Console.WriteLine("What would you like to access?"); - int num = 1; - Console.WriteLine(num + ".User Management"); - num += 1; - Console.WriteLine(num + ".Logging"); - } public void UserManagementMenu(string username) { // Menu for all UserManagement options int menu = 0; - Console.WriteLine($"Welcome {username} to User Management.\n"); + Console.WriteLine("-------------------------------------\n"); + Console.WriteLine($"\nWelcome {username} to User Management.\n"); Console.WriteLine("What would you like to do?\n"); Console.WriteLine(menu + ") To exit User Management.\n"); menu += 1; @@ -31,9 +23,9 @@ namespace TeamHobby.HobbyProjectGenerator.DataAccess menu += 1; Console.WriteLine(menu + ") Enable an account.\n"); menu += 1; - Console.WriteLine(menu + ") View logs.\n"); + Console.WriteLine(menu + ") View log path.\n"); menu += 1; - Console.WriteLine(menu + ") View archive.\n"); + Console.WriteLine(menu + ") View archive path.\n"); } } } diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILogger.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILogger.cs index 9aee5ba..bf17d92 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILogger.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILogger.cs @@ -1,4 +1,4 @@ -using System; +/*using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -14,3 +14,4 @@ namespace TeamHobby.HobbyProjectGenerator.Logging } } +*/ \ No newline at end of file diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILoggerFactory.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILoggerFactory.cs index cf0d199..28ab00f 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILoggerFactory.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILoggerFactory.cs @@ -1,4 +1,4 @@ -using System; +/*using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -14,3 +14,4 @@ namespace TeamHobby.HobbyProjectGenerator.Logging.Contracts } } } +*/ \ No newline at end of file diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/DBLogger.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/DBLogger.cs index 132ee82..59e7d2a 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/DBLogger.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/DBLogger.cs @@ -1,4 +1,4 @@ -using System; +/*using System; namespace TeamHobby.HobbyProjectGenerator.Logging { @@ -21,4 +21,4 @@ namespace TeamHobby.HobbyProjectGenerator.Logging } -} \ No newline at end of file +}*/ \ No newline at end of file diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/DBLoggerFactory.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/DBLoggerFactory.cs index f790cbb..c996ba2 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/DBLoggerFactory.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/DBLoggerFactory.cs @@ -1,4 +1,4 @@ -using System; +/*using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -18,3 +18,4 @@ namespace TeamHobby.HobbyProjectGenerator.Logging.Implementations } } } +*/ \ No newline at end of file diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/FileLogger.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/FileLogger.cs index 522f7ab..b4e4a75 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/FileLogger.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/FileLogger.cs @@ -20,4 +20,4 @@ // } -// } \ No newline at end of file +// } diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/InMemoryLogger.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/InMemoryLogger.cs index 233e083..eea5e87 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/InMemoryLogger.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/InMemoryLogger.cs @@ -55,4 +55,4 @@ // } // } -// } \ No newline at end of file +// } diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LogEntry.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LogEntry.cs index af049d1..c422760 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LogEntry.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LogEntry.cs @@ -1,4 +1,4 @@ -using System; +/*using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -51,4 +51,3 @@ namespace TeamHobby.HobbyProjectGenerator.Logging } } - diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LoggingManager.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LoggingManager.cs index ca367fe..f9c9d3a 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LoggingManager.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LoggingManager.cs @@ -1,4 +1,4 @@ -using System; +/*using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -42,3 +42,4 @@ namespace TeamHobby.HobbyProjectGenerator.Logging } } +*/ \ No newline at end of file diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Models/Credentials.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Models/Credentials.cs deleted file mode 100644 index 2670e8f..0000000 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Models/Credentials.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace TeamHobby.HobbyProjectGenerator.Models -{ - public class Credentials - { - public string userName { get; set; } - - // Syntactic sugar - public string Password { get; set; } - } -} \ No newline at end of file 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 28d621e..49b0e48 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs @@ -171,10 +171,11 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement Console.WriteLine(""); // Closing the connection - sqlDS.getConnection().Close(); + sqlDS.GetConnection().Close(); if (checkSql == "Admin") { + Console.WriteLine("-- Logged in successfully."); return true; } else @@ -204,12 +205,12 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement AccountService accountService = new AccountService(); // Create credentials object for new inptus GetCredentials newCredentials = new GetCredentials(); - // Print User Management menu - ui.UserManagementMenu(user.username); // Create bool object for menu loop bool menuLoop = true; // Create loop for menu while (menuLoop is true) { + // Print User Management menu + ui.UserManagementMenu(user.username); // Get user choice int menuChoice = Convert.ToInt32(Console.ReadLine()); // Complete the appropriate action @@ -217,38 +218,91 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement { // Exit menu case 0: - return "Exiting UserManagement.\n"; - break; + return "Back to Login"; // Create account case 1: + // Get all credentials and create newUser UserAccount newUser = new UserAccount(newCredentials.GetUserName(), - newCredentials.GetPassword(), newCredentials.GetEmail(), + newCredentials.ConfirmPassword(), newCredentials.GetEmail(), newCredentials.GetRole(), DateTime.UtcNow); - accountService.CreateUserRecord(newUser,user.username, dbSource); - break; + bool accountValid = accountService.CreateUserRecord(newUser, user.username, dbSource); + if (accountValid is true) + { + Console.WriteLine("\nAccount created Successfully"); + break; + } + else + { + return "Database Timed out"; + } // 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 "User does not exist"; + } 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 "User does not exist"; + } break; // View logs case 6: @@ -261,9 +315,7 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement break; } } - - string dbAction = user.username; - return dbAction; + return "Back to Login"; } } } diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs index 4b9a38f..58d6b13 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs @@ -5,7 +5,7 @@ using System.Text; using System.Threading.Tasks; namespace TeamHobby.HobbyProjectGenerator.UserManagement -{ +{ // Class for getting user credentials public class GetCredentials { public string? GetUserName() @@ -20,11 +20,26 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement string? userPassword = Console.ReadLine(); return userPassword; } - /*public string ConfirmPassword() + public string ConfirmPassword() { - Console.WriteLine(); - string confirmPassword = newUser.NewPassword; - }*/ + while (true) + { + Console.WriteLine("Please enter a password:"); + string? userPassword = Console.ReadLine(); + // Confirm Password + Console.WriteLine("Please re-enter the password:"); + string checkPsswd = Console.ReadLine(); + // Check if passwords match + if (userPassword == checkPsswd) + { + return userPassword; + } + else + { + Console.WriteLine("Passwords do not match.\n"); + } + } + } public string GetEmail() { Console.WriteLine("Please enter an email:"); @@ -52,6 +67,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/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln index fc15a13..62b8c20 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln +++ b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln @@ -4,6 +4,10 @@ Microsoft Visual Studio Solution File, Format Version 12.00 VisualStudioVersion = 17.0.31919.166 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.UserManagement.Tests", "..\TeamHobby.UserManagement.Tests\TeamHobby.UserManagement.Tests.csproj", "{5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}" + ProjectSection(ProjectDependencies) = postProject + {AA48A66C-FA36-4AF9-A782-CEC22838EB8F} = {AA48A66C-FA36-4AF9-A782-CEC22838EB8F} + {2E7193B8-86B6-48DA-9671-CD84615A5F5D} = {2E7193B8-86B6-48DA-9671-CD84615A5F5D} + EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGenerator.Models", "..\TeamHobby.HobbyProjectGenerator.Models\TeamHobby.HobbyProjectGenerator.Models.csproj", "{75DED6C2-D404-4E71-A58B-0F616DB5C062}" EndProject @@ -11,18 +15,21 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "main", "..\main\main.csproj EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGenerator.Archive", "..\TeamHobby.HobbyProjectGenerator.Archive\TeamHobby.HobbyProjectGenerator.Archive.csproj", "{B88ED0D9-72E2-4245-BD8F-856FF42E500C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.Main", "..\TeamHobby.Main\TeamHobby.Main.csproj", "{ED126EFB-B337-42F9-BE4B-65A5AE90503B}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGenerator.DataAccess", "..\TeamHobby.HobbyProjectGenerator.DataAccess\TeamHobby.HobbyProjectGenerator.DataAccess.csproj", "{AA48A66C-FA36-4AF9-A782-CEC22838EB8F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGenerator.Logging", "..\TeamHobby.HobbyProjectGenerator.Logging\TeamHobby.HobbyProjectGenerator.Logging.csproj", "{C0494115-838E-43A3-8896-133E5D1E874A}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGenerator.UserManagement", "..\TeamHobby.HobbyProjectGenerator.UserManagement\TeamHobby.HobbyProjectGenerator.UserManagement.csproj", "{2E7193B8-86B6-48DA-9671-CD84615A5F5D}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGenerator.Logging.Tests", "..\TeamHobby.HobbyProjectGenerator.Logging.Tests\TeamHobby.HobbyProjectGenerator.Logging.Tests.csproj", "{CA8D11CF-807C-4C90-A529-0371F73518F6}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGenerator.ArchiveTests", "..\TeamHobby.HobbyProjectGenerator.ArchiveTests\TeamHobby.HobbyProjectGenerator.ArchiveTests.csproj", "{C5EBD1F8-C806-4BF9-B2D7-8876072630FD}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.UserManagement.xTests", "TeamHobby.UserManagement.xTests\TeamHobby.UserManagement.xTests.csproj", "{6D575AF1-C138-44C5-B701-5AEC4ACEAA7A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D29D9225-3748-4067-AF07-E677A525EF39}" + ProjectSection(SolutionItems) = preProject + TeamHobby.HobbyProjectGenerator.csproj = TeamHobby.HobbyProjectGenerator.csproj + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -67,6 +74,13 @@ Global {C5EBD1F8-C806-4BF9-B2D7-8876072630FD}.Debug|Any CPU.Build.0 = Debug|Any CPU {C5EBD1F8-C806-4BF9-B2D7-8876072630FD}.Release|Any CPU.ActiveCfg = Release|Any CPU {C5EBD1F8-C806-4BF9-B2D7-8876072630FD}.Release|Any CPU.Build.0 = Release|Any CPU + {C5EBD1F8-C806-4BF9-B2D7-8876072630FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C5EBD1F8-C806-4BF9-B2D7-8876072630FD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C5EBD1F8-C806-4BF9-B2D7-8876072630FD}.Release|Any CPU.Build.0 = Release|Any CPU + {6D575AF1-C138-44C5-B701-5AEC4ACEAA7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D575AF1-C138-44C5-B701-5AEC4ACEAA7A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D575AF1-C138-44C5-B701-5AEC4ACEAA7A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D575AF1-C138-44C5-B701-5AEC4ACEAA7A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.UserManagement.xTests/TeamHobby.UserManagement.xTests.csproj b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.UserManagement.xTests/TeamHobby.UserManagement.xTests.csproj new file mode 100644 index 0000000..ef2ea1d --- /dev/null +++ b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.UserManagement.xTests/TeamHobby.UserManagement.xTests.csproj @@ -0,0 +1,28 @@ + + + + net6.0 + enable + + false + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + + diff --git a/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.UserManagement.xTests/UnitTest1.cs b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.UserManagement.xTests/UnitTest1.cs new file mode 100644 index 0000000..60baa67 --- /dev/null +++ b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.UserManagement.xTests/UnitTest1.cs @@ -0,0 +1,105 @@ +using System; +using Xunit; +using Xunit.Abstractions; +using System.Threading; +using TeamHobby.HobbyProjectGenerator.UserManagement; +using TeamHobby.HobbyProjectGenerator.DataAccess; + +namespace TeamHobby.UserManagement.xTests +{ + public class UnitTest1 + { + + ITestOutputHelper output; + public UnitTest1(ITestOutputHelper output) + { + this.output = output; + } + [Fact] + public void SingleOperationinFiveSec() + { + // Arrange + DateTime sTime = DateTime.Now; + var TestAcc = new UserAccount("newUser", "4567", "email@a.com", "regular", sTime); + var serviceTest = new AccountService(); + string dbType = "sql"; + RDSFactory dbFactory = new RDSFactory(); + + // Testing Data Access Layer + string dbInfo = "DRIVER={MariaDB ODBC 3.1 Driver};" + + "TCPIP=1;" + + "SERVER=localhost;" + + "DATABASE=hobby;" + + "UID=root;" + + "PASSWORD=hobby;" + + "OPTION=3"; + IDataSource datasource = dbFactory.getDataSource(dbType, dbInfo); + + // Act + // Create a file + serviceTest.CreateUserRecord(TestAcc, "Rifat", datasource); + DateTime eTime = DateTime.Now; + TimeSpan timeDiff = (eTime - sTime); + var sec = timeDiff.TotalSeconds; + + // Assert + if (sec > 5) + { + output.WriteLine("Single Operation was unsuccessful"); + Assert.False(true); + } + else + { + Assert.True(true); + output.WriteLine("Single Operation was successful"); + } + } + + [Fact] + public void BulkOperationforSixty() + { + // Arrange + DateTime sTime = DateTime.Now; + + var serviceTest = new AccountService(); + string dbType = "sql"; + RDSFactory dbFactory = new RDSFactory(); + + + // Testing Data Access Layer + string dbInfo = "DRIVER={MariaDB ODBC 3.1 Driver};" + + "TCPIP=1;" + + "SERVER=localhost;" + + "DATABASE=hobby;" + + "UID=root;" + + "PASSWORD=hobby;" + + "OPTION=3"; + IDataSource datasource = dbFactory.getDataSource(dbType, dbInfo); + + // Act + // Create a file + for (int i = 0; i < 10000; i++) + { + var TestAcc = new UserAccount("newUser" + $"{i}", "4567", $"email{i}@a.com", "regular", sTime); + serviceTest.CreateUserRecord(TestAcc, "Rifat", datasource); + } + + DateTime eTime = DateTime.Now; + TimeSpan timeDiff = (eTime - sTime); + var sec = timeDiff.TotalSeconds; + + + // Assert + if (sec > 60) + { + output.WriteLine("Bulk Operation was unsuccessful"); + Assert.False(true); + } + else + { + Assert.True(true); + output.WriteLine("Bulk Operation was successful"); + } + } + } +} \ No newline at end of file diff --git a/Source Code/main/Controller.cs b/Source Code/main/Controller.cs index 5ef6620..1d74a58 100644 --- a/Source Code/main/Controller.cs +++ b/Source Code/main/Controller.cs @@ -2,28 +2,10 @@ using System.Data.Odbc; using TeamHobby.HobbyProjectGenerator.Archive; using TeamHobby.HobbyProjectGenerator.DataAccess; -using TeamHobby.HobbyProjectGenerator.Logging; using TeamHobby.HobbyProjectGenerator.UserManagement; namespace TeamHobby.HobbyProjectGenerator.Main -{ - - public class GetCredentials - { - - public string? GetUserName() - { - Console.WriteLine("Please enter a username:"); - string? userName = Console.ReadLine(); - return userName; - } - public string? GetPassword() - { - Console.WriteLine("Please enter " + - "a password:"); - string? userPassword = Console.ReadLine(); - return userPassword; - } +{ public class Controller { @@ -37,102 +19,85 @@ 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 // Logger log = new Logger(); //Logger.PrintTest(); - //GetCredentials credentials = new GetCredentials(); - //string? username = credentials.GetUserName(); - //string? password = credentials.GetPassword(); -// Console customization - // Change the look of the console - Console.Title = "HobbyProjectGenerator"; - // Change console text color - Console.ForegroundColor = ConsoleColor.Green; - // Change terminal height - Console.WindowHeight = 40; - //Console.WriteLine(value: $"username is {username}\npassword is {password}"); - // Creating the Factory class - // Creating the Factory class + // Loop login terminal + bool mainMenu = true; - string dbType = "sql"; - RDSFactory dbFactory = new RDSFactory(); - - // Testing Data Access Layer - string dbInfo = "DRIVER={MariaDB ODBC 3.1 Driver};" + - "TCPIP=1;" + - "SERVER=localhost;" + - "DATABASE=hobby;" + - "UID=root;" + - "PASSWORD=Teamhobby;" + - "OPTION=3"; - IDataSource datasource = factory.getDataSource(dbType, dbInfo); - "PORT=3306;"; - - - "OPTION=3"; - - IDataSource datasource = dbFactory.getDataSource(dbType, dbInfo); - // Create manager class from UserManagement - SystemAccountManager manager = new SystemAccountManager(); - - // Admin Sign in - GetCredentials credentials = new GetCredentials(); - string? username = credentials.GetUserName(); - string? password = credentials.GetPassword(); - - // Get time of login attempt - DateTime TimeStamp = DateTime.UtcNow; - - // Create UserAccount class - UserAccount user = new UserAccount(username, password, TimeStamp); - - Console.Write(manager.CreateUserRecord(user, datasource)); - - //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)) + // Loop Admin login + while (mainMenu is true) { - reader = (OdbcDataReader)result; - } - // [Logname, loglevel, date, time, ...] + // Admin Sign in + GetCredentials credentials = new GetCredentials(); + Console.WriteLine("\nPlease Enter Admin Credentials " + + "or enter 0 to exit the machine\n"); + string? username = credentials.GetUserName(); + //int menuExit = Convert.ToInt32(username); + // Exit Infinite Menu + if (username == "0") + { + break; + } + string? password = credentials.GetPassword(); - 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(""); + // Get time of login attempt + DateTime TimeStamp = DateTime.UtcNow; + + - // Closing the connection - sqlDS.GetConnection().Close(); + // String for checking query return type + string dbType = "sql"; + // Creating the Factory class + RDSFactory dbFactory = new RDSFactory(); - // While loop to keep this running forever with UserManagement - //Testing archive Manager - //while (true) - //{ - //string currentDate = DateTime.Now.ToString("dd"); - //string currentTime = DateTime.Now.ToString("T"); - //string activateDate = "01"; - //string activateTime = "00:00:00 AM"; - //Console.WriteLine("Current date: {0}, Current Time: {1}", currentDate, currentTime); - //if (String.Equals(currentDate, activateDate) && String.Equals(currentTime, activateTime)) + // Testing Data Access Layer + string dbInfo = "DRIVER={MariaDB ODBC 3.1 Driver};" + + "TCPIP=1;" + + "SERVER=localhost;" + + "DATABASE=hobby;" + + "UID=root;" + + "PASSWORD=Teamhobby;" + + "OPTION=3"; + IDataSource datasource = dbFactory.getDataSource(dbType, dbInfo); + + // While loop to keep this running forever with UserManagement + // Testing archive Manager + //while (true) //{ - //ArchiveManager archive = new ArchiveManager(datasource); - //archive.Controller(); + string currentDate = DateTime.Now.ToString("dd"); + string currentTime = DateTime.Now.ToString("T"); + //Console.WriteLine("Current date: {0}, Current Time: {1}", currentDate, currentTime); + if (String.Equals(currentDate, "1") && String.Equals(currentTime, "00:00:00 AM")) + { + ArchiveManager archive = new ArchiveManager(datasource); + archive.Controller(); + } //} - //} + // Create manager class from UserManagement + SystemAccountManager manager = new SystemAccountManager(); + // Create UserAccount class + UserAccount user = new UserAccount(username, password, TimeStamp); + // Call user object and wait for return string + string isLogin = manager.CreateUserRecord(user, datasource); + + // If login is not incorrect and user is returning to login menu + if (isLogin != "Access Denied: Unauthorized\n") + { + Console.WriteLine("Returning to login...\n"); + Console.WriteLine("-------------------------------------\n"); + } + // If login is incorrect + else + { + Console.WriteLine("******Access Denied: Unauthorized******"); + } + + } //Creating the folder Archive //Console.WriteLine("Creating a new folder ..."); @@ -163,8 +128,6 @@ namespace TeamHobby.HobbyProjectGenerator.Main //sqlDS.RemoveEntries(); - - // 2.Inserting Data into the database: //string sqlWrite = "INSERT into log(lvname, catname, userop, logmessage) values " + // "('Info', 'View', 'Testing DAL stuffs', 'new DAL method tested');"; @@ -178,86 +141,9 @@ namespace TeamHobby.HobbyProjectGenerator.Main //Console.WriteLine("Writing to the database... "); //datasource.WriteData(sqlRemove); //Console.WriteLine("Writing completed. "); - - /* bool MainMenu = true; - - // Set up menu loop - while (MainMenu == true) - { - // Console customization - // Change the look of the console - Console.Title = "HobbyProjectGenerator"; - // Change console text color - Console.ForegroundColor = ConsoleColor.Green; - // Change terminal height - Console.WindowHeight = 40; - - - // Create class objects - UiPrint menu = new UiPrint(); - - - // Print main menu - menu.InitialMenu(); - - // Set up try-catch for invalid inputs - try - { - // Get user choice - string initialChoice = Console.ReadLine(); - // Convert to integer - int Choice = Convert.ToInt32(initialChoice); - - switch (Choice) - { - case 0: - MainMenu = false; - break; - // Create a new account - case 1: - user.newUser(); - break; - // Access Admin features - case 2: - // Ask for Admin login credentials - Console.WriteLine("Please enter a username:"); - string AdminUser = Console.ReadLine(); - Console.WriteLine("Please enter the password for" + AdminUser); - string AdminPsswrd = Console.ReadLine(); - - // Check if the username and password match a record within the administrators - - - // Show new administrator menu - int AdminNum = 0; - Console.WriteLine("Welcome" + AdminUser); - Console.WriteLine("What would you like to do?"); - Console.WriteLine("1.View normal user records."); - Console.WriteLine("2.View Administrator user records."); - Console.WriteLine("3.View log files."); - Console.WriteLine(""); - Console.WriteLine(""); - Console.WriteLine(""); - Console.WriteLine(""); - Console.WriteLine(""); - - - break; - default: - Console.WriteLine("Invalid choice, please enter a valid number."); - break; - }; - } - // Catch invalid keys such as spamming enter - catch - { - MainMenu = false; - };*/ - //} - } } - } } + diff --git a/Source Code/main/MainMenu.cs b/Source Code/main/MainMenu.cs deleted file mode 100644 index 64a8930..0000000 --- a/Source Code/main/MainMenu.cs +++ /dev/null @@ -1,134 +0,0 @@ -using System; - -namespace TeamHobby.HobbyProjectGenerator.Main -{ - public class MainMenu - { - /*static void Main(string[] args) - { - /* ExampleDAO z = new ExampleDAO(); - z.UserData("Tomato"); - Console.Read();*/ - /*bool menu = true; - - // Set up menu loop - while (menu == true) - { - // Console customization - // Change the look of the console - Console.Title = "HobbyProjectGenerator"; - // Change console text color - Console.ForegroundColor = ConsoleColor.Green; - // Change terminal height - Console.WindowHeight = 40; - - - // Create intial menu - Console.WriteLine("What would you like to do?"); - int num = 1; - Console.WriteLine(num + ".Create a new user account."); - num += 1; - Console.WriteLine(num + ".Acess Admin Features."); - - // Set up try-catch for invalid inputs - try - { - // Get user choice - string initialChoice = Console.ReadLine(); - // Convert to integer - int Choice = Convert.ToInt32(initialChoice); - - switch (Choice) - { - // Create a new account - case 1: - // Get username - Console.WriteLine("Please enter a username:"); - string userName = Console.ReadLine(); - - // Get Password - Console.WriteLine("Please enter a password:"); - string userPassword = Console.ReadLine(); - - // Create bool value for password confirm loop - bool conPsswrd = true; - // Loop until password is confirmed - while (conPsswrd == true) - { - // Confirm Password - Console.WriteLine("Please re-enter the password:"); - string checkPsswd = Console.ReadLine(); - // Check if passwords match - if (userPassword == checkPsswd) - { - // Get Security question for password reset - Console.WriteLine("Please enter a security question.\n" + - "(EX: What is your favorite food?"); - string SecQuest = Console.ReadLine(); - // Get Security question answer - Console.WriteLine("Please enter the answer for your security question:"); - String SecAnswer = Console.ReadLine(); - - // Call user manager method to create the new user - //int userCreateConfirm = new CreateUser(userName,userPassword,SecQuest,SecAnswer); - - // Check if user creation was successful - /* if (userCreateConfirm = 1) - { - - // Confirm to user that the account has been created - Console.WriteLine("Account created succesfully with the username of" + userName); - } - else - { - - }*/ - /* conPsswrd = false; - } - else - { - Console.WriteLine("Passwords did not match, please try again."); - } - } - break; - // Access Admin features - case 2: - // Ask for Admin login credentials - Console.WriteLine("Please enter a username:"); - string AdminUser = Console.ReadLine(); - Console.WriteLine("Please enter the password for" + AdminUser); - string AdminPsswrd = Console.ReadLine(); - - // Check if the username and password match a record within the administrators - - - // Show new administrator menu - int AdminNum = 0; - Console.WriteLine("Welcome" + AdminUser); - Console.WriteLine("What would you like to do?"); - Console.WriteLine("1.View normal user records."); - Console.WriteLine("2.View Administrator user records."); - Console.WriteLine("3."); - Console.WriteLine(""); - Console.WriteLine(""); - Console.WriteLine(""); - Console.WriteLine(""); - Console.WriteLine(""); - - - break; - default: - menu = false; - break; - }; - } - // Catch invalid keys such as spamming enter - catch - { - menu = false; - }; - }*/ - - //} - } -} diff --git a/Source Code/main/SqlDAO.cs b/Source Code/main/SqlDAO.cs deleted file mode 100644 index 8e331a7..0000000 --- a/Source Code/main/SqlDAO.cs +++ /dev/null @@ -1,50 +0,0 @@ -using Microsoft.Data.SqlClient; -using TeamHobby.HobbyProjectGenerator.Models; - -namespace TeamHobby.HobbyProjectGenerator.DAL -{ - public class SqlDAO - { - public IList GetUserData(string username) - { - // Sql server connection string, needs to be changed accordingly to connect - var connString = "server=localhost;userid=root;password=Plop20;database=users"; // Using @" " makes the string literal - - // ADO.NET - ODBC - using (var conn = new SqlConnection(connString)) - { - // More complex sql commands are done in this method instead - var sql = "Select * from roles"; - using (var command = new SqlCommand(sql, conn)) - { - // Get the results from the query - SqlDataReader r = command.ExecuteReader(); - - // If you wanted to get a singular value back such as a count of a certain item - //command.ExecuteScalar(); - - // To execute something that doesn't expect results to come back - // Use this method instead, IE. Update command - //command.ExecuteNonQuery(); - - // Read data from query - while (r.Read()) - { - Console.WriteLine(r.ToString()); - } - return null; - } - - /*// this is meant for specific basic sql commands - using (var adapter = new SqlDataAdapter()) - { - adapter.UpdateCommand - adapter.DeleteCommand - adapter.InsertCommand - adapter.SelectCommand - }*/ - - } - } - } -} diff --git a/Source Code/main/main.csproj b/Source Code/main/main.csproj index b25874c..f8ad87e 100644 --- a/Source Code/main/main.csproj +++ b/Source Code/main/main.csproj @@ -16,8 +16,6 @@ - - diff --git a/src/dbCode/UserManagementDDL.txt b/src/dbCode/UserManagementDDL.txt index c8419fc..d8775ac 100644 --- a/src/dbCode/UserManagementDDL.txt +++ b/src/dbCode/UserManagementDDL.txt @@ -1,26 +1,5 @@ -create table users -( - UserName varchar(50) charset utf8mb3 not null, - Password varchar(50) charset utf8mb3 not null, - Role varchar(50) charset utf8mb3 not null, - IsActive int default 1 not null, - CreatedBy varchar(50) charset utf8mb3 not null, - CreatedDate datetime not null, - constraint userRole_fk foreign key (Role) references roles (Role), - constraint user_pk primary key (UserName) -); - -INSERT INTO hobby.users (UserName, Password, Role, IsActive, CreatedBy, CreatedDate, Email) VALUES -('Colin ', 'Waffle', 'Admin', 1, 'Jacob', '2021-12-13 04:27:42', null), -('Danny', 'Spartan', 'Admin', 1, 'Jacob', '2021-12-13 04:29:54', null), -('Jacob', 'Teamhobby1234', 'Admin', 1, 'SystemCreator', '2021-12-13 03:25:14', null), -('Long', 'Joystick', 'regular', 1, 'Jacob', '2021-12-13 04:29:57', null), -('Rifat', 'ApproveDar', 'Admin', 1, 'Jacob', '2021-12-13 04:29:55', null); - - create table roles ( - RoleID int not null, Role varchar(50) charset utf8mb3 not null, CreatedBy varchar(200) charset utf8mb3 not null, CreatedDate datetime not null, @@ -28,6 +7,31 @@ create table roles primary key (Role) ); +create table users +( + UserName varchar(50) charset utf8mb3 not null + primary key, + Password varchar(50) charset utf8mb3 not null, + Role varchar(50) charset utf8mb3 not null, + IsActive int default 1 not null, + CreatedBy varchar(50) charset utf8mb3 not null, + CreatedDate datetime not null, + Email varchar(50) null, + constraint users_Email_uindex + unique (Email), + constraint userRole_fk + foreign key (Role) references roles (Role) +); + + +INSERT INTO hobby.users (UserName, Password, Role, IsActive, CreatedBy, CreatedDate, Email) VALUES +('Colin ', 'Waffle', 'Admin', 1, 'Jacob', '2021-12-13 04:27:42', null), +('Danny', 'Spartan', 'Admin', 1, 'Jacob', '2021-12-13 04:29:54', null), +('Jacob', 'Teamhobby1234', 'Admin', 1, 'SystemCreator', '2021-12-13 03:25:14', null), +('Long', 'Joystick', 'regular', 1, 'Jacob', '2021-12-13 04:29:57', null), +('Rifat', '1234', 'Admin', 1, 'Jacob', '2021-12-13 04:29:55', null); + + INSERT INTO hobby.roles (Role, CreatedBy, CreatedDate) VALUES ('Admin', 'Jacob', '2021-12-13 03:25:14'), -('regular', 'Colin', '2021-12-13 03:25:14'); +('regular', 'Jacob', '2021-12-13 03:25:14'); diff --git a/src/dbCode/fullDDL.txt b/src/dbCode/fullDDL.txt index f77d833..ffcc31a 100644 --- a/src/dbCode/fullDDL.txt +++ b/src/dbCode/fullDDL.txt @@ -2,52 +2,44 @@ create database Hobby; use hobby; +create table roles +( + Role varchar(50) charset utf8mb3 not null, + CreatedBy varchar(200) charset utf8mb3 not null, + CreatedDate datetime not null, + constraint role_pk + primary key (Role) +); + create table users ( UserName varchar(50) charset utf8mb3 not null primary key, - Password varchar(50) charset utf8mb3 null, - RoleID int auto_increment, - IsActive int default 1 null, - CreatedBy varchar(50) charset utf8mb3 null, - CreatedDate datetime null, - constraint users_UserName_uindex - unique (UserName), - constraint users_roles_RoleID_fk - foreign key (RoleID) references roles (RoleID) + Password varchar(50) charset utf8mb3 not null, + Role varchar(50) charset utf8mb3 not null, + IsActive int default 1 not null, + CreatedBy varchar(50) charset utf8mb3 not null, + CreatedDate datetime not null, + Email varchar(50) null, + constraint users_Email_uindex + unique (Email), + constraint userRole_fk + foreign key (Role) references roles (Role) ); -INSERT INTO hobby.users (UserName, Password, CreatedBy, CreatedDate) VALUES ('Colin ', 'Waffle', 'Jacob', '2021-12-13 04:27:42'); -INSERT INTO hobby.users (UserName, Password, CreatedBy, CreatedDate) VALUES ('Danny', 'Spartan', 'Jacob', '2021-12-13 04:29:54'); -INSERT INTO hobby.users (UserName, Password, CreatedBy, CreatedDate) VALUES ('Jacob', 'Teamhobby1234', 'SystemCreator', '2021-12-13 03:25:14'); -INSERT INTO hobby.users (UserName, Password, CreatedBy, CreatedDate) VALUES ('Long', 'Joystick', 'Jacob', '2021-12-13 04:29:57'); -INSERT INTO hobby.users (UserName, Password, CreatedBy, CreatedDate) VALUES ('Rifat', 'ApproveDar', 'Jacob', '2021-12-13 04:29:55'); + +INSERT INTO hobby.users (UserName, Password, Role, IsActive, CreatedBy, CreatedDate, Email) VALUES +('Colin ', 'Waffle', 'Admin', 1, 'Jacob', '2021-12-13 04:27:42', null), +('Danny', 'Spartan', 'Admin', 1, 'Jacob', '2021-12-13 04:29:54', null), +('Jacob', 'Teamhobby1234', 'Admin', 1, 'SystemCreator', '2021-12-13 03:25:14', null), +('Long', 'Joystick', 'regular', 1, 'Jacob', '2021-12-13 04:29:57', null), +('Rifat', '1234', 'Admin', 1, 'Jacob', '2021-12-13 04:29:55', null); -create table roles -( - RoleID int auto_increment - primary key, - Role varchar(50) charset utf8mb3 null, - CreatedBy varchar(200) charset utf8mb3 null, - CreatedDate datetime null -); +INSERT INTO hobby.roles (Role, CreatedBy, CreatedDate) VALUES +('Admin', 'Jacob', '2021-12-13 03:25:14'), +('regular', 'Jacob', '2021-12-13 03:25:14'); -INSERT INTO hobby.roles (Role, CreatedBy, CreatedDate) VALUES ('Admin', 'SystemCreator', '2021-12-13 03:25:14'); -INSERT INTO hobby.roles (Role, CreatedBy, CreatedDate) VALUES ('regular', 'Colin', '2021-12-13 03:25:14'); -INSERT INTO hobby.roles (Role, CreatedBy, CreatedDate) VALUES ('regular', 'Colin', '2021-12-13 03:25:14'); -INSERT INTO hobby.roles (Role, CreatedBy, CreatedDate) VALUES ('regular', 'Jacob', '2021-12-13 03:37:44'); -INSERT INTO hobby.roles (Role, CreatedBy, CreatedDate) VALUES ('regular', 'Jacob', '2021-12-13 03:37:46'); -INSERT INTO hobby.roles (Role, CreatedBy, CreatedDate) VALUES ('regular', 'Jacob', '2021-12-13 03:37:47'); -INSERT INTO hobby.roles (Role, CreatedBy, CreatedDate) VALUES ('regular', 'Jacob', '2021-12-13 03:37:47'); -INSERT INTO hobby.roles (Role, CreatedBy, CreatedDate) VALUES ('regular', 'Jacob', '2021-12-13 03:37:49'); -INSERT INTO hobby.roles (Role, CreatedBy, CreatedDate) VALUES ('regular', 'Jacob', '2021-12-13 03:37:50'); -INSERT INTO hobby.roles (Role, CreatedBy, CreatedDate) VALUES ('regular', 'Jacob', '2021-12-13 03:37:51'); - - -alter table users - add constraint users_roles_RoleID_fk - foreign key (RoleID) references roles (RoleID); SET Global innodb_file_per_table=ON; -- SET GLOBAL innodb_file_format='Barracuda';