Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using CreditCardValidator;
- using Domain;
- using EasyNetQ;
- using Microsoft.Extensions.Hosting;
- using System;
- using System.Threading;
- using System.Threading.Tasks;
- namespace PagamentoService.BackgroundServices
- {
- public class NovoPedidoEventHandler : BackgroundService
- {
- private IBus _bus;
- protected override async Task ExecuteAsync(CancellationToken stoppingToken)
- {
- _bus = RabbitHutch.CreateBus("host=127.0.0.1");
- _bus.Subscribe<OrderCreatedEvent>("PagamentoService", ProccessPayment);
- while (!stoppingToken.IsCancellationRequested)
- {
- await Task.Delay(TimeSpan.FromSeconds(15), stoppingToken);
- }
- _bus.Dispose();
- }
- private void ProccessPayment(OrderCreatedEvent order)
- {
- var payment = new Payment(order.Id, order.CreditCard.CardNumber, order.CreditCard.Expiration, order.CreditCard.Name);
- var detector = new CreditCardDetector(order.CreditCard.CardNumber);
- if (detector.IsValid())
- payment.Apply(detector.BrandName);
- else
- payment.Deny();
- // Businness rules, save at database, etc...
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement