protected virtual async Task HandleEvent(DomainEvent domainEvent, CancellationToken cancellationToken) { var eventId = domainEvent.GetType().FullName; var criteria = new WebhookSearchCriteria() { IsActive = true, EventIds = new[] { eventId }, Skip = 0, Take = int.MaxValue, ResponseGroup = WebhookResponseGroup.Info.ToString() }; var webHookSearchResult = await _webHookSearchService.SearchAsync(criteria); if (webHookSearchResult.TotalCount > 0) { var eventObject = domainEvent.GetEntityWithInterface <IEntity>() .Select(x => new { objectId = x.Id, objectType = x.GetType().FullName }) .ToArray(); var request = new WebhookRequest { EventId = eventId, EventObject = JsonConvert.SerializeObject(eventObject), WebHooks = webHookSearchResult.Results }; _backgroundJobClient.Schedule(() => NotifyAsync(request, cancellationToken), TimeSpan.FromMinutes(1)); } }
public void GetChangedEntriesWithInterface_ReturnEntities(DomainEvent domainEvent) { //Arrange //Act var result = domainEvent.GetEntityWithInterface <IEntity>(); //Assert Assert.NotNull(result); Assert.All(result, item => Assert.IsAssignableFrom <IEntity>(item)); }