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
{