Upload files to 'ShipyardFileImplement'

This commit is contained in:
Ivan_Starostin 2024-06-21 21:40:58 +04:00
parent fa88c3bc1e
commit 0f18f2bf17
5 changed files with 99 additions and 6 deletions

View File

@ -0,0 +1,41 @@
using ShipyardContracts.StorageContracts;
using ShipyardFileImplement;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace ShipyardFileImplemented
{
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 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;
}
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);
}
}
}

View File

@ -4,17 +4,23 @@ using ShipyardDataModels;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Xml.Linq; using System.Xml.Linq;
namespace ShipyardFileImplemented.Models namespace ShipyardFileImplemented.Models
{ {
[DataContract]
public class Client : IClientModel public class Client : IClientModel
{ {
[DataMember]
public int Id { get; private set; } public int Id { get; private set; }
[DataMember]
public string ClientFIO { get; private set; } = string.Empty; public string ClientFIO { get; private set; } = string.Empty;
[DataMember]
public string Email { get; set; } = string.Empty; public string Email { get; set; } = string.Empty;
[DataMember]
public string Password { get; set; } = string.Empty; public string Password { get; set; } = string.Empty;
public static Client? Create(ClientBindingModel model) public static Client? Create(ClientBindingModel model)
{ {

View File

@ -4,16 +4,21 @@ using ShipyardDataModels.Models;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Xml.Linq; using System.Xml.Linq;
namespace ShipyardFileImplement.Models namespace ShipyardFileImplement.Models
{ {
[DataContract]
public class Component : IComponentModel public class Component : IComponentModel
{ {
[DataMember]
public int Id { get; set; } public int Id { get; set; }
[DataMember]
public string ComponentName { get; set; } = string.Empty; public string ComponentName { get; set; } = string.Empty;
[DataMember]
public double Cost { get; set; } public double Cost { get; set; }
public static Component? Create(ComponentBindingModel model) public static Component? Create(ComponentBindingModel model)
{ {

View File

@ -0,0 +1,34 @@
using ShipyardContracts.DI;
using ShipyardContracts.StorageContracts;
using ShipyardContracts.StoragesContracts;
using ShipyardFileImplement.Implements;
using ShipyardFileImplemented.Implements;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ShipyardFileImplemented
{
public class FileImplementationExtension : IImplementationExtension
{
public int Priority => 0;
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<IShipStorage,
ShipStorage>();
DependencyManager.Instance.RegisterType<IBackUpInfo, BackUpInfo>();
}
}
}

View File

@ -4,18 +4,25 @@ using ShipyardDataModels.Models;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Xml.Linq; using System.Xml.Linq;
namespace ShipyardFileImplemented.Models namespace ShipyardFileImplemented.Models
{ {
[DataContract]
public class Implementer : IImplementerModel public class Implementer : IImplementerModel
{ {
[DataMember]
public int Id { get; private set; } public int Id { get; private set; }
[DataMember]
public string ImplementerFIO { get; private set; } = string.Empty; public string ImplementerFIO { get; private set; } = string.Empty;
[DataMember]
public string Password { get; set; } = string.Empty; public string Password { get; set; } = string.Empty;
[DataMember]
public int Qualification { get; set; } = 0; public int Qualification { get; set; } = 0;
[DataMember]
public int WorkExperience { get; set; } = 0; public int WorkExperience { get; set; } = 0;
public static Implementer? Create(ImplementerBindingModel model) public static Implementer? Create(ImplementerBindingModel model)
{ {