From e1b74a36a06c9b0459bf65267cbb907551d0f552 Mon Sep 17 00:00:00 2001 From: Ryan Peters Date: Wed, 14 Oct 2020 17:57:39 -0400 Subject: [PATCH] use singleton for helpers --- .../DataAccessManager.cs | 11 ++++++----- COA.EnterpriseServices.DataAccess/Dependencies.cs | 6 +++++- .../Helpers/BaseHelper.cs | 2 +- .../Helpers/CreditorHelper.cs | 5 +++++ COA.EnterpriseServices.Sandbox/Program.cs | 7 ++++--- 5 files changed, 21 insertions(+), 10 deletions(-) diff --git a/COA.EnterpriseServices.DataAccess/DataAccessManager.cs b/COA.EnterpriseServices.DataAccess/DataAccessManager.cs index 9887e71..d6ba219 100644 --- a/COA.EnterpriseServices.DataAccess/DataAccessManager.cs +++ b/COA.EnterpriseServices.DataAccess/DataAccessManager.cs @@ -50,13 +50,14 @@ namespace COA.EnterpriseServices.DataAccess // load data access based on active configuration return Dependencies.Container .GetAllInstances>() - .Where(i => + .Select(i => new { - var dataAccessType = i.GetType().FullName; - - return enabledDataAccess.ContainsKey(type.FullName) && enabledDataAccess[type.FullName].Any(a => dataAccessType.StartsWith(a)); + Instance = i, + Type = i.GetType() }) - .OrderBy(i => i.GetType().Name.StartsWith("QuickBase", StringComparison.OrdinalIgnoreCase)) + .Where(i => enabledDataAccess.ContainsKey(type.FullName) && enabledDataAccess[type.FullName].Any(a => i.Type.FullName.StartsWith(a))) + .OrderBy(i => i.Type.Name.StartsWith("QuickBase", StringComparison.OrdinalIgnoreCase)) + .Select(i => i.Instance) .ToList(); } } diff --git a/COA.EnterpriseServices.DataAccess/Dependencies.cs b/COA.EnterpriseServices.DataAccess/Dependencies.cs index 683bae2..f5ee3c1 100644 --- a/COA.EnterpriseServices.DataAccess/Dependencies.cs +++ b/COA.EnterpriseServices.DataAccess/Dependencies.cs @@ -1,4 +1,5 @@ -using StructureMap; +using COA.EnterpriseServices.DataAccess.Helpers; +using StructureMap; namespace COA.EnterpriseServices.DataAccess { @@ -18,6 +19,9 @@ namespace COA.EnterpriseServices.DataAccess s.WithDefaultConventions(); s.AssembliesFromApplicationBaseDirectory(); }); + + c.For().Singleton(); + c.For().Singleton(); }); } } diff --git a/COA.EnterpriseServices.DataAccess/Helpers/BaseHelper.cs b/COA.EnterpriseServices.DataAccess/Helpers/BaseHelper.cs index 11b9029..d828da5 100644 --- a/COA.EnterpriseServices.DataAccess/Helpers/BaseHelper.cs +++ b/COA.EnterpriseServices.DataAccess/Helpers/BaseHelper.cs @@ -4,7 +4,7 @@ namespace COA.EnterpriseServices.DataAccess.Helpers { public class BaseHelper where T : class, IRecord { - protected DataAccessManager DataAccessManager { get; } = new DataAccessManager(); + protected DataAccessManager DataAccessManager { get; } = Dependencies.Container.GetInstance>(); public virtual T Get(int id) => DataAccessManager.Invoke(d => d.Get(i => i.Id == id).FirstOrDefault()); diff --git a/COA.EnterpriseServices.DataAccess/Helpers/CreditorHelper.cs b/COA.EnterpriseServices.DataAccess/Helpers/CreditorHelper.cs index 1aebb9a..d4cb5bd 100644 --- a/COA.EnterpriseServices.DataAccess/Helpers/CreditorHelper.cs +++ b/COA.EnterpriseServices.DataAccess/Helpers/CreditorHelper.cs @@ -17,6 +17,11 @@ namespace COA.EnterpriseServices.DataAccess.Helpers settlementAttemptDataAccess = Dependencies.Container.GetInstance>(); } + public CreditorHelper() + { + + } + public Creditor GetCreditor(int id) { return creditorDataAccess.Invoke(d => d.Get(d => d.Id == id)?.FirstOrDefault()); diff --git a/COA.EnterpriseServices.Sandbox/Program.cs b/COA.EnterpriseServices.Sandbox/Program.cs index d2a9ca3..5affefc 100644 --- a/COA.EnterpriseServices.Sandbox/Program.cs +++ b/COA.EnterpriseServices.Sandbox/Program.cs @@ -1,4 +1,5 @@ -using COA.EnterpriseServices.DataAccess.Entities; +using COA.EnterpriseServices.DataAccess; +using COA.EnterpriseServices.DataAccess.Entities; using COA.EnterpriseServices.DataAccess.Helpers; namespace COA.EnterpriseServices.Sandbox @@ -13,7 +14,7 @@ namespace COA.EnterpriseServices.Sandbox private static void CreditorStuff() { - var creditorHelper = new CreditorHelper(); + var creditorHelper = Dependencies.Container.GetInstance(); // get single creditor var singleCreditor = creditorHelper.GetCreditor(1); @@ -36,7 +37,7 @@ namespace COA.EnterpriseServices.Sandbox private static void ClientStuff() { - var clientHelper = new ClientHelper(); + var clientHelper = Dependencies.Container.GetInstance(); var newClient = new Client {