using Blog.Core.Common; using Blog.Core.EventBus.EventHandling; using Blog.Core.IServices; using Microsoft.Extensions.Logging; using System; using System.Threading.Tasks; namespace Blog.Core.EventBus { public class BlogQueryIntegrationEventHandler : IIntegrationEventHandler { private readonly IBlogArticleServices _blogArticleServices; private readonly ILogger _logger; public BlogQueryIntegrationEventHandler( IBlogArticleServices blogArticleServices, ILogger logger) { _blogArticleServices = blogArticleServices; _logger = logger ?? throw new ArgumentNullException(nameof(logger)); } public async Task Handle(BlogQueryIntegrationEvent @event) { _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, "Blog.Core", @event); ConsoleHelper.WriteSuccessLine($"----- Handling integration event: {@event.Id} at Blog.Core - ({@event})"); await _blogArticleServices.QueryById(@event.BlogId.ToString()); } } }