public async Task SendInvitationMessageAsync(CarReservationConfirmationMailTemplate carReservationConfirmationMailTemplate) { var emailMessage = MailHelper.CreateSingleTemplateEmail( new EmailAddress(_mailDeliveryServiceConfiguration.FromEmail), new EmailAddress(carReservationConfirmationMailTemplate.CustomerEmail), _mailDeliveryServiceConfiguration.CarReservationConfirmationTemplateId, new { customerName = carReservationConfirmationMailTemplate.CustomerName, carBrand = carReservationConfirmationMailTemplate.CarBrand, carModel = carReservationConfirmationMailTemplate.CarModel, carImageUrl = carReservationConfirmationMailTemplate.CarImageUrl, fromDate = carReservationConfirmationMailTemplate.FromDate, toDate = carReservationConfirmationMailTemplate.ToDate }); var response = await _sendGridClient.SendEmailAsync(emailMessage); if (response.StatusCode != HttpStatusCode.Accepted) { var responseContent = await response.Body.ReadAsStringAsync(); _logger.LogError($"SendGrid service returned status code {response.StatusCode} with response: {responseContent}"); } }
public async Task HandleNewCarReservationMessageAsync(string carReservationIntegrationMessageAsString) { var carReservationIntegrationMessage = JsonSerializer.Deserialize <CarReservationIntegrationMessage>(carReservationIntegrationMessageAsString); if (!string.IsNullOrEmpty(carReservationIntegrationMessage.CustomerId)) { var customer = await _msGraphSdkClientService.GetUserAsync(carReservationIntegrationMessage.CustomerId); if (customer != null) { var carFromReservation = await _carRepository.GetAsync(carReservationIntegrationMessage.CarId); if (carFromReservation != null) { var carReservationConfirmationMailTemplate = new CarReservationConfirmationMailTemplate { CustomerName = $"{customer.FirstName} {customer.LastName}", CustomerEmail = customer.Email, CarBrand = carFromReservation.Brand, CarModel = carFromReservation.Model, CarImageUrl = carFromReservation.ImageUrl, FromDate = carReservationIntegrationMessage.RentFrom.ToString("dd/MM/yyyy"), ToDate = carReservationIntegrationMessage.RentTo.ToString("dd/MM/yyyy") }; await _mailDeliveryService.SendInvitationMessageAsync(carReservationConfirmationMailTemplate); } } } else { _logger.LogError($"Customer ID value in the queue message cannot be empty. Row content: {carReservationIntegrationMessageAsString}"); } }