AuditService
У приложения есть класс AuditService
. Через класс AuditService
реализуются API для обращения:
- к классу, наследующему от интерфейса IAudit, если аудит не выделен в отдельный сервис.
- к сервису аудита
AuditWinService
.
AuditService
хранит настройки приложения по аудиту, куда они загружаются в начале работы приложения.
При выполнении потенциально аудируемой операции сервис данных приложения сообщает об этом классу AuditService
, который:
- просматривает имеющиеся настройки аудита и принимает решение о необходимости выполнения записи аудита.
- если аудит необходим, то соответствующее сообщение идёт либо в
IAudit
, если нет отдельного сервиса аудита, либо вAuditWinService
(ожидание ответа будет зависеть от настроек аудита).
Класс AuditService
реализовывает интерфейс IAuditService
, а также имеет статическое поле типа IAuditService
, куда будет записана инстанция класса AuditService
(это позволит вести работу как со статическим классом через обращение «AuditService.CurrentAuditService»). Все вызовы осуществляются через интерфейс (если появится потребность, то класс Audit
можно легко подменить).
IAudit
IAudit представляет собой интерфейс для организации логики работы аудита (то есть именно класс, реализующий этот интерфейс, будет отвечать за запись данных аудита и за их вычитку).
AuditWinService
AuditWinService представляет собой службу, через которую возможно производить запись данных аудита.
AsyncAuditController
AsyncAuditController
– класс, организующий асинхронный доступ к IAudit
, что позволяет отложить на некоторое время запись данных об аудите (‘'’в настоящее время не используется’’’).
RemoteAuditController (ServiceAuditController)
RemoteAuditController (ServiceAuditController)
– класс, отвечающий за взаимодействие через wcf с win-сервисом аудита AuditWinService
, связанному с wcf-сервисом, реализующим интерфейс IAuditWcfServiceLibrary
.