using SewingDressesContracts.StoragesContracts; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SewingDressesFileImplement.Implements { public class BackUpInfo : IBackUpInfo { public List? GetList() where T : class, new() { List? list = new(); var source = DataFileSingleton.GetInstance(); Type typeRequired = typeof(T); Type typeSource = source.GetType(); foreach (var property in typeSource.GetProperties()) { if (property.PropertyType.IsGenericType && property.PropertyType.GetGenericArguments()[0] == typeRequired) { list.Add((T)property.GetValue(source)); } } return list; } 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; } } }