diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILogger.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILogger.cs new file mode 100644 index 0000000..75e8078 --- /dev/null +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILogger.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace TeamHobby.HobbyProjectGenerator.Logging +{ + public interface ILogger + { + bool Log(LogEntry log); + + IList GetAllLogs(); + + } +} diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILoggerFactory.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILoggerFactory.cs new file mode 100644 index 0000000..6de5ce3 --- /dev/null +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Contracts/ILoggerFactory.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace TeamHobby.HobbyProjectGenerator.Logging.Contracts +{ + public interface ILoggerFactory + { + ILogger CreateLogger() + { + } + } +} diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/ConsoleLogger.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/ConsoleLogger.cs new file mode 100644 index 0000000..28195f5 --- /dev/null +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/ConsoleLogger.cs @@ -0,0 +1,21 @@ +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(); + } + } +} diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/DBLogger.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/DBLogger.cs new file mode 100644 index 0000000..132ee82 --- /dev/null +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/DBLogger.cs @@ -0,0 +1,24 @@ +using System; + +namespace TeamHobby.HobbyProjectGenerator.Logging +{ + public class DBLogger : ILogger + { + public DBLogger() + { + } + + public IList GetAllLogs() + { + throw new NotImplementedException(); + } + + public bool Log(LogEntry log) + { + throw new NotImplementedException(); + } + + + } + +} \ No newline at end of file diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/DBLoggerFactory.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/DBLoggerFactory.cs new file mode 100644 index 0000000..f790cbb --- /dev/null +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/DBLoggerFactory.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TeamHobby.HobbyProjectGenerator.Logging.Contracts; + +namespace TeamHobby.HobbyProjectGenerator.Logging.Implementations +{ + public class DBLoggerFactory : ILoggerFactory + { + public DBLoggerFactory() + { + } + public ILogger CreateLogger() + { + return new DBLogger(); + } + } +} diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/FileLogger.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/FileLogger.cs new file mode 100644 index 0000000..1ca93a8 --- /dev/null +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/FileLogger.cs @@ -0,0 +1,18 @@ +using System; + +namespace TeamHobby.HobbyProjectGenerator.Logging +{ + public class FileLogger : ILogger + { + public IList GetAllLogs() + { + throw new NotImplementedException(); + } + + public bool Log(string description) + { + 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 new file mode 100644 index 0000000..80dacb7 --- /dev/null +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Implementations/InMemoryLogger.cs @@ -0,0 +1,38 @@ +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 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; + } + } + +} \ No newline at end of file diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LogEntry.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LogEntry.cs new file mode 100644 index 0000000..fb85775 --- /dev/null +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LogEntry.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace TeamHobby.HobbyProjectGenerator.Logging +{ + public enum LogLevel + { + Info, Debug, Warning, Error + } + + public enum LogCategory + { + View, Business, Server, Data, Datastore + } + + // LogEntry is a record type with init properties for each field + // ensures that log entries are immutable after initialization + public record LogEntry + { + public LogLevel level { get; init; } + public LogCategory category { get; init; } + public string user { get; init; } + public string description { get; init; } + public DateTime timestamp { get; init; } + + } +} diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Logger.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Logger.cs deleted file mode 100644 index 7e284aa..0000000 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/Logger.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -namespace TeamHobby.HobbyProjectGenerator.Logging -{ - public class Logger - { - public static void PrintTest() - { - Console.WriteLine("testing"); - - } - - } - -} \ No newline at end of file diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LoggingController.cs b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LoggingController.cs new file mode 100644 index 0000000..09de227 --- /dev/null +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/LoggingController.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TeamHobby.HobbyProjectGenerator.DataAccess; +using TeamHobby.HobbyProjectGenerator.Logging.Contracts; +using TeamHobby.HobbyProjectGenerator.Logging.Implementations; + +namespace TeamHobby.HobbyProjectGenerator.Logging +{ + internal class LoggingController + { + private readonly IDataSource _conn; + private readonly ILogger _logger; + private readonly ILoggerFactory _factory; + // 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) + { + _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) + { + _conn = dataSource; + _factory = factory; + _logger = _factory.CreateLogger(); + + } + + public void Process() + { + _logger.Log(); + } + + + + } +} diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/TeamHobby - Backup.HobbyProjectGenerator.Logging.csproj b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/TeamHobby - Backup.HobbyProjectGenerator.Logging.csproj new file mode 100644 index 0000000..97db0f1 --- /dev/null +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/TeamHobby - Backup.HobbyProjectGenerator.Logging.csproj @@ -0,0 +1,20 @@ + + + + net6.0 + enable + enable + Library + AnyCPU + AnyCPU;x86 + + + + True + + + + True + + + diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/TeamHobby.HobbyProjectGenerator.Logging.csproj b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/TeamHobby.HobbyProjectGenerator.Logging.csproj index 132c02c..20a5fff 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.Logging/TeamHobby.HobbyProjectGenerator.Logging.csproj +++ b/Source Code/TeamHobby.HobbyProjectGenerator.Logging/TeamHobby.HobbyProjectGenerator.Logging.csproj @@ -1,4 +1,4 @@ - + net6.0 @@ -6,4 +6,9 @@ enable + + + + + diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs index 9cb4617..1939d51 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/SystemAccountManager.cs @@ -13,7 +13,7 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement public string IsInputValid(string checkUN, string checkPWD) { // Create bool variables to check if username and password are valid - bool ValidUN = checkUN.All(un=>Char.IsLetterOrDigit(un) || un=='@' + bool ValidUN = checkUN.All(un => Char.IsLetterOrDigit(un) || un == '@' || un == '.' || un == ',' || un == '!'); bool ValidPwd = checkPWD.All(Char.IsLetterOrDigit); @@ -34,7 +34,7 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement return "Invalid Password\n"; } else if (checkUN.Length <= 15 && checkUN.Length > 0 - || ValidUN is true && checkPWD.Length <= 18 + || ValidUN is true && checkPWD.Length <= 18 && checkPWD.Length > 0 || ValidPwd is true) { return "Username and password is valid.\n"; @@ -105,22 +105,22 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement { }*/ - /*conPsswrd = false; - } - else - { - Console.WriteLine("Passwords did not match, please try again."); - } - } - return true; - }*/ - + /*conPsswrd = false; + } + else + { + Console.WriteLine("Passwords did not match, please try again."); + } +} +return true; +}*/ + public void AccountController() { // Create objects //UserAccount user = new UserAccount(); UiPrint ui = new UiPrint(); - + bool foo = true; while (foo == true) diff --git a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs index 687f7ec..f4d4a8f 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator.UserManagement/UserAccount.cs @@ -19,7 +19,7 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement Password = pwd; Time = TimeStamp; } - public string username { get { return UserName; } } + public string username { get { return UserName; } } public string password { get { return Password; } } // New User Credentials @@ -37,6 +37,6 @@ namespace TeamHobby.HobbyProjectGenerator.UserManagement public string NewUserName { get { return newusername; } } public string NewPassword { get { return newpassword; } } public string NewEmail { get { return newemail; } } - public DateTime Newtime { get { return newtime;} } + public DateTime Newtime { get { return newtime; } } } } diff --git a/Source Code/TeamHobby.HobbyProjectGenerator/Implementations/InMemoryUserService.cs b/Source Code/TeamHobby.HobbyProjectGenerator/Implementations/InMemoryUserService.cs index db60f66..93fd0a5 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator/Implementations/InMemoryUserService.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator/Implementations/InMemoryUserService.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; namespace TeamHobby.HobbyProjectGenerator.Implementations { - public class InMemoryUserService + public class InMemoryUserService { // Make it readonly so it can't be changed private readonly IList _logstore; diff --git a/Source Code/TeamHobby.HobbyProjectGenerator/Implementations/User_Authentication.cs b/Source Code/TeamHobby.HobbyProjectGenerator/Implementations/User_Authentication.cs index c92ae09..d123ab6 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator/Implementations/User_Authentication.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator/Implementations/User_Authentication.cs @@ -1,6 +1,6 @@ namespace TeamHobby.HobbyProjectGenerator { - public class User_Authentication + public class User_Authentication { public IList GetAllUsers() { diff --git a/Source Code/TeamHobby.HobbyProjectGenerator/Implementations/User_Manager.cs b/Source Code/TeamHobby.HobbyProjectGenerator/Implementations/User_Manager.cs index 3d463a9..c4c5619 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator/Implementations/User_Manager.cs +++ b/Source Code/TeamHobby.HobbyProjectGenerator/Implementations/User_Manager.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; namespace TeamHobby.HobbyProjectGenerator.Implementations { - public class User_Manager + public class User_Manager { public IList GetAllUsers() { diff --git a/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln index ebdf186..3f2c1f0 100644 --- a/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln +++ b/Source Code/TeamHobby.HobbyProjectGenerator/TeamHobby.HobbyProjectGenerator.sln @@ -17,49 +17,96 @@ 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.Logging", "..\TeamHobby.HobbyProjectGenerator.Logging\TeamHobby.HobbyProjectGenerator.Logging.csproj", "{C0494115-838E-43A3-8896-133E5D1E874A}" +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 Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 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}.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}.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}.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}.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}.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}.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}.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}.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}.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}.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/TeamHobby.Main/HobbyMain.cs b/Source Code/TeamHobby.Main/HobbyMain.cs index c293745..58e9b09 100644 --- a/Source Code/TeamHobby.Main/HobbyMain.cs +++ b/Source Code/TeamHobby.Main/HobbyMain.cs @@ -128,7 +128,7 @@ public class HobbyMain Console.WriteLine("Read 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]); + Console.WriteLine("Date={0} {1} {2} {3} {4} {5}", reader[0], reader[1], reader[2], reader[3], reader[4], reader[5]); //Console.WriteLine("Col A: {0} ", reader[0]); //Console.WriteLine("Column: " + reader.FieldCount); //Console.WriteLine("Column={1}", reader[1]); diff --git a/Source Code/TeamHobby.Main/MasterController.cs b/Source Code/TeamHobby.Main/MasterController.cs index be53071..838f386 100644 --- a/Source Code/TeamHobby.Main/MasterController.cs +++ b/Source Code/TeamHobby.Main/MasterController.cs @@ -1,7 +1,9 @@ -public class MasterController{ - - public static void main(string[] args){ +public class MasterController +{ + + public static void main(string[] args) + { //The main Controller of the program, It will run all services here @@ -13,12 +15,14 @@ public class MasterController{ int userInput = 0; - while (userInput != -1) { + while (userInput != -1) + { // Print the menu // - if (userInput == 1){ + if (userInput == 1) + { // 1. User Managment goes here } diff --git a/doc/LowLevel/Logging/LogToFile_Sequence.svg b/doc/LowLevel/Logging/LogToFile_Sequence.svg deleted file mode 100644 index 0796128..0000000 --- a/doc/LowLevel/Logging/LogToFile_Sequence.svg +++ /dev/null @@ -1 +0,0 @@ -title%20Log%20Event%20to%20File%20%0A%0Aparticipant%20Controller.cs%20%23lightgreen%0Aparticipant%20LoggingManager%20%23ffffe0%0Aparticipant%20LogEntry%20%23cbc3e3%0Aparticipant%20FileLoggerFactory%20%23ff8b3d%0Aparticipant%20FileLogger%20%23D3D3D3%0A%0A%0A%0A%0A%5B-%3EController.cs%3Arequest%20to%20log%20event%20to%20file%0Aactivate%20Controller.cs%20%23lightgreen%0A%0AController.cs-%3ELoggingManager%3Amanager%20%3D%20new%20LoggingManager()%0A%0Aactivate%20LoggingManager%20%23ffffe0%0A%0ALoggingManager-%3ELoggingManager%3AConstructor()%0A%0ALoggingManager-%3ELogEntry%3A_logEntry%20%3D%20new%20LogEntry(int%20userID%2C%5CnDateTime%20timestamp%2C%20string%20level%2C%20%5Cnstring%20category%2C%20string%20message)%0A%0Aactivate%20LogEntry%20%23cbc3e3%0A%0A%0ALogEntry-%3ELogEntry%3AConstuctor(int%20userID%2C%5Cnstring%20level%2C%20%5CnDateTime%20timestamp%2C%5Cnstring%20category%2C%5Cnstring%20description)%0ALoggingManager%3C--LogEntry%3Areturn%20new%20LogEntry()%0A%0Adeactivate%20LogEntry%0ALoggingManager-%3EFileLoggerFactory%3A_loggerFactory%20%3D%20new%20FileLoggerFactory()%0Aactivate%20FileLoggerFactory%20%23ff8b3d%0A%0AFileLoggerFactory-%3EFileLoggerFactory%3A%20Constructor()%0A%0ALoggingManager%3C--FileLoggerFactory%3Areturn%20new%20FileLoggerFactory%0ALoggingManager-%3EFileLoggerFactory%3A_logger%20%3D%20_loggerFactory.CreateLogger()%0AFileLoggerFactory-%3EFileLogger%3A%20new%20FileLogger()%0A%0A%0Aactivate%20FileLogger%20%23D3D3D3%0AFileLogger-%3EFileLogger%3AConstructor()%0A%0ALoggingManager%3C--FileLogger%3Areturn%20new%20FileLogger()%0Adeactivate%20FileLoggerFactory%0A%0ALoggingManager-%3EFileLogger%3A_logger.Log(_logEntry)%0A%0Adeactivate%20LoggingManager%0AFileLogger-%3EFileLogger%3AAppendFile(LogEntry)%0A%0A%0Aalt%20%23red%20file%20not%20found%20%0AFileLogger-%3EFileLogger%3ACreateFile()%0A%0Aend%0A%0Aalt%20%23red%20insufficient%20storage%20capacity%20%0AFileLogger-%3EFileLogger%3A%20new%20IOException()%0A%0AController.cs%3C--FileLogger%3Areturn%20new%20IOException()%0Aend%20%0ALog Event to File Controller.csLoggingManagerLogEntryFileLoggerFactoryFileLoggerrequest to log event to filemanager = new LoggingManager()Constructor()_logEntry = new LogEntry(int userID,DateTime timestamp, string level, string category, string message)Constuctor(int userID,string level, DateTime timestamp,string category,string description)return new LogEntry()_loggerFactory = new FileLoggerFactory()Constructor()return new FileLoggerFactory_logger = _loggerFactory.CreateLogger()new FileLogger()Constructor()return new FileLogger()_logger.Log(_logEntry)AppendFile(LogEntry)CreateFile()new IOException()return new IOException()alt[file not found ]alt[insufficient storage capacity ] \ No newline at end of file diff --git a/doc/LowLevel/Logging/Logging_LLD_V4.png b/doc/LowLevel/Logging/Logging_LLD_V4.png deleted file mode 100644 index c4ebb5b..0000000 Binary files a/doc/LowLevel/Logging/Logging_LLD_V4.png and /dev/null differ diff --git a/doc/LowLevel/Logging/Logging_LLD_v6.png b/doc/LowLevel/Logging/Logging_LLD_v6.png new file mode 100644 index 0000000..9cc93b9 Binary files /dev/null and b/doc/LowLevel/Logging/Logging_LLD_v6.png differ