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));
            }
        }
Exemple #2
0
        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));
        }