using System.Threading; using System.Threading.Tasks; using Hangfire; using MediatR; using Microsoft.eShopWeb.ApplicationCore.Interfaces; using Microsoft.eShopWeb.Events; namespace Microsoft.eShopWeb; public class EmailOrderConfirmation : INotificationHandler<OrderPlaced> { private readonly IEmailSender _emailSender; public EmailOrderConfirmation(IEmailSender emailSender) { _emailSender = emailSender; } public Task Handle(OrderPlaced notification, CancellationToken cancellationToken) { BackgroundJob.Enqueue(() => _emailSender.SendEmailAsync("demo@codeopinion.com", "Order Confirmation", "Thank you for your order.")); return Task.CompletedTask; } }