From 56b1ae730c0b29face85e53a0931bee35faabc7a Mon Sep 17 00:00:00 2001 From: "ns.potapov" Date: Sun, 19 May 2024 22:25:15 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BB=20Unity=20DI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DI/UnityDependencyContainer.cs | 38 +++++++++++++++++++ .../SecuritySystemContracts.csproj | 2 + .../Models/Order.cs | 2 +- 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 SecuritySystem/SecuritySystemContracts/DI/UnityDependencyContainer.cs diff --git a/SecuritySystem/SecuritySystemContracts/DI/UnityDependencyContainer.cs b/SecuritySystem/SecuritySystemContracts/DI/UnityDependencyContainer.cs new file mode 100644 index 0000000..556c3e7 --- /dev/null +++ b/SecuritySystem/SecuritySystemContracts/DI/UnityDependencyContainer.cs @@ -0,0 +1,38 @@ + +using Microsoft.Extensions.Logging; +using Unity; +using Unity.Microsoft.Logging; + +namespace SecuritySystemContracts.DI +{ + public class UnityDependencyContainer : IDependencyContainer + { + private readonly IUnityContainer _container; + + public UnityDependencyContainer() + { + _container = new UnityContainer(); + } + + public void AddLogging(Action configure) + { + var factory = LoggerFactory.Create(configure); + _container.AddExtension(new LoggingExtension(factory)); + } + + public void RegisterType(bool isSingle) where U : class, T where T : class + { + _container.RegisterType(isSingle ? TypeLifetime.Singleton : TypeLifetime.Transient); + } + + public void RegisterType(bool isSingle) where T : class + { + _container.RegisterType(isSingle ? TypeLifetime.Singleton : TypeLifetime.Transient); + } + + public T Resolve() + { + return _container.Resolve(); + } + } +} diff --git a/SecuritySystem/SecuritySystemContracts/SecuritySystemContracts.csproj b/SecuritySystem/SecuritySystemContracts/SecuritySystemContracts.csproj index c3a3957..4c2843a 100644 --- a/SecuritySystem/SecuritySystemContracts/SecuritySystemContracts.csproj +++ b/SecuritySystem/SecuritySystemContracts/SecuritySystemContracts.csproj @@ -9,6 +9,8 @@ + + diff --git a/SecuritySystem/SecuritySystemFileImplement/Models/Order.cs b/SecuritySystem/SecuritySystemFileImplement/Models/Order.cs index 1c7ebe2..a7a70f8 100644 --- a/SecuritySystem/SecuritySystemFileImplement/Models/Order.cs +++ b/SecuritySystem/SecuritySystemFileImplement/Models/Order.cs @@ -63,7 +63,7 @@ namespace SecuritySystemFileImplement.Models Status = (OrderStatus)Enum.Parse(typeof(OrderStatus), element.Element("Status")!.Value), DateCreate = Convert.ToDateTime(element.Element("DateCreate")!.Value), DateImplement = string.IsNullOrEmpty(element.Element("DateImplement")!.Value) ? null : Convert.ToDateTime(element.Element("DateImplement")!.Value), - ImplementerId = Convert.ToInt32(element.Element("ImplementerId")!.Value), + ImplementerId = string.IsNullOrEmpty(element.Element("ImplementerId")!.Value) ? null : Convert.ToInt32(element.Element("ImplementerId")!.Value), }; }