лаба жива я нет

This commit is contained in:
Milana Ievlewa 2024-05-17 15:06:17 +04:00
parent 91ead7c64c
commit 55ad661987
9 changed files with 5 additions and 10 deletions

View File

@ -50,7 +50,6 @@ namespace PrecastConcretePlantBusinessLogic.BusinessLogic
{ {
File.Delete(fileName); File.Delete(fileName);
} }
// берем метод для сохранения
_logger.LogDebug("Get assembly"); _logger.LogDebug("Get assembly");
var typeIId = typeof(IId); var typeIId = typeof(IId);
var assembly = typeIId.Assembly; var assembly = typeIId.Assembly;
@ -71,14 +70,11 @@ namespace PrecastConcretePlantBusinessLogic.BusinessLogic
throw new InvalidOperationException($"Не найден класс-модель для {type.Name}"); throw new InvalidOperationException($"Не найден класс-модель для {type.Name}");
} }
_logger.LogDebug("Call SaveToFile method for {name} type", type.Name); _logger.LogDebug("Call SaveToFile method for {name} type", type.Name);
// вызываем метод на выполнение
method?.MakeGenericMethod(modelType).Invoke(this, new object[] { model.FolderName }); method?.MakeGenericMethod(modelType).Invoke(this, new object[] { model.FolderName });
} }
} }
_logger.LogDebug("Create zip and remove folder"); _logger.LogDebug("Create zip and remove folder");
// архивируем
ZipFile.CreateFromDirectory(model.FolderName, fileName); ZipFile.CreateFromDirectory(model.FolderName, fileName);
// удаляем папку
dirInfo.Delete(true); dirInfo.Delete(true);
} }
catch (Exception) catch (Exception)
@ -86,7 +82,6 @@ namespace PrecastConcretePlantBusinessLogic.BusinessLogic
throw; throw;
} }
} }
private void SaveToFile<T>(string folderName) where T : class, new() private void SaveToFile<T>(string folderName) where T : class, new()
{ {
var records = _backUpInfo.GetList<T>(); var records = _backUpInfo.GetList<T>();

View File

@ -21,7 +21,6 @@ namespace PrecastConcretePlantContracts.DI
} }
public static DependencyManager Instance { get { if (_manager == null) { lock (_locjObject) { _manager = new DependencyManager(); } } return _manager; } } public static DependencyManager Instance { get { if (_manager == null) { lock (_locjObject) { _manager = new DependencyManager(); } } return _manager; } }
public static void InitDependency() public static void InitDependency()
{ {
var ext = ServiceProviderLoader.GetImplementationExtensions(); var ext = ServiceProviderLoader.GetImplementationExtensions();
@ -29,7 +28,6 @@ namespace PrecastConcretePlantContracts.DI
{ {
throw new ArgumentNullException("Отсутствуют компоненты для загрузки зависимостей по модулям"); throw new ArgumentNullException("Отсутствуют компоненты для загрузки зависимостей по модулям");
} }
// регистрируем зависимости
ext.RegisterServices(); ext.RegisterServices();
} }

View File

@ -6,7 +6,7 @@ using System.Threading.Tasks;
using PrecastConcretePlantContracts.DI; using PrecastConcretePlantContracts.DI;
using PrecastConcretePlantContracts.StoragesContracts; using PrecastConcretePlantContracts.StoragesContracts;
using PrecastConcretePlantDatabaseImplement.Implements; using PrecastConcretePlantDatabaseImplement.Implements;
//начало 3его вопроса - Как реализован новый механизм настройки зависимостей?
namespace PrecastConcretePlantDatabaseImplement namespace PrecastConcretePlantDatabaseImplement
{ {
public class DatabaseImplementationExtension : IImplementationExtension public class DatabaseImplementationExtension : IImplementationExtension

View File

@ -5,7 +5,6 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using PrecastConcretePlantContracts.Attributes; using PrecastConcretePlantContracts.Attributes;
namespace PrecastConcretePlantView namespace PrecastConcretePlantView
{ {
public static class DataGridViewExtension public static class DataGridViewExtension
@ -20,6 +19,7 @@ namespace PrecastConcretePlantView
var type = typeof(T); var type = typeof(T);
var properties = type.GetProperties(); var properties = type.GetProperties();
foreach (DataGridViewColumn column in grid.Columns) foreach (DataGridViewColumn column in grid.Columns)
{ {
var property = properties.FirstOrDefault(x => x.Name == column.Name); var property = properties.FirstOrDefault(x => x.Name == column.Name);
@ -27,13 +27,15 @@ namespace PrecastConcretePlantView
{ {
throw new InvalidOperationException($"В типе {type.Name} не найдено свойство с именем {column.Name}"); throw new InvalidOperationException($"В типе {type.Name} не найдено свойство с именем {column.Name}");
} }
var attribute = property.GetCustomAttributes(typeof(ColumnAttribute), true)?.SingleOrDefault(); var attribute = property.GetCustomAttributes(typeof(ColumnAttribute), true)?.SingleOrDefault();
if (attribute == null) if (attribute == null)
{ {
throw new InvalidOperationException($"Не найден атрибут типа ColumnAttribute для свойства {property.Name}"); throw new InvalidOperationException($"Не найден атрибут типа ColumnAttribute для свойства {property.Name}");
} }
if (attribute is ColumnAttribute columnAttr) if (attribute is ColumnAttribute columnAttr)//проставляем полученные аттрибуты
{ {
column.HeaderText = columnAttr.Title; column.HeaderText = columnAttr.Title;
column.Visible = columnAttr.Visible; column.Visible = columnAttr.Visible;