using ModuleTools.BusinessLogics; using ModuleTools.Enums; using ModuleTools.Models; using SecurityBusinessLogic.Interfaces; using System; namespace SecurityBusinessLogic.BusinessLogics { /// /// Логика синхронизации пользователей /// public class SynchronizationBusinessLogic : CoreBusinessLogic { /// /// Серивс для работы с бекапом /// private readonly ISynchronizationService _service; /// /// Логика работы с бекапом /// /// public SynchronizationBusinessLogic(ISynchronizationService service) => _service = service; /// /// Запуск синхронизации /// /// /// public bool RunSynchronization() { try { if (NoAccess()) { return false; } var result = _service.RunSynchronization(); if (!result.IsSucceeded) { Errors.AddRange(result.Errors); return false; } return true; } catch (Exception ex) { Errors.Add(("Ошибка", ex.Message)); return false; } } /// /// Проверка доступности операции для пользователя /// /// private bool NoAccess() { if (_security.CheckAccess(new SecurityManagerCheckAccessModel(null, AccessOperation.Синхронизация, AccessType.Delete, "Синхронизация"))) { return false; } Errors.Add(("Ошибка безопасности", _security.ErrorMessage)); return true; } } }