например. entityUpdated,entityCreated,entityDeleted
Я хотел бы предоставить пользователям возможность регистрировать веб-перехватчики только для обновлений определенных объектов, если они заинтересованы только в получении обратных вызовов для этих конкретных объектов.
например сущностьОбновлено для сущности1
Фильтры кажутся хорошими кандидатами для реализации такого поведения. Пользователи могут подписываться на события, используя фильтры.
например. сущность* (чтобы получать все события, касающиеся сущностей)
Поэтому я думал о предоставлении событий для каждой сущности, например:entity_1_Updated.
Это означало бы, что список открытых событий будет меняться во время во время выполнения приложения (при создании или удалении сущностей).
Более конкретно, реализация IWebHookFilterProvider будет выполнять запрос к базе данных для получения списка сущностей, для которых могут происходить события.
Примерно:
Код: Выделить всё
class EntityWebHookFilterProvider : IWebHookFilterProvider
{
public async Task GetFiltersAsync()
{
List ids = await repository.GetAllUpdatableEntitiesAsync();
return new Collection(ids.Select(id => new WebHookFilter { Name = string.Format("entity_{0}_Updated", id)}).ToList());
}
}
Подробнее здесь: https://stackoverflow.com/questions/402 ... per-entity
Мобильная версия