From af984ecfb118bb519fc5367fd12eb32e204f6893 Mon Sep 17 00:00:00 2001 From: Dunestorm Date: Sun, 28 Jun 2020 12:07:50 +0100 Subject: [PATCH] Loose coupling of data models using interfaces --- DevConsole/Program.cs | 7 ++++--- FireLance.sln | 10 ++++++++-- FireLance/Class1.cs | 8 ++++++++ FireLance/FireLance.csproj | 7 +++++++ FireLance/Interfaces/IDirectories.cs | 20 +++++++++++++++++++ FireLance/Interfaces/IGameEntry.cs | 15 ++++++++++++++ GSMParser/DataModels/DirectoriesModel.cs | 2 +- .../{GameEntryModal.cs => GameEntryModel.cs} | 2 +- GSMParser/GSMParser.csproj | 4 ++++ GSMParser/Main.cs | 13 ++++++------ 10 files changed, 75 insertions(+), 13 deletions(-) create mode 100644 FireLance/Class1.cs create mode 100644 FireLance/FireLance.csproj create mode 100644 FireLance/Interfaces/IDirectories.cs create mode 100644 FireLance/Interfaces/IGameEntry.cs rename GSMParser/DataModels/{GameEntryModal.cs => GameEntryModel.cs} (79%) diff --git a/DevConsole/Program.cs b/DevConsole/Program.cs index a02a43e..7fd74c0 100644 --- a/DevConsole/Program.cs +++ b/DevConsole/Program.cs @@ -1,4 +1,5 @@ -using System; +using FireLance.Interfaces; +using System; using System.Collections.Generic; namespace DevConsole @@ -101,7 +102,7 @@ namespace DevConsole } #endregion - private static void PrintGameEntries(List gameEntries) + private static void PrintGameEntries(IEnumerable gameEntries) { foreach (var game in gameEntries) { @@ -113,7 +114,7 @@ namespace DevConsole } } - private static void PrintDirectories(List directoryEntries) + private static void PrintDirectories(IEnumerable directoryEntries) { foreach (var directory in directoryEntries) { diff --git a/FireLance.sln b/FireLance.sln index 9352fc3..1005847 100644 --- a/FireLance.sln +++ b/FireLance.sln @@ -3,9 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30204.135 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GSMParser", "GSMParser\GSMParser.csproj", "{7344FC11-3894-4393-A558-82E7D671372D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GSMParser", "GSMParser\GSMParser.csproj", "{7344FC11-3894-4393-A558-82E7D671372D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevConsole", "DevConsole\DevConsole.csproj", "{6B7A9B29-420B-4F58-975E-3D72A3D95314}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DevConsole", "DevConsole\DevConsole.csproj", "{6B7A9B29-420B-4F58-975E-3D72A3D95314}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FireLance", "FireLance\FireLance.csproj", "{6ACF5E6F-42EE-4FD6-8657-51E6380D422C}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -21,6 +23,10 @@ Global {6B7A9B29-420B-4F58-975E-3D72A3D95314}.Debug|Any CPU.Build.0 = Debug|Any CPU {6B7A9B29-420B-4F58-975E-3D72A3D95314}.Release|Any CPU.ActiveCfg = Release|Any CPU {6B7A9B29-420B-4F58-975E-3D72A3D95314}.Release|Any CPU.Build.0 = Release|Any CPU + {6ACF5E6F-42EE-4FD6-8657-51E6380D422C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6ACF5E6F-42EE-4FD6-8657-51E6380D422C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6ACF5E6F-42EE-4FD6-8657-51E6380D422C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6ACF5E6F-42EE-4FD6-8657-51E6380D422C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/FireLance/Class1.cs b/FireLance/Class1.cs new file mode 100644 index 0000000..7b26a89 --- /dev/null +++ b/FireLance/Class1.cs @@ -0,0 +1,8 @@ +using System; + +namespace FireLance +{ + public class Class1 + { + } +} diff --git a/FireLance/FireLance.csproj b/FireLance/FireLance.csproj new file mode 100644 index 0000000..cb63190 --- /dev/null +++ b/FireLance/FireLance.csproj @@ -0,0 +1,7 @@ + + + + netcoreapp3.1 + + + diff --git a/FireLance/Interfaces/IDirectories.cs b/FireLance/Interfaces/IDirectories.cs new file mode 100644 index 0000000..6759a15 --- /dev/null +++ b/FireLance/Interfaces/IDirectories.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace FireLance.Interfaces +{ + public interface IDirectories + { + int id { get; set; } + int GameID { get; set; } + string SpecialPath { get; set; } + string Path { get; set; } + string RegHive { get; set; } + string RegPath { get; set; } + string RegValue { get; set; } + string DefinedFiles { get; set; } + string ExcludedFiles { get; set; } + bool Recurse { get; set; } + } +} diff --git a/FireLance/Interfaces/IGameEntry.cs b/FireLance/Interfaces/IGameEntry.cs new file mode 100644 index 0000000..42cd9d8 --- /dev/null +++ b/FireLance/Interfaces/IGameEntry.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace FireLance.Interfaces +{ + public interface IGameEntry + { + int id { get; set; } + string GameName { get; set; } + string BackupWarning { get; set; } + string RestoreWarning { get; set; } + string LastModified { get; set; } + } +} diff --git a/GSMParser/DataModels/DirectoriesModel.cs b/GSMParser/DataModels/DirectoriesModel.cs index fb19f08..d8c75cd 100644 --- a/GSMParser/DataModels/DirectoriesModel.cs +++ b/GSMParser/DataModels/DirectoriesModel.cs @@ -1,4 +1,4 @@ -public class DirectoriesModel +public class DirectoriesModel : FireLance.Interfaces.IDirectories { public int id { get; set; } public int GameID { get; set; } diff --git a/GSMParser/DataModels/GameEntryModal.cs b/GSMParser/DataModels/GameEntryModel.cs similarity index 79% rename from GSMParser/DataModels/GameEntryModal.cs rename to GSMParser/DataModels/GameEntryModel.cs index 15f1bb1..f4dd215 100644 --- a/GSMParser/DataModels/GameEntryModal.cs +++ b/GSMParser/DataModels/GameEntryModel.cs @@ -1,6 +1,6 @@ using System.Data.Common; -public class GameEntryModal +public class GameEntryModal : FireLance.Interfaces.IGameEntry { public int id { get; set; } public string GameName { get; set; } diff --git a/GSMParser/GSMParser.csproj b/GSMParser/GSMParser.csproj index 6247b04..719597e 100644 --- a/GSMParser/GSMParser.csproj +++ b/GSMParser/GSMParser.csproj @@ -10,6 +10,10 @@ + + + + Always diff --git a/GSMParser/Main.cs b/GSMParser/Main.cs index 2dee9e3..a196561 100644 --- a/GSMParser/Main.cs +++ b/GSMParser/Main.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; using System.IO; using Dapper; +using FireLance.Interfaces; public class GSMParser { @@ -29,18 +30,18 @@ public class GSMParser return Convert.ToString(DBConnection.State); } - public List QueryGameById(string id) + public IEnumerable QueryGameById(string id) { - return (List)DBConnection.Query(QueryBuilder.GameEntryByGameId(id), new DynamicParameters()); + return (IEnumerable)DBConnection.Query(QueryBuilder.GameEntryByGameId(id), new DynamicParameters()); } - public List QueryDirectoryById(string id) + public IEnumerable QueryDirectoryById(string id) { - return (List)DBConnection.Query(QueryBuilder.DirectoryByGameId(id), new DynamicParameters()); + return (IEnumerable)DBConnection.Query(QueryBuilder.DirectoryByGameId(id), new DynamicParameters()); } - public List QueryGameByName(string name) + public IEnumerable QueryGameByName(string name) { - return (List) DBConnection.Query(QueryBuilder.GameEntryByName(name), new DynamicParameters()); + return (IEnumerable) DBConnection.Query(QueryBuilder.GameEntryByName(name), new DynamicParameters()); } }