public async Task <Booking> CreateAsync(string startTime, string endTime, long customerId) { var customer = await _customerServiceApiClient.GetCustomerByIdAsync(customerId, _correlationContext.CorrelationContext.CorrelationId); var booking = new Booking(DateTime.UtcNow, DateTime.UtcNow.AddDays(1), customerId, customer.FirstName); await _bookingRepository.CreateAsync(booking); await _bookingRepository.SaveChangesAsync(); var @event = booking.Adapt <CreatedBookingEvent>(); _eventBus.Publish(@event); return(booking); }
public async Task <OrderResponseModel> Handle(CreateOrderCommand request, CancellationToken cancellationToken) { var customer = await _customerServiceApiClient.GetCustomerByIdAsync(request.CustomerId, _correlationContext.CorrelationContext.CorrelationId); var order = new Order(request.Description, request.CustomerId, customer.FirstName); order = await _orderRepository.CreateAsync(order); await _orderRepository.SaveChangesAsync(); var @event = order.Adapt <CreateOrderEvent>(); _rabbitMqClient.Publish(@event); var response = order.Adapt <OrderResponseModel>(); return(response); }