FileImplement extension

This commit is contained in:
ShabOl 2024-04-20 23:06:11 +04:00
parent 54f300251d
commit 71e0aec32b
10 changed files with 151 additions and 34 deletions

View File

@ -21,4 +21,8 @@
<ProjectReference Include="..\AutoWorkshopDataModels\AutoWorkshopDataModels.csproj" />
</ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="copy /Y &quot;$(TargetDir)*.dll&quot; &quot;$(SolutionDir)ImplementationExtensions\*.dll&quot;" />
</Target>
</Project>

View File

@ -11,4 +11,8 @@
<ProjectReference Include="..\AutoWorkshopDataModels\AutoWorkshopDataModels.csproj" />
</ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="copy /Y &quot;$(TargetDir)*.dll&quot; &quot;$(SolutionDir)ImplementationExtensions\*.dll&quot;" />
</Target>
</Project>

View File

@ -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<T>? GetList<T>() where T : class, new()
{
var RequredType = typeof(T);
return (List<T>?)_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;
}
}
}

View File

@ -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<IClientStorage, ClientStorage>();
DependencyManager.Instance.RegisterType<IComponentStorage, ComponentStorage>();
DependencyManager.Instance.RegisterType<IImplementerStorage, ImplementerStorage>();
DependencyManager.Instance.RegisterType<IMessageInfoStorage, MessageInfoStorage>();
DependencyManager.Instance.RegisterType<IOrderStorage, OrderStorage>();
DependencyManager.Instance.RegisterType<IRepairStorage, RepairStorage>();
DependencyManager.Instance.RegisterType<IBackUpInfo, BackUpInfo>();
}
}
}

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)

View File

@ -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)
{

View File

@ -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<int, int> Components { get; private set; } = new();
private Dictionary<int, (IComponentModel, int)>? _RepairComponents = null;
public Dictionary<int, (IComponentModel, int)> RepairComponents
[DataMember]
public Dictionary<int, (IComponentModel, int)> RepairComponents
{
get
{