From 8a346a6e3c1594b204f2f1dd6a964be2e41cad37 Mon Sep 17 00:00:00 2001 From: Programmist73 Date: Mon, 1 May 2023 00:46:02 +0400 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=BE=D1=82=20=D1=82=D0=B5=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D1=8C=20=D0=B1=D0=BE=D0=BB=D1=8C=D1=88=D0=B5=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=85=D0=BE=D0=B6=D0=B5=20=D0=BD=D0=B0=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=B4=D1=83=20:)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataGridViewExtension.cs | 7 ++- .../BlacksmithWorkshop/FormMain.cs | 2 +- .../BlacksmithWorkshop/Program.cs | 17 ------- .../BlacksmithWorkshopBusinessLogic.csproj | 4 ++ .../BusinessLogicImplementationExtension.cs | 40 +++++++++++++++ .../DI/DependencyManager.cs | 12 ++++- .../IBusinessLogicImplementationExtension.cs | 16 ++++++ .../DI/ServiceProviderLoader.cs | 48 +++++++++++++++++- .../BlacksmithWorkshopBusinessLogic.dll | Bin 0 -> 75264 bytes .../BlacksmithWorkshopContracts.dll | Bin 0 -> 38912 bytes .../BlacksmithWorkshopDataModels.dll | Bin 0 -> 7168 bytes 11 files changed, 124 insertions(+), 22 deletions(-) create mode 100644 BlacksmithWorkshop/BlacksmithWorkshopBusinessLogic/BusinessLogicImplementationExtension.cs create mode 100644 BlacksmithWorkshop/BlacksmithWorkshopContracts/DI/IBusinessLogicImplementationExtension.cs create mode 100644 BlacksmithWorkshop/BusinessLogicImplementationExtensions/BlacksmithWorkshopBusinessLogic.dll create mode 100644 BlacksmithWorkshop/BusinessLogicImplementationExtensions/BlacksmithWorkshopContracts.dll create mode 100644 BlacksmithWorkshop/BusinessLogicImplementationExtensions/BlacksmithWorkshopDataModels.dll diff --git a/BlacksmithWorkshop/BlacksmithWorkshop/DataGridViewExtension.cs b/BlacksmithWorkshop/BlacksmithWorkshop/DataGridViewExtension.cs index fd6b156..5c3f776 100644 --- a/BlacksmithWorkshop/BlacksmithWorkshop/DataGridViewExtension.cs +++ b/BlacksmithWorkshop/BlacksmithWorkshop/DataGridViewExtension.cs @@ -55,8 +55,11 @@ namespace BlacksmithWorkshop { column.Width = columnAttr.Width; } - } - } + + + column.DefaultCellStyle.Format = columnAttr.Format; + } + } } } diff --git a/BlacksmithWorkshop/BlacksmithWorkshop/FormMain.cs b/BlacksmithWorkshop/BlacksmithWorkshop/FormMain.cs index 36d8270..5ea1d74 100644 --- a/BlacksmithWorkshop/BlacksmithWorkshop/FormMain.cs +++ b/BlacksmithWorkshop/BlacksmithWorkshop/FormMain.cs @@ -178,7 +178,7 @@ namespace BlacksmithWorkshop private void ImplementerToolStripMenuItem_Click_1(object sender, EventArgs e) { - var form = DependencyManager.Instance.Resolve(); + var form = DependencyManager.Instance.Resolve(); form.ShowDialog(); } diff --git a/BlacksmithWorkshop/BlacksmithWorkshop/Program.cs b/BlacksmithWorkshop/BlacksmithWorkshop/Program.cs index 8b23862..2362d2f 100644 --- a/BlacksmithWorkshop/BlacksmithWorkshop/Program.cs +++ b/BlacksmithWorkshop/BlacksmithWorkshop/Program.cs @@ -64,23 +64,6 @@ namespace BlacksmithWorkshop option.AddNLog("nlog.config"); }); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(true); - DependencyManager.Instance.RegisterType(); DependencyManager.Instance.RegisterType(); DependencyManager.Instance.RegisterType(); diff --git a/BlacksmithWorkshop/BlacksmithWorkshopBusinessLogic/BlacksmithWorkshopBusinessLogic.csproj b/BlacksmithWorkshop/BlacksmithWorkshopBusinessLogic/BlacksmithWorkshopBusinessLogic.csproj index 40f0332..5507a90 100644 --- a/BlacksmithWorkshop/BlacksmithWorkshopBusinessLogic/BlacksmithWorkshopBusinessLogic.csproj +++ b/BlacksmithWorkshop/BlacksmithWorkshopBusinessLogic/BlacksmithWorkshopBusinessLogic.csproj @@ -21,4 +21,8 @@ + + + + diff --git a/BlacksmithWorkshop/BlacksmithWorkshopBusinessLogic/BusinessLogicImplementationExtension.cs b/BlacksmithWorkshop/BlacksmithWorkshopBusinessLogic/BusinessLogicImplementationExtension.cs new file mode 100644 index 0000000..75c998d --- /dev/null +++ b/BlacksmithWorkshop/BlacksmithWorkshopBusinessLogic/BusinessLogicImplementationExtension.cs @@ -0,0 +1,40 @@ +using BlacksmithWorkshopBusinessLogic.BusinessLogic; +using BlacksmithWorkshopBusinessLogic.MailWorker; +using BlacksmithWorkshopBusinessLogic.OfficePackage.Implements; +using BlacksmithWorkshopBusinessLogic.OfficePackage; +using BlacksmithWorkshopContracts.BusinessLogicsContracts; +using BlacksmithWorkshopContracts.DI; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BlacksmithWorkshopBusinessLogic +{ + public class BusinessLogicImplementationExtension : IBusinessLogicImplementationExtension + { + public int Priority => 0; + + public void RegisterServices() + { + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(true); + + DependencyManager.Instance.RegisterType(); + } + } +} diff --git a/BlacksmithWorkshop/BlacksmithWorkshopContracts/DI/DependencyManager.cs b/BlacksmithWorkshop/BlacksmithWorkshopContracts/DI/DependencyManager.cs index a8837bb..47cf397 100644 --- a/BlacksmithWorkshop/BlacksmithWorkshopContracts/DI/DependencyManager.cs +++ b/BlacksmithWorkshop/BlacksmithWorkshopContracts/DI/DependencyManager.cs @@ -45,7 +45,17 @@ namespace BlacksmithWorkshopContracts.DI // регистрируем зависимости ext.RegisterServices(); - } + + var extBusiness = ServiceProviderLoader.GetBusinessLogicImplementationExtensions(); + + if (extBusiness == null) + { + throw new ArgumentNullException("Отсутствуют компоненты для загрузки зависимостей по модулям"); + } + + // регистрируем зависимости + extBusiness.RegisterServices(); + } //Регистрация логгера public void AddLogging(Action configure) => _dependencyManager.AddLogging(configure); diff --git a/BlacksmithWorkshop/BlacksmithWorkshopContracts/DI/IBusinessLogicImplementationExtension.cs b/BlacksmithWorkshop/BlacksmithWorkshopContracts/DI/IBusinessLogicImplementationExtension.cs new file mode 100644 index 0000000..052ea0e --- /dev/null +++ b/BlacksmithWorkshop/BlacksmithWorkshopContracts/DI/IBusinessLogicImplementationExtension.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BlacksmithWorkshopContracts.DI +{ + public interface IBusinessLogicImplementationExtension + { + public int Priority { get; } + + //Регистрация сервисов + public void RegisterServices(); + } +} diff --git a/BlacksmithWorkshop/BlacksmithWorkshopContracts/DI/ServiceProviderLoader.cs b/BlacksmithWorkshop/BlacksmithWorkshopContracts/DI/ServiceProviderLoader.cs index 12929f0..9343eeb 100644 --- a/BlacksmithWorkshop/BlacksmithWorkshopContracts/DI/ServiceProviderLoader.cs +++ b/BlacksmithWorkshop/BlacksmithWorkshopContracts/DI/ServiceProviderLoader.cs @@ -57,5 +57,51 @@ namespace BlacksmithWorkshopContracts.DI return $"{directory?.FullName}\\ImplementationExtensions"; } - } + + public static IBusinessLogicImplementationExtension? GetBusinessLogicImplementationExtensions() + { + IBusinessLogicImplementationExtension? source = null; + + var files = Directory.GetFiles(TryGetBusinessLogicImplementationExtensionsFolder(), "*.dll", SearchOption.AllDirectories); + + foreach (var file in files.Distinct()) + { + Assembly asm = Assembly.LoadFrom(file); + + foreach (var t in asm.GetExportedTypes()) + { + if (t.IsClass && typeof(IBusinessLogicImplementationExtension).IsAssignableFrom(t)) + { + if (source == null) + { + source = (IBusinessLogicImplementationExtension)Activator.CreateInstance(t)!; + } + else + { + var newSource = (IBusinessLogicImplementationExtension)Activator.CreateInstance(t)!; + + if (newSource.Priority > source.Priority) + { + source = newSource; + } + } + } + } + } + + return source; + } + + private static string TryGetBusinessLogicImplementationExtensionsFolder() + { + var directory = new DirectoryInfo(Directory.GetCurrentDirectory()); + + while (directory != null && !directory.GetDirectories("BusinessLogicImplementationExtensions", SearchOption.AllDirectories).Any(x => x.Name == "BusinessLogicImplementationExtensions")) + { + directory = directory.Parent; + } + + return $"{directory?.FullName}\\BusinessLogicImplementationExtensions"; + } + } } diff --git a/BlacksmithWorkshop/BusinessLogicImplementationExtensions/BlacksmithWorkshopBusinessLogic.dll b/BlacksmithWorkshop/BusinessLogicImplementationExtensions/BlacksmithWorkshopBusinessLogic.dll new file mode 100644 index 0000000000000000000000000000000000000000..82a2522dd714b60cb6812e4a71e993f53b1a0746 GIT binary patch literal 75264 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 NLeM{@{{P{?{{_bCmhAul literal 0 HcmV?d00001 diff --git a/BlacksmithWorkshop/BusinessLogicImplementationExtensions/BlacksmithWorkshopContracts.dll b/BlacksmithWorkshop/BusinessLogicImplementationExtensions/BlacksmithWorkshopContracts.dll new file mode 100644 index 0000000000000000000000000000000000000000..f00c4931c32e5ed423b9f0ab8a25a750c058a476 GIT binary patch literal 38912 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%0A95}yMa+4G=y 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 E0GKWS=l}o! literal 0 HcmV?d00001