переделка проекта ModuleTools на ToolsModule
This commit is contained in:
parent
ed95a8eee3
commit
04e6e6766b
@ -1,39 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace CommonTools.Attributes
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Описание зависимости сущности от другой сущности (требуется для сохранения и загрузки данных)
|
|
||||||
/// </summary>
|
|
||||||
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
|
|
||||||
public class EntityDependencyAttribute : Attribute
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Название класса от котрого зависит этот класс
|
|
||||||
/// </summary>
|
|
||||||
public string ClassName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Название поле в этом классе, которое ссылает на другой класс (идентификатор)
|
|
||||||
/// </summary>
|
|
||||||
public string ColumnName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Описание зависимости
|
|
||||||
/// </summary>
|
|
||||||
public string Description { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Конструктор
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="className">Название класса от котрого зависит этот класс</param>
|
|
||||||
/// <param name="columnName">Название поле в этом классе, которое ссылает на другой класс (идентификатор)</param>
|
|
||||||
/// <param name="description">Описание зависимости</param>
|
|
||||||
public EntityDependencyAttribute(string className, string columnName, string description)
|
|
||||||
{
|
|
||||||
ClassName = className;
|
|
||||||
ColumnName = columnName;
|
|
||||||
Description = description;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,32 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace CommonTools.Attributes
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Описание класса из базы данных, его назначение
|
|
||||||
/// </summary>
|
|
||||||
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
|
|
||||||
public class EntityDescriptionAttribute : Attribute
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Название сущности, которую описывает класс
|
|
||||||
/// </summary>
|
|
||||||
public string EntityName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Описание назначения сущности
|
|
||||||
/// </summary>
|
|
||||||
public string Description { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Конструктор
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="entityName">Название сущности, которую описывает класс</param>
|
|
||||||
/// <param name="description">Описание назначения сущности</param>
|
|
||||||
public EntityDescriptionAttribute(string entityName, string description)
|
|
||||||
{
|
|
||||||
EntityName = entityName;
|
|
||||||
Description = description;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,36 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace CommonTools.Attributes
|
|
||||||
{
|
|
||||||
[AttributeUsage(AttributeTargets.Property, AllowMultiple = true)]
|
|
||||||
public class ViewModelPropertyAttribute : Attribute
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Название на форме
|
|
||||||
/// </summary>
|
|
||||||
public string DisplayName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Скрывать или нет
|
|
||||||
/// </summary>
|
|
||||||
public bool IsHide { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ширина колонки
|
|
||||||
/// </summary>
|
|
||||||
public int ColumnWidth { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Конструктор
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="displayName">Название на форме</param>
|
|
||||||
/// <param name="isHide">Скрывать или нет</param>
|
|
||||||
/// <param name="columnWidth">Ширина колонки</param>
|
|
||||||
public ViewModelPropertyAttribute(string displayName, int columnWidth, bool isHide = false)
|
|
||||||
{
|
|
||||||
DisplayName = displayName;
|
|
||||||
ColumnWidth = columnWidth;
|
|
||||||
IsHide = isHide;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,20 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace CommonTools.BindingModels
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Информация для доступа к выполнению операций
|
|
||||||
/// </summary>
|
|
||||||
public class AccessBindingModel
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Пропускать проверку (работает только для получения данных)
|
|
||||||
/// </summary>
|
|
||||||
public bool SkipCheck { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Идентификатор пользователя, который запрашивает выполнение операции
|
|
||||||
/// </summary>
|
|
||||||
public Guid? UserId { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace CommonTools.BindingModels
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Получение записи по идентификатору
|
|
||||||
/// </summary>
|
|
||||||
public class GetBinidingModel : AccessBindingModel
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Идентификатор получаемой записи
|
|
||||||
/// </summary>
|
|
||||||
public Guid? Id { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
namespace CommonTools.BindingModels
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Пагинация для получения записей
|
|
||||||
/// </summary>
|
|
||||||
public class PageSettingBinidingModel : AccessBindingModel
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Номер страницы, которую получаем
|
|
||||||
/// </summary>
|
|
||||||
public int? PageNumber { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Количество записей возвращаемых
|
|
||||||
/// </summary>
|
|
||||||
public int? PageSize { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Иной признак, по которму отбираем записи
|
|
||||||
/// </summary>
|
|
||||||
public string PageName { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace CommonTools.BindingModels
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Сохранение записи по идентификатору
|
|
||||||
/// </summary>
|
|
||||||
public class SetBinidingModel : AccessBindingModel
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Идентификатор записи
|
|
||||||
/// </summary>
|
|
||||||
public Guid Id { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net5.0</TargetFramework>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,38 +0,0 @@
|
|||||||
namespace CommonTools.Enums
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Статус результата операции
|
|
||||||
/// </summary>
|
|
||||||
public enum ResultServiceStatusCode
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Успешно
|
|
||||||
/// </summary>
|
|
||||||
Success = 200,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ошибка общая
|
|
||||||
/// </summary>
|
|
||||||
Error = 400,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Элемент уже сущствует
|
|
||||||
/// </summary>
|
|
||||||
ExsistItem = 401,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Запись удалена
|
|
||||||
/// </summary>
|
|
||||||
WasDelete = 402,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Не найдено
|
|
||||||
/// </summary>
|
|
||||||
NotFound = 404,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Не найден файл
|
|
||||||
/// </summary>
|
|
||||||
FileNotFound = 405
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,66 +0,0 @@
|
|||||||
using CommonTools.Enums;
|
|
||||||
using CommonTools.OperationResultModels;
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace CommonTools.Extensions
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Расширения для результата операции
|
|
||||||
/// </summary>
|
|
||||||
public static class OperationResultExtensions
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Добавление простой ошибки
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <param name="key"></param>
|
|
||||||
/// <param name="value"></param>
|
|
||||||
public static void AddError(this OperationResultModel model, string key, string value) => model.AddError(key, value, ResultServiceStatusCode.Error);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Добавление простой ошибки со сменой статуса
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <param name="key"></param>
|
|
||||||
/// <param name="error"></param>
|
|
||||||
/// <param name="statusCode"></param>
|
|
||||||
public static void AddError(this OperationResultModel model, string key, string error, ResultServiceStatusCode statusCode)
|
|
||||||
{
|
|
||||||
model.Errors.Add((key, error));
|
|
||||||
model.StatusCode = statusCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Добавление ошибки
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <param name="error"></param>
|
|
||||||
public static void AddError(this OperationResultModel model, Exception error) => model.AddError(error, ResultServiceStatusCode.Error);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Добавление ошибки
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <param name="error"></param>
|
|
||||||
/// <param name="statusCode"></param>
|
|
||||||
public static void AddError(this OperationResultModel model, Exception error, ResultServiceStatusCode statusCode) => model.AddError("Ошибка", error, statusCode);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Добавление ошибки (включая вложеннные)
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <param name="key"></param>
|
|
||||||
/// <param name="error"></param>
|
|
||||||
/// <param name="statusCode"></param>
|
|
||||||
public static void AddError(this OperationResultModel model, string key, Exception error, ResultServiceStatusCode statusCode)
|
|
||||||
{
|
|
||||||
model.Errors.Add((key, error.Message));
|
|
||||||
while (error.InnerException != null)
|
|
||||||
{
|
|
||||||
error = error.InnerException;
|
|
||||||
model.Errors.Add(("Inner error:", error.Message));
|
|
||||||
}
|
|
||||||
model.StatusCode = statusCode;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,41 +0,0 @@
|
|||||||
using CommonTools.Enums;
|
|
||||||
using CommonTools.ViewModels;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace CommonTools.OperationResultModels
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Результат любой операции
|
|
||||||
/// </summary>
|
|
||||||
public class OperationResultModel
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Успешность операции (количество ошибок = 0)
|
|
||||||
/// </summary>
|
|
||||||
public bool IsSucceeded => Errors.Count == 0;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Статус операции
|
|
||||||
/// </summary>
|
|
||||||
public ResultServiceStatusCode StatusCode { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Спсиок ошибок
|
|
||||||
/// </summary>
|
|
||||||
public List<(string Title, string Message)> Errors { get; private set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Объект, получаемый по результатам операции
|
|
||||||
/// </summary>
|
|
||||||
public object Result { get; private set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Конструктор по умолчанию
|
|
||||||
/// </summary>
|
|
||||||
public OperationResultModel()
|
|
||||||
{
|
|
||||||
Errors = new List<(string Title, string Message)>();
|
|
||||||
StatusCode = ResultServiceStatusCode.Success;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
using CommonTools.Attributes;
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace CommonTools.ViewModels
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Возвращаемая запись
|
|
||||||
/// </summary>
|
|
||||||
public class ElementViewModel
|
|
||||||
{
|
|
||||||
[ViewModelProperty("Идентификатор", 1, true)]
|
|
||||||
public Guid Id { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace CommonTools.ViewModels
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Список возвращаемых значений
|
|
||||||
/// </summary>
|
|
||||||
/// <typeparam name="T"></typeparam>
|
|
||||||
public class ListViewModel<T>
|
|
||||||
where T : ElementViewModel
|
|
||||||
{
|
|
||||||
public int MaxCount { get; set; }
|
|
||||||
|
|
||||||
public List<T> List { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -5,7 +5,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\ModuleTools\ModuleTools.csproj" />
|
<ProjectReference Include="..\ToolsModule\ToolsModule.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using CoreModels.Enums.Department;
|
using CoreModels.Enums.Department;
|
||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using CoreModels.Enums.Department;
|
using CoreModels.Enums.Department;
|
||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using CoreModels.Enums.Department;
|
using CoreModels.Enums.Department;
|
||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using CoreModels.Enums.Department;
|
using CoreModels.Enums.Department;
|
||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using CoreModels.Enums.Department;
|
using CoreModels.Enums.Department;
|
||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using CoreModels.Enums.Department;
|
using CoreModels.Enums.Department;
|
||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using CoreModels.Enums.Department;
|
using CoreModels.Enums.Department;
|
||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using CoreModels.Enums.Department;
|
using CoreModels.Enums.Department;
|
||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsDepartment
|
namespace CoreModels.ModelsDepartment
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using ModuleTools.Enums;
|
using ToolsModule.Enums;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsSecurity
|
namespace CoreModels.ModelsSecurity
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
|
|
||||||
namespace CoreModels.ModelsSecurity
|
namespace CoreModels.ModelsSecurity
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
|
|
||||||
namespace CoreModels.ModelsSecurity
|
namespace CoreModels.ModelsSecurity
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsSecurity
|
namespace CoreModels.ModelsSecurity
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.Tools;
|
using CoreModels.Tools;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace CoreModels.ModelsSecurity
|
namespace CoreModels.ModelsSecurity
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
using DatabaseCore.Models;
|
using DatabaseCore.Models;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using ModuleTools.BindingModels;
|
using ToolsModule.BindingModels;
|
||||||
using ModuleTools.BusinessLogics;
|
using ToolsModule.BusinessLogics;
|
||||||
using ModuleTools.Enums;
|
using ToolsModule.Enums;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using ModuleTools.Models;
|
using ToolsModule.Models;
|
||||||
using ModuleTools.ViewModels;
|
using ToolsModule.ViewModels;
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ namespace DatabaseCore
|
|||||||
if (optionsBuilder.IsConfigured == false)
|
if (optionsBuilder.IsConfigured == false)
|
||||||
{
|
{
|
||||||
#if RELEASE
|
#if RELEASE
|
||||||
var connectionString = ModuleTools.ServiceProvider.ServiceProviderLoader.GetConfigData("connectionString");
|
var connectionString = ToolsModule.ServiceProvider.ServiceProviderLoader.GetConfigData("connectionString");
|
||||||
optionsBuilder.UseSqlServer(connectionString);
|
optionsBuilder.UseSqlServer(connectionString);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\CoreModels\CoreModels.csproj" />
|
<ProjectReference Include="..\CoreModels\CoreModels.csproj" />
|
||||||
<ProjectReference Include="..\ModuleTools\ModuleTools.csproj" />
|
<ProjectReference Include="..\ToolsModule\ToolsModule.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using CoreModels.Enums.Department;
|
using CoreModels.Enums.Department;
|
||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Runtime.Serialization;
|
using System.Runtime.Serialization;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using CoreModels.Enums.Department;
|
using CoreModels.Enums.Department;
|
||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Runtime.Serialization;
|
using System.Runtime.Serialization;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using CoreModels.Enums.Department;
|
using CoreModels.Enums.Department;
|
||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using DatabaseCore.Models.Security;
|
using DatabaseCore.Models.Security;
|
||||||
using ModuleTools.Extensions;
|
using ToolsModule.Extensions;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.Runtime.Serialization;
|
using System.Runtime.Serialization;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using DatabaseCore.Models.Security;
|
using DatabaseCore.Models.Security;
|
||||||
using ModuleTools.Extensions;
|
using ToolsModule.Extensions;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Runtime.Serialization;
|
using System.Runtime.Serialization;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using CoreModels.Enums.Department;
|
using CoreModels.Enums.Department;
|
||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using CoreModels.Enums.Department;
|
using CoreModels.Enums.Department;
|
||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Runtime.Serialization;
|
using System.Runtime.Serialization;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Runtime.Serialization;
|
using System.Runtime.Serialization;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using System.Runtime.Serialization;
|
using System.Runtime.Serialization;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
using CoreModels.Enums.Department;
|
using CoreModels.Enums.Department;
|
||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using DatabaseCore.Models.Security;
|
using DatabaseCore.Models.Security;
|
||||||
using ModuleTools.Extensions;
|
using ToolsModule.Extensions;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using CoreModels.Enums.Department;
|
using CoreModels.Enums.Department;
|
||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using CoreModels.Enums.Department;
|
using CoreModels.Enums.Department;
|
||||||
using CoreModels.ModelsDepartment;
|
using CoreModels.ModelsDepartment;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using System;
|
using System;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using System.Runtime.Serialization;
|
using System.Runtime.Serialization;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using CoreModels.ModelsSecurity;
|
using CoreModels.ModelsSecurity;
|
||||||
using ModuleTools.Enums;
|
using ToolsModule.Enums;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Runtime.Serialization;
|
using System.Runtime.Serialization;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.ModelsSecurity;
|
using CoreModels.ModelsSecurity;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Runtime.Serialization;
|
using System.Runtime.Serialization;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.ModelsSecurity;
|
using CoreModels.ModelsSecurity;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using CoreModels.ModelsSecurity;
|
using CoreModels.ModelsSecurity;
|
||||||
using DatabaseCore.Models.Department;
|
using DatabaseCore.Models.Department;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using CoreModels.ModelsSecurity;
|
using CoreModels.ModelsSecurity;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.Runtime.Serialization;
|
using System.Runtime.Serialization;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using DatabaseCore.Models.Security;
|
using DatabaseCore.Models.Security;
|
||||||
using ModuleTools.Enums;
|
using ToolsModule.Enums;
|
||||||
using ModuleTools.Interfaces;
|
using ToolsModule.Interfaces;
|
||||||
using ModuleTools.Models;
|
using ToolsModule.Models;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using DesktopTools.Interfaces;
|
using DesktopTools.Interfaces;
|
||||||
using ModuleTools.Extensions;
|
using ToolsModule.Extensions;
|
||||||
using System;
|
using System;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using DesktopTools.Interfaces;
|
using DesktopTools.Interfaces;
|
||||||
using ModuleTools.Extensions;
|
using ToolsModule.Extensions;
|
||||||
using System;
|
using System;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using DesktopTools.Interfaces;
|
using DesktopTools.Interfaces;
|
||||||
using ModuleTools.Extensions;
|
using ToolsModule.Extensions;
|
||||||
using System;
|
using System;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using DesktopTools.Interfaces;
|
using DesktopTools.Interfaces;
|
||||||
using ModuleTools.Extensions;
|
using ToolsModule.Extensions;
|
||||||
using System;
|
using System;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using DesktopTools.Interfaces;
|
using DesktopTools.Interfaces;
|
||||||
using ModuleTools.Extensions;
|
using ToolsModule.Extensions;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\ModuleTools\ModuleTools.csproj" />
|
<ProjectReference Include="..\ToolsModule\ToolsModule.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using DesktopTools.Models;
|
using DesktopTools.Models;
|
||||||
using ModuleTools.Enums;
|
using ToolsModule.Enums;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace DesktopTools.Interfaces
|
namespace DesktopTools.Interfaces
|
||||||
|
@ -3,12 +3,12 @@ using DesktopTools.Enums;
|
|||||||
using DesktopTools.Helpers;
|
using DesktopTools.Helpers;
|
||||||
using DesktopTools.Interfaces;
|
using DesktopTools.Interfaces;
|
||||||
using DesktopTools.Models;
|
using DesktopTools.Models;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using ModuleTools.BindingModels;
|
using ToolsModule.BindingModels;
|
||||||
using ModuleTools.BusinessLogics;
|
using ToolsModule.BusinessLogics;
|
||||||
using ModuleTools.Enums;
|
using ToolsModule.Enums;
|
||||||
using ModuleTools.Extensions;
|
using ToolsModule.Extensions;
|
||||||
using ModuleTools.ViewModels;
|
using ToolsModule.ViewModels;
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
using DesktopTools.Helpers;
|
using DesktopTools.Helpers;
|
||||||
using DesktopTools.Interfaces;
|
using DesktopTools.Interfaces;
|
||||||
using DesktopTools.Models;
|
using DesktopTools.Models;
|
||||||
using ModuleTools.Attributes;
|
using ToolsModule.Attributes;
|
||||||
using ModuleTools.BindingModels;
|
using ToolsModule.BindingModels;
|
||||||
using ModuleTools.BusinessLogics;
|
using ToolsModule.BusinessLogics;
|
||||||
using ModuleTools.Enums;
|
using ToolsModule.Enums;
|
||||||
using ModuleTools.Extensions;
|
using ToolsModule.Extensions;
|
||||||
using ModuleTools.ViewModels;
|
using ToolsModule.ViewModels;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using DesktopTools.Interfaces;
|
using DesktopTools.Interfaces;
|
||||||
using DesktopTools.Models;
|
using DesktopTools.Models;
|
||||||
using ModuleTools.Enums;
|
using ToolsModule.Enums;
|
||||||
using System;
|
using System;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using DesktopTools.Interfaces;
|
using DesktopTools.Interfaces;
|
||||||
using DesktopTools.Models;
|
using DesktopTools.Models;
|
||||||
using ModuleTools.Enums;
|
using ToolsModule.Enums;
|
||||||
using System;
|
using System;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace ModelTools.Attributes
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Оописание зависимости сущности от другой сущности (требуется для выстраивания последоватльности сохранения и загрузки данных,
|
|
||||||
/// применяется к классам-описывающим сущности в хранилище)
|
|
||||||
/// </summary>
|
|
||||||
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
|
|
||||||
public class EntityDependencyAttribute : Attribute
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Название класса от котрого зависит этот класс
|
|
||||||
/// </summary>
|
|
||||||
public string ClassName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Название поле в этом классе, которое ссылает на другой класс (идентификатор)
|
|
||||||
/// </summary>
|
|
||||||
public string ColumnName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Описание зависимости
|
|
||||||
/// </summary>
|
|
||||||
public string Description { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Описание зависимости сущности от другой сущности (требуется для сохранения и загрузки данных)
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="className">Название класса от котрого зависит этот класс</param>
|
|
||||||
/// <param name="columnName">Название поле в этом классе, которое ссылает на другой класс (идентификатор)</param>
|
|
||||||
/// <param name="description">Описание зависимости</param>
|
|
||||||
public EntityDependencyAttribute(string className, string columnName, string description)
|
|
||||||
{
|
|
||||||
ClassName = className;
|
|
||||||
ColumnName = columnName;
|
|
||||||
Description = description;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,33 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace ModelTools.Attributes
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Оописание класса из базы данных, его назначение (требуется для выстраивания иерархии с описанием классов,
|
|
||||||
/// применяется к классам-описывающим сущности в хранилище)
|
|
||||||
/// </summary>
|
|
||||||
[AttributeUsage(AttributeTargets.Class)]
|
|
||||||
public class EntityDescriptionAttribute : Attribute
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Название сущности, которую описывает класс
|
|
||||||
/// </summary>
|
|
||||||
public string EntityName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Описание назначения сущности
|
|
||||||
/// </summary>
|
|
||||||
public string Description { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Описание класса из базы данных, его назначение
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="entityName">Название сущности, которую описывает класс</param>
|
|
||||||
/// <param name="description">Описание назначения сущности</param>
|
|
||||||
public EntityDescriptionAttribute(string entityName, string description)
|
|
||||||
{
|
|
||||||
EntityName = entityName;
|
|
||||||
Description = description;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,35 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace ModelTools.Attributes
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Настройка для полей сущности правил маппинга в классе, который требуется заполнять данными из другого класса
|
|
||||||
/// (требуется для заполнения свойств объекта значениями одного класса значениями свойств объектов другого класса,
|
|
||||||
/// применяется при создании класса-описывающего сущность в хранилище из класса SetBindingModel
|
|
||||||
/// и из класса-описывающего сущность в хранилище в класс ElementViewModel)
|
|
||||||
/// </summary>
|
|
||||||
[AttributeUsage(AttributeTargets.Property)]
|
|
||||||
public class MapConfigurationAttribute : Attribute
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Название свойства с класса, из которого извлекаем данные
|
|
||||||
/// </summary>
|
|
||||||
public string PropertyNameFromModel { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Сложное свойство (свойствое в другом классе-свойстве)
|
|
||||||
/// </summary>
|
|
||||||
public bool IsDifficle { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Настройка для полей сущности правил маппинга
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="propertyNameFromMModel">Название свойства с класса, из которого извлекаем данные</param>
|
|
||||||
/// <param name="isDifficle">Сложное свойство (свойствое в другом классе-свойстве)</param>
|
|
||||||
public MapConfigurationAttribute(string propertyNameFromMModel, bool isDifficle = false)
|
|
||||||
{
|
|
||||||
PropertyNameFromModel = propertyNameFromMModel;
|
|
||||||
IsDifficle = isDifficle;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,51 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace ModelTools.Attributes
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Настройка отображения свойства класса при табличном выводе списка объектов класса (требуется для автоматизации вывода списка,
|
|
||||||
/// применяется к классам ElementViewModel)
|
|
||||||
/// </summary>
|
|
||||||
[AttributeUsage(AttributeTargets.Property)]
|
|
||||||
public class ViewModelOnListPropertyAttribute : Attribute
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Название на форме
|
|
||||||
/// </summary>
|
|
||||||
public string DisplayName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Скрывать или нет при выводе списка
|
|
||||||
/// </summary>
|
|
||||||
public bool IsHide { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ширина колонки
|
|
||||||
/// </summary>
|
|
||||||
public int? ColumnWidth { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Настройка отображения элемента в контролах
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="displayName">Название на форме</param>
|
|
||||||
/// <param name="isHide">Скрывать или нет</param>
|
|
||||||
public ViewModelOnListPropertyAttribute(string displayName, bool isHide = false)
|
|
||||||
{
|
|
||||||
DisplayName = displayName;
|
|
||||||
ColumnWidth = null;
|
|
||||||
IsHide = isHide;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Конструктор
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="displayName">Название на форме</param>
|
|
||||||
/// <param name="columnWidth">Ширина колонки</param>
|
|
||||||
public ViewModelOnListPropertyAttribute(string displayName, int columnWidth)
|
|
||||||
{
|
|
||||||
DisplayName = displayName;
|
|
||||||
ColumnWidth = columnWidth;
|
|
||||||
IsHide = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,20 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace ModelTools.BindingModels
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Информация для доступа к выполнению операций
|
|
||||||
/// </summary>
|
|
||||||
public class AccessBindingModel
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Пропускать проверку (работает только для получения данных)
|
|
||||||
/// </summary>
|
|
||||||
public bool SkipCheck { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Идентификатор пользователя, который запрашивает выполнение операции
|
|
||||||
/// </summary>
|
|
||||||
public Guid? UserId { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace ModelTools.BindingModels
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Получение записи
|
|
||||||
/// </summary>
|
|
||||||
public class GetBindingModel : AccessBindingModel
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Идентификатор получаемой записи (для одной записи)
|
|
||||||
/// </summary>
|
|
||||||
public Guid? Id { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Номер страницы, которую получаем (для списка)
|
|
||||||
/// </summary>
|
|
||||||
public int? PageNumber { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Количество записей возвращаемых (для списка)
|
|
||||||
/// </summary>
|
|
||||||
public int? PageSize { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Иной признак, по которму отбираем записи (для списка)
|
|
||||||
/// </summary>
|
|
||||||
public string PageName { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace ModelTools.BindingModels
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Сохранение записи по идентификатору
|
|
||||||
/// </summary>
|
|
||||||
public class SetBindingModel : AccessBindingModel
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Идентификатор записи
|
|
||||||
/// </summary>
|
|
||||||
public Guid Id { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,226 +0,0 @@
|
|||||||
using ModelTools.BindingModels;
|
|
||||||
using ModelTools.Enums;
|
|
||||||
using ModelTools.Interfaces;
|
|
||||||
using ModelTools.Models;
|
|
||||||
using ModelTools.ViewModels;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace ModelTools.BusinessLogics
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Базовый класс для логики сущности
|
|
||||||
/// </summary>
|
|
||||||
/// <typeparam name="G"></typeparam>
|
|
||||||
/// <typeparam name="S"></typeparam>
|
|
||||||
/// <typeparam name="L"></typeparam>
|
|
||||||
/// <typeparam name="E"></typeparam>
|
|
||||||
public abstract class BusinessLogicCore<G, S, L, E>
|
|
||||||
where G : GetBindingModel
|
|
||||||
where S : SetBindingModel
|
|
||||||
where L : ListViewModel<E>
|
|
||||||
where E : ElementViewModel
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Перечень ошибок при выполнении операции
|
|
||||||
/// </summary>
|
|
||||||
public List<(string Title, string Message)> Errors { get; protected set; }
|
|
||||||
|
|
||||||
protected IEntityService<G, S> Service { get; set; }
|
|
||||||
|
|
||||||
protected ISecurityManager Security { get; set; }
|
|
||||||
|
|
||||||
protected readonly AccessOperation _serviceOperation;
|
|
||||||
|
|
||||||
protected readonly string _entity;
|
|
||||||
|
|
||||||
public BusinessLogicCore(IEntityService<G, S> service, string entity, AccessOperation serviceOperation)
|
|
||||||
{
|
|
||||||
Service = service;
|
|
||||||
Errors = new List<(string Title, string Message)>();
|
|
||||||
Security = UnityContainerConfigurator.Resolve<ISecurityManager>();
|
|
||||||
_entity = entity;
|
|
||||||
_serviceOperation = serviceOperation;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Проверка доступности операции для пользователя
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <param name="type"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
protected bool NoAccess(AccessBindingModel model, AccessType type)
|
|
||||||
{
|
|
||||||
if (Security.CheckAccess(new SecurityManagerCheckAccessModel(model, _serviceOperation, type, _entity)))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
Errors.Add(("Ошибка безопасности", Security.ErrorMessage));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Получение списка записей
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public L GetList(G model)
|
|
||||||
{
|
|
||||||
Errors.Clear();
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (NoAccess(model, AccessType.SimpleView) && NoAccess(model, AccessType.FullView))
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
var result = Service.Read(model);
|
|
||||||
if (!result.IsSucceeded)
|
|
||||||
{
|
|
||||||
Errors.AddRange(Errors);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ConvertToL(result);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Errors.Add(("Ошибка получения", ex.Message));
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Получение записи
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public E GetElement(G model)
|
|
||||||
{
|
|
||||||
Errors.Clear();
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (NoAccess(model, AccessType.SimpleView) && NoAccess(model, AccessType.FullView))
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
var result = Service.Read(model);
|
|
||||||
if (!result.IsSucceeded)
|
|
||||||
{
|
|
||||||
Errors.AddRange(Errors);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return ConvertToE(result);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Errors.Add(("Ошибка получения", ex.Message));
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Создание записи
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public E Create(S model)
|
|
||||||
{
|
|
||||||
Errors.Clear();
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (NoAccess(model, AccessType.Change))
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
var result = Service.Create(model);
|
|
||||||
if (!result.IsSucceeded)
|
|
||||||
{
|
|
||||||
Errors.AddRange(Errors);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ConvertToE(result);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Errors.Add(("Ошибка создания", ex.Message));
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Изменение записи
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public E Update(S model)
|
|
||||||
{
|
|
||||||
Errors.Clear();
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (NoAccess(model, AccessType.Change))
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
var result = Service.Update(model);
|
|
||||||
if (!result.IsSucceeded)
|
|
||||||
{
|
|
||||||
Errors.AddRange(Errors);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ConvertToE(result);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Errors.Add(("Ошибка изменения", ex.Message));
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Удаление записи
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public bool Delete(G model)
|
|
||||||
{
|
|
||||||
Errors.Clear();
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (NoAccess(model, AccessType.Delete))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
var result = Service.Delete(model);
|
|
||||||
if (!result.IsSucceeded)
|
|
||||||
{
|
|
||||||
Errors.AddRange(Errors);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Errors.Add(("Ошибка удаления", ex.Message));
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Получить список элементов
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
protected abstract L ConvertToL(OperationResultModel model);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Получить элемент
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
protected abstract E ConvertToE(OperationResultModel model);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,100 +0,0 @@
|
|||||||
using ModelTools.Attributes;
|
|
||||||
using System;
|
|
||||||
using System.Reflection;
|
|
||||||
|
|
||||||
namespace ModelTools.BusinessLogics
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Маппер сущностей
|
|
||||||
/// </summary>
|
|
||||||
public class Mapper
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Преобразование из одного класса в другой
|
|
||||||
/// </summary>
|
|
||||||
/// <typeparam name="From"></typeparam>
|
|
||||||
/// <typeparam name="To"></typeparam>
|
|
||||||
/// <param name="obj"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public static To MapToClass<From, To>(From obj) where To : class => FillObject(obj, (To)Activator.CreateInstance(typeof(To)));
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Преобразование из одного класса в другой
|
|
||||||
/// </summary>
|
|
||||||
/// <typeparam name="From"></typeparam>
|
|
||||||
/// <typeparam name="To"></typeparam>
|
|
||||||
/// <param name="obj"></param>
|
|
||||||
/// <param name="newObject"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public static To MapToClass<From, To>(From obj, To newObject) where To : class => FillObject(obj, newObject);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Заполнение объекта
|
|
||||||
/// </summary>
|
|
||||||
/// <typeparam name="From"></typeparam>
|
|
||||||
/// <typeparam name="To"></typeparam>
|
|
||||||
/// <param name="obj"></param>
|
|
||||||
/// <param name="newObject"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
private static To FillObject<From, To>(From obj, To newObject)
|
|
||||||
where To : class
|
|
||||||
{
|
|
||||||
if (obj == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (newObject == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
var typeFrom = typeof(From);
|
|
||||||
var typeTo = typeof(To);
|
|
||||||
var properties = typeTo.GetProperties();
|
|
||||||
foreach (var property in properties)
|
|
||||||
{
|
|
||||||
var customAttribute = property.GetCustomAttribute<MapConfigurationAttribute>();
|
|
||||||
if (customAttribute != null)
|
|
||||||
{
|
|
||||||
object value = obj;
|
|
||||||
if (customAttribute.IsDifficle)
|
|
||||||
{
|
|
||||||
var props = customAttribute.PropertyNameFromModel.Split('.');
|
|
||||||
foreach (var prop in props)
|
|
||||||
{
|
|
||||||
var bindingProperty = value.GetType().GetProperty(prop);
|
|
||||||
if (bindingProperty != null)
|
|
||||||
{
|
|
||||||
value = bindingProperty.GetValue(value);
|
|
||||||
if (value is null)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
value = null;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var bindingProperty = typeFrom.GetProperty(customAttribute.PropertyNameFromModel);
|
|
||||||
if (bindingProperty != null)
|
|
||||||
{
|
|
||||||
value = bindingProperty.GetValue(obj);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (value is null)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
property.SetValue(newObject, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return newObject;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,112 +0,0 @@
|
|||||||
using ModelTools.Extensions;
|
|
||||||
using ModelTools.Interfaces;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Xml.XPath;
|
|
||||||
|
|
||||||
namespace ModelTools.BusinessLogics
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Загрузчик данных
|
|
||||||
/// </summary>
|
|
||||||
public static class ServiceProviderLoader
|
|
||||||
{
|
|
||||||
private static readonly string _configFileName = "DepartmentPortal.config";
|
|
||||||
|
|
||||||
private static readonly string _pathToImplementationExt = "..\\..\\..\\..\\ImplementationExtensions\\";
|
|
||||||
|
|
||||||
private static readonly string _pathToWindowDestopExt = "..\\..\\..\\..\\WindowDestopExtensions\\";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Получение данных с файла настроек
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="key"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public static string GetConfigData(string key)
|
|
||||||
{
|
|
||||||
var fileName = GetFile(_configFileName);
|
|
||||||
if (!File.Exists(fileName))
|
|
||||||
{
|
|
||||||
return string.Empty;
|
|
||||||
}
|
|
||||||
|
|
||||||
var doc = new XPathDocument(fileName);
|
|
||||||
var nav = doc.CreateNavigator();
|
|
||||||
var data = nav.SelectDescendants(key, "", false);
|
|
||||||
data.MoveNext();
|
|
||||||
return data.Current.Value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Загрузка всех классов-реализаций IImplementationExtension
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
public static List<IImplementationExtension> GetImplementationExtensions()
|
|
||||||
{
|
|
||||||
var list = new List<IImplementationExtension>();
|
|
||||||
if(Directory.Exists(_pathToImplementationExt))
|
|
||||||
{
|
|
||||||
var files = Directory.GetFiles(_pathToImplementationExt, "*.dll", SearchOption.AllDirectories);
|
|
||||||
var loadedFiles = new List<string>();
|
|
||||||
foreach(var file in files.Distinct())
|
|
||||||
{
|
|
||||||
if(loadedFiles.Contains(file.GetFileName()))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
Assembly asm = Assembly.LoadFrom(file);
|
|
||||||
foreach (var t in asm.GetExportedTypes())
|
|
||||||
{
|
|
||||||
if (t.IsClass && typeof(IImplementationExtension).IsAssignableFrom(t))
|
|
||||||
{
|
|
||||||
list.Add((IImplementationExtension)Activator.CreateInstance(t));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
loadedFiles.Add(file.GetFileName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Загрузка всех классов-реализаций IWindowDesktopExtension
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
public static List<IWindowDesktopExtension> GetWindowDesktopExtensions()
|
|
||||||
{
|
|
||||||
var list = new List<IWindowDesktopExtension>();
|
|
||||||
if (Directory.Exists(_pathToWindowDestopExt))
|
|
||||||
{
|
|
||||||
var files = Directory.GetFiles(_pathToWindowDestopExt, "*.dll", SearchOption.AllDirectories);
|
|
||||||
var loadedFiles = new List<string>();
|
|
||||||
foreach (var file in files.Distinct())
|
|
||||||
{
|
|
||||||
if (loadedFiles.Contains(file.GetFileName()))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
Assembly asm = Assembly.LoadFrom(file);
|
|
||||||
foreach (var t in asm.GetExportedTypes())
|
|
||||||
{
|
|
||||||
if (t.IsClass && typeof(IWindowDesktopExtension).IsAssignableFrom(t))
|
|
||||||
{
|
|
||||||
list.Add((IWindowDesktopExtension)Activator.CreateInstance(t));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
loadedFiles.Add(file.GetFileName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Получение имени файла
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="fileName"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
private static string GetFile(string fileName) => Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), fileName);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,54 +0,0 @@
|
|||||||
using System;
|
|
||||||
using Unity;
|
|
||||||
using Unity.Lifetime;
|
|
||||||
|
|
||||||
namespace ModelTools.BusinessLogics
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Работа с UnityContainer
|
|
||||||
/// </summary>
|
|
||||||
public class UnityContainerConfigurator
|
|
||||||
{
|
|
||||||
private static IUnityContainer _unityContainer;
|
|
||||||
|
|
||||||
public static IUnityContainer Container
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (_unityContainer == null) _unityContainer = new UnityContainer();
|
|
||||||
return _unityContainer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Инициализация сервисов
|
|
||||||
/// </summary>
|
|
||||||
public static void InitServices()
|
|
||||||
{
|
|
||||||
var ext = ServiceProviderLoader.GetImplementationExtensions();
|
|
||||||
if (ext.Count == 0)
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException("Отсутствуют компоненты для загрузки зависимостей по модулям");
|
|
||||||
}
|
|
||||||
// регистрируем в UnityContainaer зависимости
|
|
||||||
foreach (var e in ext)
|
|
||||||
{
|
|
||||||
e.RegisterServices();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Добавление зависимости
|
|
||||||
/// </summary>
|
|
||||||
/// <typeparam name="T"></typeparam>
|
|
||||||
/// <typeparam name="U"></typeparam>
|
|
||||||
public static void PublishService<T, U>() where U : T => Container.RegisterType<T, U>(new HierarchicalLifetimeManager());
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Получение класса со всеми зависмостями
|
|
||||||
/// </summary>
|
|
||||||
/// <typeparam name="T"></typeparam>
|
|
||||||
/// <returns></returns>
|
|
||||||
public static T Resolve<T>() => Container.Resolve<T>();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,100 +0,0 @@
|
|||||||
namespace ModelTools.Enums
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Операции в системе
|
|
||||||
/// </summary>
|
|
||||||
public enum AccessOperation
|
|
||||||
{
|
|
||||||
#region Администрирование
|
|
||||||
Администрирование = 0,
|
|
||||||
|
|
||||||
Роли = 1,
|
|
||||||
|
|
||||||
Доступы = 2,
|
|
||||||
|
|
||||||
Пользователи = 3,
|
|
||||||
|
|
||||||
НастройкиСреды = 4,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region База
|
|
||||||
Кафедра = 100,
|
|
||||||
|
|
||||||
Аудитории = 101,
|
|
||||||
|
|
||||||
Направления = 102,
|
|
||||||
|
|
||||||
Преподаватели = 103, // + должности, звания
|
|
||||||
|
|
||||||
Дисциплины = 104, // + Блоки дисциплин
|
|
||||||
|
|
||||||
Группы = 105, //
|
|
||||||
|
|
||||||
Студенты = 106,
|
|
||||||
|
|
||||||
Приказы_студентов = 107,
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
// Меню Учебный процесс
|
|
||||||
Учебный_процесс = 150,
|
|
||||||
|
|
||||||
Учебные_планы = 120,
|
|
||||||
|
|
||||||
Виды_нагрузок = 121,
|
|
||||||
|
|
||||||
Учебные_года = 122,
|
|
||||||
|
|
||||||
Даты_семестра = 126,
|
|
||||||
|
|
||||||
Контингент = 123,
|
|
||||||
|
|
||||||
Нормы_времени = 124,
|
|
||||||
|
|
||||||
Расчет_штатов = 125,
|
|
||||||
|
|
||||||
Расчасовки = 127,
|
|
||||||
|
|
||||||
Преподавательская_ставка = 128,
|
|
||||||
|
|
||||||
Индивидуальный_план = 130,
|
|
||||||
|
|
||||||
// Меню Расписание
|
|
||||||
Расписание = 200,
|
|
||||||
|
|
||||||
Расписание_аудитории = 201,
|
|
||||||
|
|
||||||
Расписание_группы = 202,
|
|
||||||
|
|
||||||
Расписание_преподаватели = 203,
|
|
||||||
|
|
||||||
Расписание_настройки = 204,
|
|
||||||
|
|
||||||
Расписание_интервалы_пар = 205,
|
|
||||||
|
|
||||||
Расписание_дисциплины = 206,
|
|
||||||
|
|
||||||
// Меню Сервис
|
|
||||||
Сервис = 300,
|
|
||||||
|
|
||||||
Генерация_билетов = 301,
|
|
||||||
|
|
||||||
// Меню зав лаб
|
|
||||||
ЗавЛабораторией = 400,
|
|
||||||
|
|
||||||
МатериальноТехническиеЦенности = 401,
|
|
||||||
|
|
||||||
УстановленоеПО = 402,
|
|
||||||
|
|
||||||
// Экзамены - составление билетов и проведение
|
|
||||||
СоставлениеЭкзаменов = 500,
|
|
||||||
|
|
||||||
Ведомости = 501,
|
|
||||||
|
|
||||||
ШаблоныБилетов = 502,
|
|
||||||
|
|
||||||
// Web-портал
|
|
||||||
Новости = 600,
|
|
||||||
|
|
||||||
Комментарии = 601
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,28 +0,0 @@
|
|||||||
namespace ModelTools.Enums
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Тип операции
|
|
||||||
/// </summary>
|
|
||||||
public enum AccessType : int
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Простой просомтр
|
|
||||||
/// </summary>
|
|
||||||
SimpleView = 1,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Полный просомтр
|
|
||||||
/// </summary>
|
|
||||||
FullView = 2,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Добавление/Изменение
|
|
||||||
/// </summary>
|
|
||||||
Change = 4,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Удаление
|
|
||||||
/// </summary>
|
|
||||||
Delete = 8
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,38 +0,0 @@
|
|||||||
namespace ModelTools.Enums
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Статус результата операции
|
|
||||||
/// </summary>
|
|
||||||
public enum ResultServiceStatusCode
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Успешно
|
|
||||||
/// </summary>
|
|
||||||
Success = 200,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ошибка общая
|
|
||||||
/// </summary>
|
|
||||||
Error = 400,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Элемент уже сущствует
|
|
||||||
/// </summary>
|
|
||||||
ExsistItem = 401,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Запись удалена
|
|
||||||
/// </summary>
|
|
||||||
WasDelete = 402,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Не найдено
|
|
||||||
/// </summary>
|
|
||||||
NotFound = 404,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Не найден файл
|
|
||||||
/// </summary>
|
|
||||||
FileNotFound = 405
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,41 +0,0 @@
|
|||||||
using ModelTools.BindingModels;
|
|
||||||
using ModelTools.Models;
|
|
||||||
|
|
||||||
namespace ModelTools.Interfaces
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Описание логики для хранилища сущности
|
|
||||||
/// </summary>
|
|
||||||
public interface IEntityService<G, S>
|
|
||||||
where G : GetBindingModel
|
|
||||||
where S : SetBindingModel
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Получение списка сущностей
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
OperationResultModel Read(G model);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Создание новой сущности
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
OperationResultModel Create(S model);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Изменение сущности
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
OperationResultModel Update(S model);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Удаление сущности
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
OperationResultModel Delete(G model);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
namespace ModelTools.Interfaces
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Интерфейс для регистрации зависимостей в модулях
|
|
||||||
/// </summary>
|
|
||||||
public interface IImplementationExtension
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Регистрация сервисов
|
|
||||||
/// </summary>
|
|
||||||
public void RegisterServices();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,17 +0,0 @@
|
|||||||
using ModelTools.Models;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace ModelTools.Interfaces
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Интерфейс для регистрации контролов для десктопного приложения
|
|
||||||
/// </summary>
|
|
||||||
public interface IWindowDesktopExtension
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Получение списка контролов модуля, доступных для работы по авторизованному пользователю
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
List<WindowDesktopExtensionControlModel> GetListControlEntityList();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,114 +0,0 @@
|
|||||||
using ModelTools.Enums;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace ModelTools.Models
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Результат любой операции с сущностью
|
|
||||||
/// </summary>
|
|
||||||
public class OperationResultModel
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Успешность операции (количество ошибок = 0)
|
|
||||||
/// </summary>
|
|
||||||
public bool IsSucceeded => Errors.Count == 0;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Статус операции
|
|
||||||
/// </summary>
|
|
||||||
public ResultServiceStatusCode StatusCode { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Спсиок ошибок
|
|
||||||
/// </summary>
|
|
||||||
public List<(string Title, string Message)> Errors { get; private set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Объект, получаемый по результатам операции
|
|
||||||
/// </summary>
|
|
||||||
public object Result { get; private set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Конструктор по умолчанию
|
|
||||||
/// </summary>
|
|
||||||
public OperationResultModel()
|
|
||||||
{
|
|
||||||
Errors = new List<(string Title, string Message)>();
|
|
||||||
StatusCode = ResultServiceStatusCode.Success;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Успешно
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="obj"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public static OperationResultModel Success(object obj)
|
|
||||||
{
|
|
||||||
return new OperationResultModel
|
|
||||||
{
|
|
||||||
Result = obj,
|
|
||||||
Errors = new List<(string Title, string Message)>(),
|
|
||||||
StatusCode = ResultServiceStatusCode.Success
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Добавление простой ошибки
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <param name="key"></param>
|
|
||||||
/// <param name="value"></param>
|
|
||||||
public static OperationResultModel Error(string key, string value) => Error(key, value, ResultServiceStatusCode.Error);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Добавление простой ошибки со сменой статуса
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <param name="key"></param>
|
|
||||||
/// <param name="error"></param>
|
|
||||||
/// <param name="statusCode"></param>
|
|
||||||
public static OperationResultModel Error(string key, string error, ResultServiceStatusCode statusCode)
|
|
||||||
{
|
|
||||||
var model = new OperationResultModel();
|
|
||||||
model.Errors.Add((key, error));
|
|
||||||
model.StatusCode = statusCode;
|
|
||||||
return model;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Добавление ошибки
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <param name="error"></param>
|
|
||||||
public static OperationResultModel Error(Exception error) => Error(error, ResultServiceStatusCode.Error);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Добавление ошибки
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <param name="error"></param>
|
|
||||||
/// <param name="statusCode"></param>
|
|
||||||
public static OperationResultModel Error(Exception error, ResultServiceStatusCode statusCode) => Error("Ошибка", error, statusCode);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Добавление ошибки (включая вложеннные)
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="model"></param>
|
|
||||||
/// <param name="key"></param>
|
|
||||||
/// <param name="error"></param>
|
|
||||||
/// <param name="statusCode"></param>
|
|
||||||
public static OperationResultModel Error(string key, Exception error, ResultServiceStatusCode statusCode)
|
|
||||||
{
|
|
||||||
var model = new OperationResultModel();
|
|
||||||
model.Errors.Add((key, error.Message));
|
|
||||||
while (error.InnerException != null)
|
|
||||||
{
|
|
||||||
error = error.InnerException;
|
|
||||||
model.Errors.Add(("Inner error:", error.Message));
|
|
||||||
}
|
|
||||||
model.StatusCode = statusCode;
|
|
||||||
return model;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user