public async Task <IActionResult> CreatePayment([FromBody] CreatePayment model) { var meterRead = await _serviceClient.GetMeterRead(model.MeterReadId); await _paymentDomainService.CreatePayment(model.MeterReadId, model.AddressId, meterRead.Usages.Select(Convert).ToList()); return(StatusCode(200, model.PaymentId)); }
public async Task Consume(ConsumeContext <IMeterReadProcessFinished> context) { var meterRead = await _billsServiceClient.GetMeterRead(context.Message.MeterReadId); if (meterRead == null) { throw new MeterReadNotFoundException(context.Message.MeterReadId.ToString()); } if (!meterRead.Usages.Any()) { throw new NoUsagesExistInMeterReadException(context.Message.MeterReadId.ToString()); } await _paymentDomainService.CreatePayment(context.Message.MeterReadId, context.Message.AddressId, meterRead.Usages?.Select(Convert).ToList()); await _documentSession.SaveChangesAsync(); await context.Publish <IPaymentAccepted>( new { PaymentId = context.Message.MeterReadId, AddressId = context.Message.AddressId }); }