2019-01-23 20:02:46 +01:00
|
|
|
|
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using Webhooks.API.Model;
|
|
|
|
|
using Webhooks.API.Services;
|
2019-02-06 19:59:26 +01:00
|
|
|
|
using Microsoft.Extensions.Logging;
|
2019-01-23 20:02:46 +01:00
|
|
|
|
|
|
|
|
|
namespace Webhooks.API.IntegrationEvents
|
|
|
|
|
{
|
|
|
|
|
public class OrderStatusChangedToShippedIntegrationEventHandler : IIntegrationEventHandler<OrderStatusChangedToShippedIntegrationEvent>
|
|
|
|
|
{
|
|
|
|
|
private readonly IWebhooksRetriever _retriever;
|
|
|
|
|
private readonly IWebhooksSender _sender;
|
2019-02-06 19:59:26 +01:00
|
|
|
|
private readonly ILogger _logger;
|
|
|
|
|
public OrderStatusChangedToShippedIntegrationEventHandler(IWebhooksRetriever retriever, IWebhooksSender sender, ILogger<OrderStatusChangedToShippedIntegrationEventHandler> logger )
|
2019-01-23 20:02:46 +01:00
|
|
|
|
{
|
|
|
|
|
_retriever = retriever;
|
|
|
|
|
_sender = sender;
|
2019-02-06 19:59:26 +01:00
|
|
|
|
_logger = logger;
|
2019-01-23 20:02:46 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async Task Handle(OrderStatusChangedToShippedIntegrationEvent @event)
|
|
|
|
|
{
|
|
|
|
|
var subscriptions = await _retriever.GetSubscriptionsOfType(WebhookType.OrderShipped);
|
2019-02-06 19:59:26 +01:00
|
|
|
|
_logger.LogInformation($"Received OrderStatusChangedToShippedIntegrationEvent and got {subscriptions.Count()} subscriptions to process");
|
2019-01-23 20:02:46 +01:00
|
|
|
|
var whook = new WebhookData(WebhookType.OrderShipped, @event);
|
|
|
|
|
await _sender.SendAll(subscriptions, whook);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|