using ToolsModule.BindingModels; using ToolsModule.Enums; using ToolsModule.Interfaces; using ToolsModule.Models; using System.Collections.Generic; using ToolsModule.DependencyManagment; namespace ToolsModule.BusinessLogics { /// /// Основа всех бизнес-логик /// public class CoreBusinessLogic { /// /// Менеджер безопасности /// protected readonly ISecurityManager _security; /// /// Тип операции, скоторым работает логика /// protected AccessOperation _serviceOperation; /// /// Название сущности /// protected string _entity; /// /// Перечень ошибок при выполнении операции /// public List<(string Title, string Message)> Errors { get; protected set; } /// /// Основа всех бизнес-логик /// /// public CoreBusinessLogic() { _security = DependencyManager.Instance.Resolve(); Errors = new(); } /// /// Проверка доступности операции для пользователя /// /// /// /// protected bool NoAccess(AccessBindingModel model, AccessType type) { if (_security.CheckAccess(new SecurityManagerCheckAccessModel(model, _serviceOperation, type, _entity))) { return false; } Errors.Add(("Ошибка безопасности", _security.ErrorMessage)); return true; } } }