diff --git a/AutoWorkshopDatabaseImplement/AutoWorkshopDatabaseImplement.csproj b/AutoWorkshopDatabaseImplement/AutoWorkshopDatabaseImplement.csproj index 18d1907..4595364 100644 --- a/AutoWorkshopDatabaseImplement/AutoWorkshopDatabaseImplement.csproj +++ b/AutoWorkshopDatabaseImplement/AutoWorkshopDatabaseImplement.csproj @@ -21,4 +21,8 @@ + + + + diff --git a/AutoWorkshopFileImplement/AutoWorkshopFileImplement.csproj b/AutoWorkshopFileImplement/AutoWorkshopFileImplement.csproj index 6deaaf6..37bf4ed 100644 --- a/AutoWorkshopFileImplement/AutoWorkshopFileImplement.csproj +++ b/AutoWorkshopFileImplement/AutoWorkshopFileImplement.csproj @@ -11,4 +11,8 @@ + + + + diff --git a/AutoWorkshopFileImplement/Implements/BackUpInfo.cs b/AutoWorkshopFileImplement/Implements/BackUpInfo.cs new file mode 100644 index 0000000..ab25a24 --- /dev/null +++ b/AutoWorkshopFileImplement/Implements/BackUpInfo.cs @@ -0,0 +1,42 @@ +using AutoWorkshopContracts.StoragesContracts; +using System.Reflection; + +namespace AutoWorkshopFileImplement.Implements +{ + public class BackUpInfo : IBackUpInfo + { + private readonly DataFileSingleton _source; + private readonly PropertyInfo[] _sourceProperties; + + public BackUpInfo() + { + _source = DataFileSingleton.GetInstance(); + _sourceProperties = _source.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public); + } + + public List? GetList() where T : class, new() + { + var RequredType = typeof(T); + + return (List?)_sourceProperties + .FirstOrDefault(x => x.PropertyType.IsGenericType && x.PropertyType.GetGenericArguments()[0] == RequredType) + ?.GetValue(_source); + } + + public Type? GetTypeByModelInterface(string ModelInterfaceName) + { + var Assembly = typeof(BackUpInfo).Assembly; + var Types = Assembly.GetTypes(); + + foreach (var Type in Types) + { + if (Type.IsClass && Type.GetInterface(ModelInterfaceName) != null) + { + return Type; + } + } + + return null; + } + } +} diff --git a/AutoWorkshopFileImplement/Implements/ImplementationExtension.cs b/AutoWorkshopFileImplement/Implements/ImplementationExtension.cs new file mode 100644 index 0000000..e682d43 --- /dev/null +++ b/AutoWorkshopFileImplement/Implements/ImplementationExtension.cs @@ -0,0 +1,21 @@ +using AutoWorkshopContracts.DI; +using AutoWorkshopContracts.StoragesContracts; + +namespace AutoWorkshopFileImplement.Implements +{ + public class ImplementationExtension : IImplementationExtension + { + public int Priority => 1; + + public void RegisterServices() + { + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + } + } +} diff --git a/AutoWorkshopFileImplement/Models/Client.cs b/AutoWorkshopFileImplement/Models/Client.cs index b27a7a9..031fefb 100644 --- a/AutoWorkshopFileImplement/Models/Client.cs +++ b/AutoWorkshopFileImplement/Models/Client.cs @@ -1,19 +1,25 @@ using AutoWorkshopContracts.BindingModels; using AutoWorkshopContracts.ViewModels; using AutoWorkshopDataModels.Models; +using System.Runtime.Serialization; using System.Xml.Linq; namespace AutoWorkshopFileImplement.Models { - public class Client : IClientModel + [DataContract] + public class Client : IClientModel { + [DataMember] public int Id { get; private set; } - - public string ClientFIO { get; private set; } = string.Empty; - - public string Email { get; set; } = string.Empty; - - public string Password { get; set; } = string.Empty; + + [DataMember] + public string ClientFIO { get; private set; } = string.Empty; + + [DataMember] + public string Email { get; set; } = string.Empty; + + [DataMember] + public string Password { get; set; } = string.Empty; public static Client? Create(ClientBindingModel Model) { diff --git a/AutoWorkshopFileImplement/Models/Component.cs b/AutoWorkshopFileImplement/Models/Component.cs index 383028b..1a8ef2d 100644 --- a/AutoWorkshopFileImplement/Models/Component.cs +++ b/AutoWorkshopFileImplement/Models/Component.cs @@ -1,17 +1,22 @@ using AutoWorkshopContracts.BindingModels; using AutoWorkshopContracts.ViewModels; using AutoWorkshopDataModels.Models; +using System.Runtime.Serialization; using System.Xml.Linq; namespace AutoWorkshopFileImplement.Models { - public class Component : IComponentModel + [DataContract] + public class Component : IComponentModel { + [DataMember] public int Id { get; private set; } - - public string ComponentName { get; private set; } = string.Empty; - - public double Cost { get; set; } + + [DataMember] + public string ComponentName { get; private set; } = string.Empty; + + [DataMember] + public double Cost { get; set; } public static Component? Create(ComponentBindingModel Model) { diff --git a/AutoWorkshopFileImplement/Models/Implementer.cs b/AutoWorkshopFileImplement/Models/Implementer.cs index 1118fe7..64dc54b 100644 --- a/AutoWorkshopFileImplement/Models/Implementer.cs +++ b/AutoWorkshopFileImplement/Models/Implementer.cs @@ -1,21 +1,28 @@ using AutoWorkshopContracts.BindingModels; using AutoWorkshopContracts.ViewModels; using AutoWorkshopDataModels.Models; +using System.Runtime.Serialization; using System.Xml.Linq; namespace AutoWorkshopFileImplement.Models { - public class Implementer : IImplementerModel + [DataContract] + public class Implementer : IImplementerModel { + [DataMember] public int Id { get; private set; } - public string ImplementerFIO { get; private set; } = string.Empty; + [DataMember] + public string ImplementerFIO { get; private set; } = string.Empty; - public string Password { get; private set; } = string.Empty; + [DataMember] + public string Password { get; private set; } = string.Empty; - public int WorkExperience { get; private set; } + [DataMember] + public int WorkExperience { get; private set; } - public int Qualification { get; private set; } + [DataMember] + public int Qualification { get; private set; } public static Implementer? Create(ImplementerBindingModel Model) { diff --git a/AutoWorkshopFileImplement/Models/MessageInfo.cs b/AutoWorkshopFileImplement/Models/MessageInfo.cs index 9982775..597d461 100644 --- a/AutoWorkshopFileImplement/Models/MessageInfo.cs +++ b/AutoWorkshopFileImplement/Models/MessageInfo.cs @@ -1,22 +1,33 @@ using AutoWorkshopContracts.BindingModels; using AutoWorkshopContracts.ViewModels; using AutoWorkshopDataModels.Models; +using System.Runtime.Serialization; using System.Xml.Linq; namespace AutoWorkshopFileImplement.Models { + [DataContract] public class MessageInfo : IMessageInfoModel { + [DataMember] + public int Id { get; set; } + + [DataMember] public string MessageId { get; set; } = string.Empty; + [DataMember] public int? ClientId { get; set; } + [DataMember] public string SenderName { get; set; } = string.Empty; + [DataMember] public DateTime DateDelivery { get; set; } + [DataMember] public string Subject { get; set; } = string.Empty; + [DataMember] public string Body { get; set; } = string.Empty; public static MessageInfo? Create(MessageInfoBindingModel? Model) diff --git a/AutoWorkshopFileImplement/Models/Order.cs b/AutoWorkshopFileImplement/Models/Order.cs index 4f90bea..e15479b 100644 --- a/AutoWorkshopFileImplement/Models/Order.cs +++ b/AutoWorkshopFileImplement/Models/Order.cs @@ -2,29 +2,40 @@ using AutoWorkshopContracts.ViewModels; using AutoWorkshopDataModels.Enums; using AutoWorkshopDataModels.Models; +using System.Runtime.Serialization; using System.Xml.Linq; namespace AutoWorkshopFileImplement.Models { - public class Order : IOrderModel + [DataContract] + public class Order : IOrderModel { + [DataMember] public int Id { get; private set; } - public int RepairId { get; private set; } + [DataMember] + public int RepairId { get; private set; } - public int ClientId { get; private set; } + [DataMember] + public int ClientId { get; private set; } - public int? ImplementerId { get; set; } + [DataMember] + public int? ImplementerId { get; set; } - public int Count { get; private set; } + [DataMember] + public int Count { get; private set; } - public double Sum { get; private set; } + [DataMember] + public double Sum { get; private set; } - public OrderStatus Status { get; private set; } + [DataMember] + public OrderStatus Status { get; private set; } - public DateTime DateCreate { get; private set; } + [DataMember] + public DateTime DateCreate { get; private set; } - public DateTime? DateImplement { get; private set; } + [DataMember] + public DateTime? DateImplement { get; private set; } public static Order? Create(OrderBindingModel? Model) { diff --git a/AutoWorkshopFileImplement/Models/Repair.cs b/AutoWorkshopFileImplement/Models/Repair.cs index ee7b2f3..60f2c88 100644 --- a/AutoWorkshopFileImplement/Models/Repair.cs +++ b/AutoWorkshopFileImplement/Models/Repair.cs @@ -1,23 +1,29 @@ using AutoWorkshopContracts.BindingModels; using AutoWorkshopContracts.ViewModels; using AutoWorkshopDataModels.Models; +using System.Runtime.Serialization; using System.Xml.Linq; namespace AutoWorkshopFileImplement.Models { - public class Repair : IRepairModel + [DataContract] + public class Repair : IRepairModel { - public int Id { get; private set; } - - public string RepairName { get; private set; } = string.Empty; - - public double Price { get; private set; } + [DataMember] + public int Id { get; private set; } + + [DataMember] + public string RepairName { get; private set; } = string.Empty; + + [DataMember] + public double Price { get; private set; } public Dictionary Components { get; private set; } = new(); private Dictionary? _RepairComponents = null; - - public Dictionary RepairComponents + + [DataMember] + public Dictionary RepairComponents { get {