DynamicCodeContext — базовый контекст выполнения динамического кода. Он предоставляет доступ к инфраструктурным сервисам платформы:
Контекст используется как базовый класс для:
CustomHooksContext;ScheduledJobContext;LifecycleRoleContext.public EntityServiceOperation OperationType { get; }
Тип операции сервиса сущностей, в рамках которой вызван динамический код. Позволяет определить контекст выполнения обработчика и реализовать разную логику в зависимости от типа операции: создание, обновление, удаление.
Возможные значения:
| Значение | Описание |
|---|---|
| Noop | Операция отсутствует. Используется, когда выполнение динамического кода не связано с CRUD-операциями (например, задания по расписанию или вычисление ролей жизненного цикла). |
| Insert | Создание новой сущности. |
| Update | Обновление существующей сущности. |
| Delete | Удаление сущности. |
public event Func<Task> BeforeCommit
Событие вызывается перед коммитом транзакции. Позволяет выполнить дополнительные действия до сохранения изменений в базе данных. Например:
public event Func<Task> AfterCommit
Событие вызывается после успешного коммита транзакции. Используется для операций, которые должны выполняться только после сохранения изменений. Например:
public IContextEntityService<TEntity> GetEntityService<TEntity>()
where TEntity : Entity
Возвращает сервис для работы с сущностью в текущем контексте операции. Учитывает:
Позволяет выполнять операции:
public ILifecycleService<TEntity> GetLifecycleService<TEntity>()
where TEntity : Entity, IStatedEntity
Возвращает сервис управления жизненным циклом сущности. Используется для выполнения переходов между состояниями сущности.
public NotificationModuleService GetNotificationService()
Возвращает сервис отправки уведомлений. Позволяет отправлять уведомления пользователям через встроенные каналы системы.
public SafeHttpClient GetHttpClient()
Возвращает безопасный HTTP-клиент для выполнения внешних HTTP-запросов. Клиент поддерживает:
Используется для интеграции с внешними системами.
public Task<Dictionary<LicenseProduct, int>> GetLicenseProductLimitsAsync()
Возвращает лимиты лицензии для текущего tenant. Результат — словарь, где:
LicenseProduct);public Task<IDictionary<DateTime, decimal>> GetUserScheduleForPeriodAsync(
DateTime beginDate,
DateTime endDate,
Guid userId
)
Возвращает рабочий график пользователя за указанный период. Результат — словарь, где:
public Task<List<ResourcePlanEntry>> GetWorkResourcePlan(Guid entityId)
Возвращает план ресурсов, связанный с указанной сущностью. Метод используется для получения информации о распределении ресурсов по работе или задаче.
public abstract Task Log(
string message,
DynamicCodeLogLevel level = DynamicCodeLogLevel.Info
)
Логирует сообщение в журнал динамического кода. Уровни логирования:
Info — информационное сообщение;Warning — предупреждение;Error — ошибка.Тип записи журнала определяется конкретной реализацией контекста (ScheduledJobContext, LifecycleRoleContext и др.).
Перейти на русскую версию?