From d8bf615b0245f183e9681b404dcdf3bb3d1e4244 Mon Sep 17 00:00:00 2001 From: Lunastra Date: Mon, 13 Dec 2021 19:37:39 -0800 Subject: [PATCH 01/14] Add method for testing if the file exist or not --- .../ArchivingTests.cs | 89 +++++++++++++++++-- Source Code/main/Controller.cs | 17 ++-- 2 files changed, 93 insertions(+), 13 deletions(-) diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.ArchiveTests/ArchivingTests.cs b/Source Code/TeamHobby.HobbyProjectGenerator.ArchiveTests/ArchivingTests.cs index 88e7b50..3d7be64 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.ArchiveTests/ArchivingTests.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.ArchiveTests/ArchivingTests.cs @@ -40,8 +40,8 @@ namespace TeamHobby.HobbyProjectGenerator.ArchiveTests { Directory.Delete(folderPath, true); } - catch { - Console.WriteLine("Folder failed to be deleted"); + catch { + Console.WriteLine("Folder failed to be deleted"); } } else @@ -75,21 +75,63 @@ namespace TeamHobby.HobbyProjectGenerator.ArchiveTests } - public void CopyingToAFileTest(IDataSource sqlDAO) + // [Test Method] + public void IsCSVFileExist(IDataSource sqlDAO) { // Arrange ArchiveManager archiveManager = new ArchiveManager(sqlDAO); SqlDAO sqlDS = null; - + string folderPath = @"C:/HobbyArchive"; + + try + { + bool folderRes = archiveManager.CreateArchiveFolder(); + } + catch (Exception ex) + { + Console.WriteLine("Folder creation for copying failed"); + } + string filePath = archiveManager.CreateOutFileName(); + bool expectedVal = true; + if (sqlDAO.GetType() == typeof(SqlDAO)) { sqlDS = (SqlDAO)sqlDAO; } // Act - - + bool actualVal = false; + if (sqlDS != null) + { + try + { + actualVal = sqlDS.CopyToFile(filePath); + } + catch (Exception ex) + { + Console.WriteLine("Copying to a file failed !!"); + Console.WriteLine(ex.Message); + } + } // Assert + bool result = File.Exists(filePath); + if (result) + { + Console.WriteLine("Expected: {0}, Actual: {1}. CSV file created correctly", expectedVal, actualVal); + // Clean up the folder use to test. + try + { + Directory.Delete(folderPath, true); + } + catch + { + Console.WriteLine("Folder failed to be deleted"); + } + } + else + { + Console.WriteLine("Expected: {0}, Actual: {1}. CSV file created incorrectly", expectedVal, actualVal); + } } @@ -116,6 +158,41 @@ namespace TeamHobby.HobbyProjectGenerator.ArchiveTests Console.WriteLine(""); + // Testing file creation + test.IsCSVFileExist(sqlDAO); + Console.WriteLine("-----------------"); + Console.WriteLine(""); + + // Testing archive Manager + int i = -10; + while (i < 20) + { + DateTime date1 = new DateTime(2021, 12, 1, 0, 0, 0); + //Console.WriteLine("Testing first of month: {0}", date1.ToString("dd")); + //string currentDate = DateTime.Now.ToString("dd"); + //string currentTime = DateTime.Now.ToString("T"); + string currentTime= "00:00:00 AM"; + string currentDate = i.ToString(); + + if (i == 1) + { + currentDate = date1.ToString("dd"); + //ArchiveManager archive = new ArchiveManager(sqlDAO); + //archive.Controller(); + } + + //Console.WriteLine("Current date: {0}, Current Time: {1}", currentDate, currentTime); + Console.WriteLine("Current date: {0}, Current Time: {1}", currentDate, currentTime); + if (String.Equals(currentDate, "01") && String.Equals(currentTime, "00:00:00 AM")) + { + Console.WriteLine("Archiving process Start"); + ArchiveManager archive = new ArchiveManager(sqlDAO); + archive.Controller(); + } + + i++; + } + } } diff --git a/Source Code/main/Controller.cs b/Source Code/main/Controller.cs index 33c1916..73488f2 100644 --- a/Source Code/main/Controller.cs +++ b/Source Code/main/Controller.cs @@ -66,20 +66,23 @@ namespace TeamHobby.HobbyProjectGenerator.Main Console.WriteLine(""); // Closing the connection - sqlDS.getConnection().Close(); + sqlDS.GetConnection().Close(); // While loop to keep this running forever with UserManagement - // Testing archive Manager - //while (true) - //{ + //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, "1") && String.Equals(currentTime, "00:00:00 AM")){ + if (String.Equals(currentDate, activateDate) && String.Equals(currentTime, activateTime)) + { ArchiveManager archive = new ArchiveManager(datasource); archive.Controller(); } - //} + } @@ -111,7 +114,7 @@ namespace TeamHobby.HobbyProjectGenerator.Main //// Remove entries fromt the database //sqlDS.RemoveEntries(); - + // 2.Inserting Data into the database: From c021d5f04f47e6aa118df51ec4ca15f88da2187c Mon Sep 17 00:00:00 2001 From: colincreasman Date: Mon, 13 Dec 2021 20:18:42 -0800 Subject: [PATCH 02/14] Added initial Logging library --- ...Hobby.HobbyProjectGenerator.Archive.csproj | 1 + .../Contracts/ILogger.cs | 2 +- .../Contracts/ILoggerFactory.cs | 1 + .../Implementations/ConsoleLogger.cs | 35 ++++---- .../Implementations/FileLogger.cs | 35 ++++---- .../Implementations/InMemoryLogger.cs | 86 ++++++++++++------- .../LogEntry.cs | 24 ++++++ ...LoggingController.cs => LoggingManager.cs} | 10 +-- ...Hobby.HobbyProjectGenerator.Logging.csproj | 1 + .../TeamHobby.HobbyProjectGenerator.sln | 80 ++++++++--------- Source Code/main/Controller.cs | 38 +++++--- Source Code/main/main.csproj | 3 +- 12 files changed, 188 insertions(+), 128 deletions(-) rename Source Code/TeamHobby.HobbyProjectGenerator.Logging/{LoggingController.cs => LoggingManager.cs} (81%) diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Archive/TeamHobby.HobbyProjectGenerator.Archive.csproj b/Source Code/TeamHobby.HobbyProjectGenerator.Archive/TeamHobby.HobbyProjectGenerator.Archive.csproj index 09da541..65fcde5 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Archive/TeamHobby.HobbyProjectGenerator.Archive.csproj +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Archive/TeamHobby.HobbyProjectGenerator.Archive.csproj @@ -4,6 +4,7 @@ net6.0 enable enable + AnyCPU;x86 diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILogger.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILogger.cs index 75e8078..9aee5ba 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILogger.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILogger.cs @@ -10,7 +10,7 @@ namespace TeamHobby.HobbyProjectGenerator.Logging { bool Log(LogEntry log); - IList GetAllLogs(); + // IList GetAllLogs(); } } diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILoggerFactory.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILoggerFactory.cs index 6de5ce3..cf0d199 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILoggerFactory.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILoggerFactory.cs @@ -10,6 +10,7 @@ namespace TeamHobby.HobbyProjectGenerator.Logging.Contracts { ILogger CreateLogger() { + return new DBLogger(); } } } diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/ConsoleLogger.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/ConsoleLogger.cs index 28195f5..ba0c24d 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/ConsoleLogger.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/ConsoleLogger.cs @@ -1,21 +1,16 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +// using System; +// using System.Collections.Generic; +// using System.Linq; +// using System.Text; +// using System.Threading.Tasks; -namespace TeamHobby.HobbyProjectGenerator.Logging -{ - public class ConsoleLogger : ILogger - { - public IList GetAllLogs() - { - throw new NotImplementedException(); - } - - public bool Log(string description) - { - throw new NotImplementedException(); - } - } -} +// namespace TeamHobby.HobbyProjectGenerator.Logging +// { +// public class ConsoleLogger : ILogger +// { +// public bool Log(LogEntry log) +// { +// return true; +// } +// } +// } diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/FileLogger.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/FileLogger.cs index 1ca93a8..522f7ab 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/FileLogger.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/FileLogger.cs @@ -1,18 +1,23 @@ -using System; +// using System; -namespace TeamHobby.HobbyProjectGenerator.Logging -{ - public class FileLogger : ILogger - { - public IList GetAllLogs() - { - throw new NotImplementedException(); - } +// namespace TeamHobby.HobbyProjectGenerator.Logging +// { +// public class FileLogger : Ilogger +// { +// public FileLogger() +// { +// } - public bool Log(string description) - { - throw new NotImplementedException(); - } - } +// public IList GetAllLogs() +// { +// throw new NotImplementedException(); +// } -} \ No newline at end of file +// public bool Log(LogEntry log) +// { +// throw new NotImplementedException(); +// } + +// } + +// } \ 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 80dacb7..233e083 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/InMemoryLogger.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/InMemoryLogger.cs @@ -1,38 +1,58 @@ -using System; -using System.Collections.Generic; -namespace TeamHobby.HobbyProjectGenerator.Logging -{ - // implementation of ILogger that stores logs as they initialize - public class InMemoryLogger : ILogger - { - // make readonly to prevent it from being changed somewhere other than in the constructor - private readonly IList _logStore; +// using System; +// using System.Collections.Generic; +// namespace TeamHobby.HobbyProjectGenerator.Logging +// { +// // implementation of ILogger that stores logs as they initialize +// public class InMemoryLogger : ILogger +// { +// // make readonly to prevent it from being changed somewhere other than in the constructor +// private readonly IList _logStore; - public InMemoryLogger() - { - // list of current logs - _logStore = new List(); - } +// public InMemoryLogger() +// { +// // list of current logs +// _logStore = new List(); +// } +// public InMemoryLogger(IList logStore) +// { +// _logStore = logStore; +// } +// public bool Log(LogEntry entry) +// { +// if (entry is null) +// { +// throw new ArgumentNullException(nameof(entry)); +// } - public bool Log(string description) - { - try - { - // string interpolation to add UTC timestamp to log description - _logStore.Add($"{DateTime.UtcNow}-> {description}"); - return true; - } - catch - { - return false; - } - } - public IList GetAllLogs() - { - return _logStore; - } - } +// try +// { +// // string interpolation to add UTC timestamp to log description +// //_logStore.Add($"{DateTime.UtcNow}-> {description}"); +// return true; +// } +// catch +// { +// return false; +// } +// } +// public IList GetAllLogs() +// { +// return _logStore; +// } -} \ No newline at end of file + +// public override bool Equals(object? obj) +// { +// return obj is InMemoryLogger logger && +// EqualityComparer>.Default.Equals(_logStore, logger._logStore); +// } + +// public override int GetHashCode() +// { +// return HashCode.Combine(_logStore); +// } +// } + +// } \ 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 fb85775..af049d1 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LogEntry.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LogEntry.cs @@ -26,5 +26,29 @@ namespace TeamHobby.HobbyProjectGenerator.Logging public string description { get; init; } public DateTime timestamp { get; init; } + + // Constructor requireing only the description as an arg + // Assigns default values for LogLevel (Info), LogCategory (Server), user ("System"), and the UTC time at initialization for timestamp + public LogEntry(string description) + { + this.level = LogLevel.Info; + this.category = LogCategory.Server; + this.user = "System"; + this.description = description; + this.timestamp = DateTime.UtcNow; + } + // Constructor with args for all fields except timestamp + // timestamp is always set to the UTC time at the time of initialization + public LogEntry(LogLevel level, string user, LogCategory category, string description) + { + this.level = level; + this.category = category; + this.user = user; + this.description = description; + this.timestamp = DateTime.UtcNow; + } + + } } + diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LoggingController.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LoggingManager.cs similarity index 81% rename from Source Code/TeamHobby.HobbyProjectGenerator.Logging/LoggingController.cs rename to Source Code/TeamHobby.HobbyProjectGenerator.Logging/LoggingManager.cs index 09de227..ca367fe 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LoggingController.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LoggingManager.cs @@ -9,23 +9,23 @@ using TeamHobby.HobbyProjectGenerator.Logging.Implementations; namespace TeamHobby.HobbyProjectGenerator.Logging { - internal class LoggingController + internal class LoggingManager { private readonly IDataSource _conn; private readonly ILogger _logger; private readonly ILoggerFactory _factory; - // private readonly LogEntry _logEntry; + private readonly LogEntry _logEntry; // Both Constructors take an IDataSource arg to make logging extensible to future data sources // first constructor has no additional args - defaults to using the DBFactiry implementation - public LoggingController(IDataSource dataSource) + public LoggingManager(IDataSource dataSource) { _conn = dataSource; _factory = new DBLoggerFactory(); _logger = _factory.CreateLogger(); } // second constructor takes an additional ILoggerFactory arg - allows for extensible logger types - public LoggingController(IDataSource dataSource, ILoggerFactory factory) + public LoggingManager(IDataSource dataSource, ILoggerFactory factory) { _conn = dataSource; _factory = factory; @@ -35,7 +35,7 @@ namespace TeamHobby.HobbyProjectGenerator.Logging public void Process() { - _logger.Log(); + _logger.Log(_logEntry); } diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/TeamHobby.HobbyProjectGenerator.Logging.csproj b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/TeamHobby.HobbyProjectGenerator.Logging.csproj index 20a5fff..c9596e5 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/TeamHobby.HobbyProjectGenerator.Logging.csproj +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/TeamHobby.HobbyProjectGenerator.Logging.csproj @@ -4,6 +4,7 @@ net6.0 enable enable + AnyCPU;x86 diff --git a/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln index 3f2c1f0..588b307 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln +++ b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln @@ -26,87 +26,87 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU - Debug|x86 = Debug|x86 + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU Release|Any CPU = Release|Any CPU - Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Debug|x86.ActiveCfg = Debug|Any CPU - {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Debug|x86.Build.0 = Debug|Any CPU + {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Release|Any CPU.Build.0 = Release|Any CPU {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Release|Any CPU.ActiveCfg = Release|Any CPU {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Release|Any CPU.Build.0 = Release|Any CPU - {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Release|x86.ActiveCfg = Release|Any CPU - {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Release|x86.Build.0 = Release|Any CPU {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Debug|x86.ActiveCfg = Debug|Any CPU + {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Release|Any CPU.Build.0 = Release|Any CPU {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Release|Any CPU.Build.0 = Release|Any CPU - {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Release|x86.ActiveCfg = Release|Any CPU - {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Release|x86.Build.0 = Release|Any CPU {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Debug|Any CPU.Build.0 = Debug|Any CPU - {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Debug|x86.ActiveCfg = Debug|Any CPU - {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Debug|x86.Build.0 = Debug|Any CPU + {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Debug|Any CPU.Build.0 = Debug|Any CPU + {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Release|Any CPU.ActiveCfg = Release|Any CPU + {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Release|Any CPU.Build.0 = Release|Any CPU {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Release|Any CPU.ActiveCfg = Release|Any CPU {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Release|Any CPU.Build.0 = Release|Any CPU - {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Release|x86.ActiveCfg = Release|Any CPU - {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Release|x86.Build.0 = Release|Any CPU {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Debug|x86.ActiveCfg = Debug|Any CPU - {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Debug|x86.Build.0 = Debug|Any CPU + {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Release|Any CPU.Build.0 = Release|Any CPU {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Release|Any CPU.ActiveCfg = Release|Any CPU {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Release|Any CPU.Build.0 = Release|Any CPU - {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Release|x86.ActiveCfg = Release|Any CPU - {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Release|x86.Build.0 = Release|Any CPU {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Debug|x86.ActiveCfg = Debug|Any CPU - {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Debug|x86.Build.0 = Debug|Any CPU + {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Release|Any CPU.Build.0 = Release|Any CPU {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Release|Any CPU.ActiveCfg = Release|Any CPU {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Release|Any CPU.Build.0 = Release|Any CPU - {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Release|x86.ActiveCfg = Release|Any CPU - {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Release|x86.Build.0 = Release|Any CPU {ED126EFB-B337-42F9-BE4B-65A5AE90503B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ED126EFB-B337-42F9-BE4B-65A5AE90503B}.Debug|x86.ActiveCfg = Debug|Any CPU + {ED126EFB-B337-42F9-BE4B-65A5AE90503B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ED126EFB-B337-42F9-BE4B-65A5AE90503B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ED126EFB-B337-42F9-BE4B-65A5AE90503B}.Release|Any CPU.Build.0 = Release|Any CPU {ED126EFB-B337-42F9-BE4B-65A5AE90503B}.Release|Any CPU.ActiveCfg = Release|Any CPU {ED126EFB-B337-42F9-BE4B-65A5AE90503B}.Release|Any CPU.Build.0 = Release|Any CPU - {ED126EFB-B337-42F9-BE4B-65A5AE90503B}.Release|x86.ActiveCfg = Release|Any CPU - {ED126EFB-B337-42F9-BE4B-65A5AE90503B}.Release|x86.Build.0 = Release|Any CPU {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Debug|x86.ActiveCfg = Debug|x86 - {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Debug|x86.Build.0 = Debug|x86 + {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Release|Any CPU.Build.0 = Release|Any CPU {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Release|Any CPU.ActiveCfg = Release|Any CPU {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Release|Any CPU.Build.0 = Release|Any CPU - {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Release|x86.ActiveCfg = Release|Any CPU - {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Release|x86.Build.0 = Release|Any CPU {C0494115-838E-43A3-8896-133E5D1E874A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C0494115-838E-43A3-8896-133E5D1E874A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C0494115-838E-43A3-8896-133E5D1E874A}.Debug|x86.ActiveCfg = Debug|Any CPU - {C0494115-838E-43A3-8896-133E5D1E874A}.Debug|x86.Build.0 = Debug|Any CPU + {C0494115-838E-43A3-8896-133E5D1E874A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0494115-838E-43A3-8896-133E5D1E874A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C0494115-838E-43A3-8896-133E5D1E874A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C0494115-838E-43A3-8896-133E5D1E874A}.Release|Any CPU.Build.0 = Release|Any CPU {C0494115-838E-43A3-8896-133E5D1E874A}.Release|Any CPU.ActiveCfg = Release|Any CPU {C0494115-838E-43A3-8896-133E5D1E874A}.Release|Any CPU.Build.0 = Release|Any CPU - {C0494115-838E-43A3-8896-133E5D1E874A}.Release|x86.ActiveCfg = Release|Any CPU - {C0494115-838E-43A3-8896-133E5D1E874A}.Release|x86.Build.0 = Release|Any CPU {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Debug|x86.ActiveCfg = Debug|Any CPU - {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Debug|x86.Build.0 = Debug|Any CPU + {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Release|Any CPU.Build.0 = Release|Any CPU {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Release|Any CPU.ActiveCfg = Release|Any CPU {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Release|Any CPU.Build.0 = Release|Any CPU - {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Release|x86.ActiveCfg = Release|Any CPU - {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Release|x86.Build.0 = Release|Any CPU {CA8D11CF-807C-4C90-A529-0371F73518F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CA8D11CF-807C-4C90-A529-0371F73518F6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CA8D11CF-807C-4C90-A529-0371F73518F6}.Debug|x86.ActiveCfg = Debug|x86 - {CA8D11CF-807C-4C90-A529-0371F73518F6}.Debug|x86.Build.0 = Debug|x86 + {CA8D11CF-807C-4C90-A529-0371F73518F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA8D11CF-807C-4C90-A529-0371F73518F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA8D11CF-807C-4C90-A529-0371F73518F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CA8D11CF-807C-4C90-A529-0371F73518F6}.Release|Any CPU.Build.0 = Release|Any CPU {CA8D11CF-807C-4C90-A529-0371F73518F6}.Release|Any CPU.ActiveCfg = Release|Any CPU {CA8D11CF-807C-4C90-A529-0371F73518F6}.Release|Any CPU.Build.0 = Release|Any CPU - {CA8D11CF-807C-4C90-A529-0371F73518F6}.Release|x86.ActiveCfg = Release|Any CPU - {CA8D11CF-807C-4C90-A529-0371F73518F6}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Source Code/main/Controller.cs b/Source Code/main/Controller.cs index d44e163..557eb25 100644 --- a/Source Code/main/Controller.cs +++ b/Source Code/main/Controller.cs @@ -6,8 +6,10 @@ using TeamHobby.HobbyProjectGenerator.Logging; using TeamHobby.HobbyProjectGenerator.UserManagement; namespace TeamHobby.HobbyProjectGenerator.Main { + public class GetCredentials { + public string? GetUserName() { Console.WriteLine("Please enter a username:"); @@ -24,6 +26,7 @@ namespace TeamHobby.HobbyProjectGenerator.Main } public class Controller { + public static void Main(string[] args) { // Logger log = new Logger(); @@ -31,28 +34,34 @@ namespace TeamHobby.HobbyProjectGenerator.Main //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 - + string dbType = "sql"; RDSFactory factory = new RDSFactory(); // Testing Data Access Layer string dbInfo = "DRIVER={MariaDB ODBC 3.1 Driver};" + - "TCPIP=1;" + - "SERVER=localhost;" + - "DATABASE=hobby;" + - "UID=root;" + - "PASSWORD=Teamhobby;" + - "PORT=3306;"; - IDataSource datasource = dbFactory.getDataSource(dbType, dbInfo); + "TCPIP=1;" + + "SERVER=localhost;" + + "DATABASE=hobby;" + + "UID=root;" + + "PASSWORD=Teamhobby;" + + "PORT=3306;" + + "OPTION=3"; + // IDataSource datasource = factory.getDataSource(dbType, dbInfo); - "OPTION=3"; - IDataSource datasource = factory.getDataSource(dbType, dbInfo);*/ + + IDataSource datasource = factory.getDataSource(dbType, dbInfo); // Create manager class from UserManagement SystemAccountManager manager = new SystemAccountManager(); @@ -190,7 +199,7 @@ namespace TeamHobby.HobbyProjectGenerator.Main break; // Create a new account case 1: - user.newUser(); + user.newUser(); break; // Access Admin features case 2: @@ -232,4 +241,7 @@ namespace TeamHobby.HobbyProjectGenerator.Main } } + } } + + diff --git a/Source Code/main/main.csproj b/Source Code/main/main.csproj index 31ccaf6..6444b61 100644 --- a/Source Code/main/main.csproj +++ b/Source Code/main/main.csproj @@ -5,7 +5,8 @@ net6.0 enable enable - x86 + AnyCPU + AnyCPU From dfb32b0e261d028650e28f6de4b2e9dc778fb4fc Mon Sep 17 00:00:00 2001 From: Lunastra Date: Mon, 13 Dec 2021 20:50:24 -0800 Subject: [PATCH 03/14] Changed Removed Entries to throw an Error Tested the clean up sequence for Manager --- .../ArchivingTests.cs | 95 +++++++++++++------ .../Implementations/SqlDAO.cs | 14 ++- .../TeamHobby.HobbyProjectGenerator.sln | 8 +- Source Code/main/Controller.cs | 1 + 4 files changed, 81 insertions(+), 37 deletions(-) diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.ArchiveTests/ArchivingTests.cs b/Source Code/TeamHobby.HobbyProjectGenerator.ArchiveTests/ArchivingTests.cs index 3d7be64..05a8baa 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.ArchiveTests/ArchivingTests.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.ArchiveTests/ArchivingTests.cs @@ -135,6 +135,68 @@ namespace TeamHobby.HobbyProjectGenerator.ArchiveTests } + // [Test Method] + public void IsProcessFlowCompleted(IDataSource sqlDAO) + { + // Arrange + ArchiveManager archive = new ArchiveManager(sqlDAO); + + // Act + // Testing archive Manager + int i = -10; + while (i < 20) + { + DateTime date1 = new DateTime(2021, 12, 1, 0, 0, 0); + //Console.WriteLine("Testing first of month: {0}", date1.ToString("dd")); + //string currentDate = DateTime.Now.ToString("dd"); + //string currentTime = DateTime.Now.ToString("T"); + string currentTime = "00:00:00 AM"; + string currentDate = i.ToString(); + + if (i == 1) + { + currentDate = date1.ToString("dd"); + //ArchiveManager archive = new ArchiveManager(sqlDAO); + //archive.Controller(); + } + + //Console.WriteLine("Current date: {0}, Current Time: {1}", currentDate, currentTime); + Console.WriteLine("Current date: {0}, Current Time: {1}", currentDate, currentTime); + if (String.Equals(currentDate, "01") && String.Equals(currentTime, "00:00:00 AM")) + { + Console.WriteLine("Archiving process Start"); + //ArchiveManager archive = new ArchiveManager(sqlDAO); + archive.Controller(); + } + + i++; + } + + } + + public void IsCleaningUpCompleted(IDataSource sqlDAO) + { + //Arrange + ArchiveManager archive = new ArchiveManager(sqlDAO); + bool actualVal = false; + bool expectedVal = false; + + // Act + actualVal = archive.Controller(); + + // Assert + //bool result = !(actualVal && expectedVal); + if (expectedVal == actualVal) + { + Console.WriteLine("Expected: {0}, Actual: {1}. Error handle correctly", expectedVal, actualVal); + } + else + { + Console.WriteLine("Expected: {0}, Actual: {1}. Error handle incorrectly", expectedVal, actualVal); + } + + } + public static void Main(string[] args) { string dbInfo = "DRIVER={MariaDB ODBC 3.1 Driver};" + @@ -163,35 +225,12 @@ namespace TeamHobby.HobbyProjectGenerator.ArchiveTests Console.WriteLine("-----------------"); Console.WriteLine(""); - // Testing archive Manager - int i = -10; - while (i < 20) - { - DateTime date1 = new DateTime(2021, 12, 1, 0, 0, 0); - //Console.WriteLine("Testing first of month: {0}", date1.ToString("dd")); - //string currentDate = DateTime.Now.ToString("dd"); - //string currentTime = DateTime.Now.ToString("T"); - string currentTime= "00:00:00 AM"; - string currentDate = i.ToString(); + - if (i == 1) - { - currentDate = date1.ToString("dd"); - //ArchiveManager archive = new ArchiveManager(sqlDAO); - //archive.Controller(); - } - - //Console.WriteLine("Current date: {0}, Current Time: {1}", currentDate, currentTime); - Console.WriteLine("Current date: {0}, Current Time: {1}", currentDate, currentTime); - if (String.Equals(currentDate, "01") && String.Equals(currentTime, "00:00:00 AM")) - { - Console.WriteLine("Archiving process Start"); - ArchiveManager archive = new ArchiveManager(sqlDAO); - archive.Controller(); - } - - i++; - } + // Testing clean up sequence + //test.IsCleaningUpCompleted(sqlDAO); + //Console.WriteLine("-----------------"); + //Console.WriteLine(""); } diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/SqlDAO.cs b/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/SqlDAO.cs index 06b919b..5cf2f70 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/SqlDAO.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/SqlDAO.cs @@ -238,14 +238,12 @@ namespace TeamHobby.HobbyProjectGenerator.DataAccess string sqlCmd = "DELETE FROM log WHERE DATEDIFF(current_timestamp, log.LtimeStamp) > 30"; - try{ - DeleteData(sqlCmd); - return true; - } - catch { - Console.WriteLine("Eeep! an error in Remove Entries, not to worry, will be handled higher up the call stack"); - throw; - } + if (DeleteData(sqlCmd) == false) + { + throw new Exception("Error in removing entries,not to worry, will be handled higher up the call stack"); + }; + + return true; } //public Object ReadPreparedStmt(string table){ diff --git a/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln index bff6309..56de952 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln +++ b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln @@ -17,7 +17,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.Main", "..\TeamHo EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGenerator.DataAccess", "..\TeamHobby.HobbyProjectGenerator.DataAccess\TeamHobby.HobbyProjectGenerator.DataAccess.csproj", "{AA48A66C-FA36-4AF9-A782-CEC22838EB8F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TeamHobby.HobbyProjectGenerator.ArchiveTests", "..\TeamHobby.HobbyProjectGenerator.ArchiveTests\TeamHobby.HobbyProjectGenerator.ArchiveTests.csproj", "{C5EBD1F8-C806-4BF9-B2D7-8876072630FD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGenerator.ArchiveTests", "..\TeamHobby.HobbyProjectGenerator.ArchiveTests\TeamHobby.HobbyProjectGenerator.ArchiveTests.csproj", "{C5EBD1F8-C806-4BF9-B2D7-8876072630FD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTEst1", "..\UnitTEst1\UnitTEst1.csproj", "{139F060F-EE24-4C34-A3AD-148B0C024EF9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -54,6 +56,10 @@ 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 + {139F060F-EE24-4C34-A3AD-148B0C024EF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {139F060F-EE24-4C34-A3AD-148B0C024EF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {139F060F-EE24-4C34-A3AD-148B0C024EF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {139F060F-EE24-4C34-A3AD-148B0C024EF9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Source Code/main/Controller.cs b/Source Code/main/Controller.cs index 73488f2..5f6c8b2 100644 --- a/Source Code/main/Controller.cs +++ b/Source Code/main/Controller.cs @@ -56,6 +56,7 @@ namespace TeamHobby.HobbyProjectGenerator.Main reader = (OdbcDataReader)result; } + // [Logname, loglevel, date, time, ...] Console.WriteLine("Reading from the database"); while (reader.Read()) From cdba27ee1297fcc28fa0a8b70320d11d117d614d Mon Sep 17 00:00:00 2001 From: Lunastra Date: Mon, 13 Dec 2021 20:52:58 -0800 Subject: [PATCH 04/14] Delete a blank space --- .../ArchivingTests.cs | 2 +- .../TeamHobby.HobbyProjectGenerator.sln | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.ArchiveTests/ArchivingTests.cs b/Source Code/TeamHobby.HobbyProjectGenerator.ArchiveTests/ArchivingTests.cs index 05a8baa..7da2223 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.ArchiveTests/ArchivingTests.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.ArchiveTests/ArchivingTests.cs @@ -225,7 +225,7 @@ namespace TeamHobby.HobbyProjectGenerator.ArchiveTests Console.WriteLine("-----------------"); Console.WriteLine(""); - + // Testing clean up sequence //test.IsCleaningUpCompleted(sqlDAO); diff --git a/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln index 56de952..ac07ef1 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln +++ b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln @@ -19,8 +19,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGener EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGenerator.ArchiveTests", "..\TeamHobby.HobbyProjectGenerator.ArchiveTests\TeamHobby.HobbyProjectGenerator.ArchiveTests.csproj", "{C5EBD1F8-C806-4BF9-B2D7-8876072630FD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTEst1", "..\UnitTEst1\UnitTEst1.csproj", "{139F060F-EE24-4C34-A3AD-148B0C024EF9}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -56,10 +54,6 @@ 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 - {139F060F-EE24-4C34-A3AD-148B0C024EF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {139F060F-EE24-4C34-A3AD-148B0C024EF9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {139F060F-EE24-4C34-A3AD-148B0C024EF9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {139F060F-EE24-4C34-A3AD-148B0C024EF9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 6f9c6f0f12ed7d62ba3da58ab8126feb46e40e18 Mon Sep 17 00:00:00 2001 From: Im_Alpha Date: Mon, 13 Dec 2021 21:48:46 -0800 Subject: [PATCH 05/14] removed roleID --- src/dbCode/UserManagementDDL.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/src/dbCode/UserManagementDDL.txt b/src/dbCode/UserManagementDDL.txt index 25da27a..c4d451b 100644 --- a/src/dbCode/UserManagementDDL.txt +++ b/src/dbCode/UserManagementDDL.txt @@ -1,6 +1,5 @@ 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, From a4a133b0cd299aa6fe725f6797b939405e3d4a7c Mon Sep 17 00:00:00 2001 From: Im_Alpha Date: Mon, 13 Dec 2021 23:28:47 -0800 Subject: [PATCH 06/14] Menu completed Commented out database connecting lines and added successful login in instead. --- .../Implementations/SqlDAO.cs | 4 +- .../Implementations/UiPrint.cs | 3 +- .../SystemAccountManager.cs | 5 +- Source Code/main/Controller.cs | 85 ++++++++++--------- 4 files changed, 52 insertions(+), 45 deletions(-) diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/SqlDAO.cs b/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/SqlDAO.cs index 7a14a05..d7bf3e1 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..e94b6be 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/UiPrint.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/UiPrint.cs @@ -17,7 +17,8 @@ namespace TeamHobby.HobbyProjectGenerator.DataAccess { // 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; diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs index 954d9fa..a159178 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs @@ -175,6 +175,7 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement if (checkSql == "Admin") { + Console.WriteLine("-- Logged in successfully."); return true; } else @@ -218,7 +219,6 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement // Exit menu case 0: return "Exiting UserManagement.\n"; - break; // Create account case 1: UserAccount newUser = new UserAccount(newCredentials.GetUserName(), @@ -266,8 +266,7 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement case 7: break; default: - Console.WriteLine("Invalid input.\nPlease enter a valid option.\n" + - "------------------------------------\n\n"); + Console.WriteLine("Invalid input.\nPlease enter a valid option.\n"); break; } } diff --git a/Source Code/main/Controller.cs b/Source Code/main/Controller.cs index 47ae7e5..da78001 100644 --- a/Source Code/main/Controller.cs +++ b/Source Code/main/Controller.cs @@ -33,51 +33,58 @@ 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(); - // Admin login - GetCredentials credentials = new GetCredentials(); - string? username = credentials.GetUserName(); - string? password = credentials.GetPassword(); + // Loop login terminal + bool mainMenu = true; + + // Loop Admin login + while (mainMenu is true) + { + // Admin Sign in + GetCredentials credentials = new GetCredentials(); + Console.WriteLine("\nPlease Enter Admin Credentials.\n"); + string? username = credentials.GetUserName(); + string? password = credentials.GetPassword(); + + // Get time of login attempt + DateTime TimeStamp = DateTime.UtcNow; + + // String for checking query return type + string dbType = "sql"; + // Creating the Factory class + 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 = dbFactory.getDataSource(dbType, dbInfo); + // Create manager class from UserManagement + SystemAccountManager manager = new SystemAccountManager(); + + // Create UserAccount class + UserAccount user = new UserAccount(username, password, TimeStamp); + + string isLogin = manager.CreateUserRecord(user, datasource); - //Console.WriteLine(value: $"username is {username}\npassword is {password}"); - - // Creating the Factory class - // Creating the Factory class - - 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 = 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)); - + if (isLogin != "Access Denied: Unauthorized\n") + { + mainMenu = false; + } + else + { + Console.WriteLine("******Access Denied: Unauthorized******"); + } + + } //Console.WriteLine(value: $"Welcome {username}\n"); /* string sqlQuery = "Select * from log;"; From 484c725ba8279478733b73ee77b3ff087e37dad2 Mon Sep 17 00:00:00 2001 From: Im_Alpha Date: Tue, 14 Dec 2021 00:23:52 -0800 Subject: [PATCH 07/14] Infinite menu completed both main menu and sub menu will run forever unless user enters a specified input --- .../SystemAccountManager.cs | 8 ++- .../TeamHobby.HobbyProjectGenerator.sln | 22 ++++---- Source Code/main/Controller.cs | 14 +++++- Source Code/main/SqlDAO.cs | 50 ------------------- Source Code/main/main.csproj | 1 - 5 files changed, 25 insertions(+), 70 deletions(-) delete mode 100644 Source Code/main/SqlDAO.cs diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs index a159178..e1129a2 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs @@ -218,7 +218,7 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement { // Exit menu case 0: - return "Exiting UserManagement.\n"; + return "Back to Login"; // Create account case 1: UserAccount newUser = new UserAccount(newCredentials.GetUserName(), @@ -227,7 +227,7 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement bool accountValid = accountService.CreateUserRecord(newUser,user.username, dbSource); if (accountValid is true) { - Console.WriteLine("Account created Successfully"); + Console.WriteLine("\nAccount created Successfully"); break; } else @@ -270,9 +270,7 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement break; } } - - string dbAction = user.username; - return dbAction; + return "Back to Login"; } } } diff --git a/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln index b7c8ff3..8e45f2d 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln +++ b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln @@ -4,8 +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}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGenerator.Models", "..\TeamHobby.HobbyProjectGenerator.Models\TeamHobby.HobbyProjectGenerator.Models.csproj", "{75DED6C2-D404-4E71-A58B-0F616DB5C062}" + 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}") = "main", "..\main\main.csproj", "{30C7EBF3-3957-46E5-86C1-C13356841ECA}" EndProject @@ -23,7 +25,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGener EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGenerator.ArchiveTests", "..\TeamHobby.HobbyProjectGenerator.ArchiveTests\TeamHobby.HobbyProjectGenerator.ArchiveTests.csproj", "{C5EBD1F8-C806-4BF9-B2D7-8876072630FD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TeamHobby.UserManagement.xTests", "TeamHobby.UserManagement.xTests\TeamHobby.UserManagement.xTests.csproj", "{6D575AF1-C138-44C5-B701-5AEC4ACEAA7A}" +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 @@ -39,14 +46,6 @@ Global {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Release|Any CPU.Build.0 = Release|Any CPU {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Release|x86.ActiveCfg = Release|Any CPU {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Release|x86.Build.0 = Release|Any CPU - {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Debug|Any CPU.Build.0 = Debug|Any CPU - {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Debug|x86.ActiveCfg = Debug|Any CPU - {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Debug|x86.Build.0 = Debug|Any CPU - {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Release|Any CPU.ActiveCfg = Release|Any CPU - {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Release|Any CPU.Build.0 = Release|Any CPU - {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Release|x86.ActiveCfg = Release|Any CPU - {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Release|x86.Build.0 = Release|Any CPU {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Debug|Any CPU.Build.0 = Debug|Any CPU {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Debug|x86.ActiveCfg = Debug|Any CPU @@ -107,7 +106,6 @@ Global {C5EBD1F8-C806-4BF9-B2D7-8876072630FD}.Release|x86.ActiveCfg = Release|Any CPU {C5EBD1F8-C806-4BF9-B2D7-8876072630FD}.Release|x86.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}.Debug|x86.ActiveCfg = Debug|Any CPU {6D575AF1-C138-44C5-B701-5AEC4ACEAA7A}.Debug|x86.Build.0 = Debug|Any CPU {6D575AF1-C138-44C5-B701-5AEC4ACEAA7A}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/Source Code/main/Controller.cs b/Source Code/main/Controller.cs index da78001..f65ab47 100644 --- a/Source Code/main/Controller.cs +++ b/Source Code/main/Controller.cs @@ -45,12 +45,21 @@ namespace TeamHobby.HobbyProjectGenerator.Main { // Admin Sign in GetCredentials credentials = new GetCredentials(); - Console.WriteLine("\nPlease Enter Admin Credentials.\n"); + 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(); // Get time of login attempt DateTime TimeStamp = DateTime.UtcNow; + + // String for checking query return type string dbType = "sql"; @@ -77,7 +86,8 @@ namespace TeamHobby.HobbyProjectGenerator.Main if (isLogin != "Access Denied: Unauthorized\n") { - mainMenu = false; + Console.WriteLine("Returning to login...\n"); + Console.WriteLine("-------------------------------------\n"); } else { 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 18aba0a..9c91e92 100644 --- a/Source Code/main/main.csproj +++ b/Source Code/main/main.csproj @@ -16,7 +16,6 @@ - From 53aaf77c6bf6fabf83bba7acf1bc493a49c291cb Mon Sep 17 00:00:00 2001 From: Im_Alpha Date: Tue, 14 Dec 2021 02:01:28 -0800 Subject: [PATCH 08/14] 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 From cc71d41cca6b4d0e9607ab5fbac79177d7c71196 Mon Sep 17 00:00:00 2001 From: Im_Alpha Date: Tue, 14 Dec 2021 02:02:56 -0800 Subject: [PATCH 09/14] reworded for easier implementation --- .../Implementations/UiPrint.cs | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/UiPrint.cs b/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/UiPrint.cs index e94b6be..6d06cb8 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/UiPrint.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Implementations/UiPrint.cs @@ -4,15 +4,6 @@ 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 @@ -32,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"); } } } From 75753547974c4131ee0c626a5fe5770c0ae0e3cd Mon Sep 17 00:00:00 2001 From: Im_Alpha Date: Tue, 14 Dec 2021 02:12:24 -0800 Subject: [PATCH 10/14] Added confirmation password loop removed commented code and unused files --- .../SystemAccountManager.cs | 3 +- .../UserAccount.cs | 25 +++- Source Code/main/Controller.cs | 93 +----------- Source Code/main/MainMenu.cs | 134 ------------------ 4 files changed, 23 insertions(+), 232 deletions(-) delete mode 100644 Source Code/main/MainMenu.cs diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs index d124ccb..e8eb903 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs @@ -221,8 +221,9 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement 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); bool accountValid = accountService.CreateUserRecord(newUser, user.username, dbSource); if (accountValid is true) diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs index a40deef..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:"); diff --git a/Source Code/main/Controller.cs b/Source Code/main/Controller.cs index 97bcb58..1d33e85 100644 --- a/Source Code/main/Controller.cs +++ b/Source Code/main/Controller.cs @@ -5,22 +5,7 @@ using TeamHobby.HobbyProjectGenerator.DataAccess; 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 { public static void Main(string[] args) @@ -156,82 +141,6 @@ 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; - }; - }*/ - - //} - } -} From ba6db79f09a22c442d77b6d30cb0edfd98c910eb Mon Sep 17 00:00:00 2001 From: Im_Alpha Date: Tue, 14 Dec 2021 02:16:21 -0800 Subject: [PATCH 11/14] removed unused files --- .../Class1.cs | 7 - .../Credentials.cs | 10 -- .../TeamHobby.HobbyProjectGenerator.sln | 64 +-------- Source Code/main/MainMenu.cs | 134 ------------------ Source Code/main/SqlDAO.cs | 50 ------- 5 files changed, 4 insertions(+), 261 deletions(-) delete mode 100644 Source Code/TeamHobby.HobbyProjectGenerator.DataAccess/Class1.cs delete mode 100644 Source Code/TeamHobby.HobbyProjectGenerator.Models/Credentials.cs delete mode 100644 Source Code/main/MainMenu.cs delete mode 100644 Source Code/main/SqlDAO.cs 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.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/TeamHobby.HobbyProjectGenerator.sln b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln index dafe8e1..c386760 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln +++ b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln @@ -3,110 +3,54 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 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}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGenerator.Models", "..\TeamHobby.HobbyProjectGenerator.Models\TeamHobby.HobbyProjectGenerator.Models.csproj", "{75DED6C2-D404-4E71-A58B-0F616DB5C062}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "main", "..\main\main.csproj", "{30C7EBF3-3957-46E5-86C1-C13356841ECA}" 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}" -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TeamHobby.HobbyProjectGenerator.ArchiveTests", "..\TeamHobby.HobbyProjectGenerator.ArchiveTests\TeamHobby.HobbyProjectGenerator.ArchiveTests.csproj", "{C5EBD1F8-C806-4BF9-B2D7-8876072630FD}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGenerator.ArchiveTests", "..\TeamHobby.HobbyProjectGenerator.ArchiveTests\TeamHobby.HobbyProjectGenerator.ArchiveTests.csproj", "{C5EBD1F8-C806-4BF9-B2D7-8876072630FD}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Release|Any CPU.Build.0 = Release|Any CPU - {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C75B6909-FD9E-4382-94B6-7CA2CE371C9A}.Release|Any CPU.Build.0 = Release|Any CPU - {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Release|Any CPU.Build.0 = Release|Any CPU - {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Release|Any CPU.Build.0 = Release|Any CPU - {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Debug|Any CPU.Build.0 = Debug|Any CPU {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Debug|Any CPU.Build.0 = Debug|Any CPU {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Release|Any CPU.ActiveCfg = Release|Any CPU {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Release|Any CPU.Build.0 = Release|Any CPU - {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Release|Any CPU.ActiveCfg = Release|Any CPU - {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Release|Any CPU.Build.0 = Release|Any CPU - {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Debug|Any CPU.Build.0 = Debug|Any CPU {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Debug|Any CPU.Build.0 = Debug|Any CPU {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Release|Any CPU.ActiveCfg = Release|Any CPU {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Release|Any CPU.Build.0 = Release|Any CPU - {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Release|Any CPU.Build.0 = Release|Any CPU - {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Debug|Any CPU.Build.0 = Debug|Any CPU {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Debug|Any CPU.Build.0 = Debug|Any CPU {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Release|Any CPU.ActiveCfg = Release|Any CPU {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Release|Any CPU.Build.0 = Release|Any CPU - {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Release|Any CPU.Build.0 = Release|Any CPU - {ED126EFB-B337-42F9-BE4B-65A5AE90503B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ED126EFB-B337-42F9-BE4B-65A5AE90503B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ED126EFB-B337-42F9-BE4B-65A5AE90503B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ED126EFB-B337-42F9-BE4B-65A5AE90503B}.Release|Any CPU.Build.0 = Release|Any CPU - {ED126EFB-B337-42F9-BE4B-65A5AE90503B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ED126EFB-B337-42F9-BE4B-65A5AE90503B}.Release|Any CPU.Build.0 = Release|Any CPU - {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Debug|Any CPU.Build.0 = Debug|Any CPU {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Debug|Any CPU.Build.0 = Debug|Any CPU {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Release|Any CPU.ActiveCfg = Release|Any CPU {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Release|Any CPU.Build.0 = Release|Any CPU - {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Release|Any CPU.Build.0 = Release|Any CPU - {C0494115-838E-43A3-8896-133E5D1E874A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C0494115-838E-43A3-8896-133E5D1E874A}.Debug|Any CPU.Build.0 = Debug|Any CPU {C0494115-838E-43A3-8896-133E5D1E874A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C0494115-838E-43A3-8896-133E5D1E874A}.Debug|Any CPU.Build.0 = Debug|Any CPU {C0494115-838E-43A3-8896-133E5D1E874A}.Release|Any CPU.ActiveCfg = Release|Any CPU {C0494115-838E-43A3-8896-133E5D1E874A}.Release|Any CPU.Build.0 = Release|Any CPU - {C0494115-838E-43A3-8896-133E5D1E874A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C0494115-838E-43A3-8896-133E5D1E874A}.Release|Any CPU.Build.0 = Release|Any CPU - {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Debug|Any CPU.Build.0 = Debug|Any CPU {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Debug|Any CPU.Build.0 = Debug|Any CPU {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Release|Any CPU.ActiveCfg = Release|Any CPU {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Release|Any CPU.Build.0 = Release|Any CPU - {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Release|Any CPU.Build.0 = Release|Any CPU - {CA8D11CF-807C-4C90-A529-0371F73518F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CA8D11CF-807C-4C90-A529-0371F73518F6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CA8D11CF-807C-4C90-A529-0371F73518F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CA8D11CF-807C-4C90-A529-0371F73518F6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CA8D11CF-807C-4C90-A529-0371F73518F6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CA8D11CF-807C-4C90-A529-0371F73518F6}.Release|Any CPU.Build.0 = Release|Any CPU - {CA8D11CF-807C-4C90-A529-0371F73518F6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CA8D11CF-807C-4C90-A529-0371F73518F6}.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}.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 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = 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 - }*/ - - } - } - } -} From 084e0de6ec2cd73d19bea3981c892a1a693a7cd1 Mon Sep 17 00:00:00 2001 From: Im_Alpha Date: Tue, 14 Dec 2021 02:23:11 -0800 Subject: [PATCH 12/14] changed everything so that the branch is running again --- .../TeamHobby.HobbyProjectGenerator.sln | 28 ++----------------- Source Code/main/Controller.cs | 2 +- Source Code/main/main.csproj | 1 - 3 files changed, 3 insertions(+), 28 deletions(-) diff --git a/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln index 7868d26..60e405e 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln +++ b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln @@ -8,6 +8,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.UserManagement.Te {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 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "main", "..\main\main.csproj", "{30C7EBF3-3957-46E5-86C1-C13356841ECA}" @@ -16,12 +17,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGener 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}" @@ -30,7 +27,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution ProjectSection(SolutionItems) = preProject TeamHobby.HobbyProjectGenerator.csproj = TeamHobby.HobbyProjectGenerator.csproj EndProjectSection -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamHobby.HobbyProjectGenerator.ArchiveTests", "..\TeamHobby.HobbyProjectGenerator.ArchiveTests\TeamHobby.HobbyProjectGenerator.ArchiveTests.csproj", "{C5EBD1F8-C806-4BF9-B2D7-8876072630FD}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -39,13 +35,9 @@ Global EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Debug|x86.ActiveCfg = Debug|Any CPU {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Release|Any CPU.Build.0 = Release|Any CPU - {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Release|x86.ActiveCfg = Release|Any CPU - {5C5A44B4-EC3C-44F2-8F39-F917F8ED932F}.Release|x86.Build.0 = Release|Any CPU {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Debug|Any CPU.Build.0 = Debug|Any CPU {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Release|Any CPU.ActiveCfg = Release|Any CPU {75DED6C2-D404-4E71-A58B-0F616DB5C062}.Release|Any CPU.Build.0 = Release|Any CPU {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -53,39 +45,23 @@ Global {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Release|Any CPU.ActiveCfg = Release|Any CPU {30C7EBF3-3957-46E5-86C1-C13356841ECA}.Release|Any CPU.Build.0 = Release|Any CPU {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Debug|x86.ActiveCfg = Debug|Any CPU - {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Debug|x86.Build.0 = Debug|Any CPU - {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Debug|Any CPU.Build.0 = Debug|Any CPU {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Release|Any CPU.ActiveCfg = Release|Any CPU {B88ED0D9-72E2-4245-BD8F-856FF42E500C}.Release|Any CPU.Build.0 = Release|Any CPU {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Debug|Any CPU.Build.0 = Debug|Any CPU {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Release|Any CPU.ActiveCfg = Release|Any CPU {AA48A66C-FA36-4AF9-A782-CEC22838EB8F}.Release|Any CPU.Build.0 = Release|Any CPU - {C0494115-838E-43A3-8896-133E5D1E874A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C0494115-838E-43A3-8896-133E5D1E874A}.Debug|x86.ActiveCfg = Debug|Any CPU - {C0494115-838E-43A3-8896-133E5D1E874A}.Debug|x86.Build.0 = Debug|Any CPU - {C0494115-838E-43A3-8896-133E5D1E874A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C0494115-838E-43A3-8896-133E5D1E874A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C0494115-838E-43A3-8896-133E5D1E874A}.Release|Any CPU.Build.0 = Release|Any CPU {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Debug|Any CPU.Build.0 = Debug|Any CPU {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.Release|Any CPU.ActiveCfg = Release|Any CPU {2E7193B8-86B6-48DA-9671-CD84615A5F5D}.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}.Debug|x86.ActiveCfg = Debug|Any CPU - {C5EBD1F8-C806-4BF9-B2D7-8876072630FD}.Debug|x86.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}.Release|x86.ActiveCfg = Release|Any CPU - {C5EBD1F8-C806-4BF9-B2D7-8876072630FD}.Release|x86.Build.0 = Release|Any CPU {6D575AF1-C138-44C5-B701-5AEC4ACEAA7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6D575AF1-C138-44C5-B701-5AEC4ACEAA7A}.Debug|x86.ActiveCfg = Debug|Any CPU - {6D575AF1-C138-44C5-B701-5AEC4ACEAA7A}.Debug|x86.Build.0 = 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 - {6D575AF1-C138-44C5-B701-5AEC4ACEAA7A}.Release|x86.ActiveCfg = Release|Any CPU - {6D575AF1-C138-44C5-B701-5AEC4ACEAA7A}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Source Code/main/Controller.cs b/Source Code/main/Controller.cs index 06cf78c..444e89f 100644 --- a/Source Code/main/Controller.cs +++ b/Source Code/main/Controller.cs @@ -144,7 +144,7 @@ namespace TeamHobby.HobbyProjectGenerator.Main //Console.WriteLine("Writing completed. "); } } - } } + diff --git a/Source Code/main/main.csproj b/Source Code/main/main.csproj index 73a9e47..6236e85 100644 --- a/Source Code/main/main.csproj +++ b/Source Code/main/main.csproj @@ -16,7 +16,6 @@ - From bca0875ec7267ecc49203441c6daea7f590f956a Mon Sep 17 00:00:00 2001 From: Im_Alpha Date: Tue, 14 Dec 2021 02:54:23 -0800 Subject: [PATCH 13/14] rechecked DDL for full DB --- Source Code/main/Controller.cs | 34 ++++++++-------- src/dbCode/UserManagementDDL.txt | 2 +- src/dbCode/fullDDL.txt | 66 ++++++++++++++------------------ 3 files changed, 46 insertions(+), 56 deletions(-) diff --git a/Source Code/main/Controller.cs b/Source Code/main/Controller.cs index 444e89f..d4dcfd0 100644 --- a/Source Code/main/Controller.cs +++ b/Source Code/main/Controller.cs @@ -29,6 +29,7 @@ namespace TeamHobby.HobbyProjectGenerator.Main // Loop Admin login while (mainMenu is true) { + // Admin Sign in GetCredentials credentials = new GetCredentials(); Console.WriteLine("\nPlease Enter Admin Credentials " + @@ -61,6 +62,21 @@ namespace TeamHobby.HobbyProjectGenerator.Main "PASSWORD=Teamhobby;" + "OPTION=3"; IDataSource datasource = dbFactory.getDataSource(dbType, dbInfo); + + // 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"); + //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(); @@ -82,22 +98,6 @@ namespace TeamHobby.HobbyProjectGenerator.Main } - /* // 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"); - 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(); - } - //}*/ - - - //Creating the folder Archive //Console.WriteLine("Creating a new folder ..."); //archive.CreateArchiveFolder(); @@ -127,8 +127,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');"; diff --git a/src/dbCode/UserManagementDDL.txt b/src/dbCode/UserManagementDDL.txt index c4d451b..d8775ac 100644 --- a/src/dbCode/UserManagementDDL.txt +++ b/src/dbCode/UserManagementDDL.txt @@ -34,4 +34,4 @@ INSERT INTO hobby.users (UserName, Password, Role, IsActive, CreatedBy, CreatedD 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'; From 510ea554213f07555f53db171c41678de898d25f Mon Sep 17 00:00:00 2001 From: Im_Alpha Date: Tue, 14 Dec 2021 02:57:01 -0800 Subject: [PATCH 14/14] changed return strings to match design diagram --- .../SystemAccountManager.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs index e8eb903..49b0e48 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs @@ -286,7 +286,7 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement } else { - return "Database Timed out"; + return "User does not exist"; } break; // Enable account @@ -301,7 +301,7 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement } else { - return "Database Timed out"; + return "User does not exist"; } break; // View logs