public async Task OrderCreatedAsync(OrderCreatedMessage ocMessage) { using var scope = _provider.CreateScope(); { var services = scope.ServiceProvider; var cusRepo = services.GetService <IRepository <Customer> >(); var msgPublisher = services.GetService <IMessagePublisher>(); var customerExists = await cusRepo.GetById(ocMessage.OrderDTO.CustomerID) is null ? false : true; CustomerValidatedMessage customerValidatedMessage = new CustomerValidatedMessage() { OrderID = ocMessage.OrderDTO.ID, CustomerExists = customerExists, ProductIDs = customerExists ? ocMessage.OrderDTO.Products.Select(x => x.ProductID).ToList() : new List <int>() }; await msgPublisher.PublishCustomerValidatedMessage(customerValidatedMessage); } }
public async Task PublishCustomerValidatedMessage(CustomerValidatedMessage csMessage) { string topic = csMessage.CustomerExists ? "CustomerValidatedX" : "CustomerValidated"; await _bus.PublishAsync(csMessage, topic); }