internal async Task <CommunicationMethod> SendSmsWithOtherOption(SaveCustomerVehicleRequest request, DealerConfigurationResponse dealerResponse, DealerInvitationContentResponse dealerInvitationResponse, bool sendEmailAsSecondOption = false) { (bool smsResponse, Exception ex) = await SendSmsOrEmail(request, dealerResponse, dealerInvitationResponse); if (!smsResponse) { if (sendEmailAsSecondOption) { _telemetryClient?.TrackException(ex); (bool emailResponse, Exception emailEx) = await SendSmsOrEmail(request, dealerResponse, dealerInvitationResponse, true); if (!emailResponse) { throw emailEx; } return(CommunicationMethod.Email); } throw ex; } return(CommunicationMethod.Sms); }
internal async Task <(bool, Exception)> SendSmsOrEmail(SaveCustomerVehicleRequest request, DealerConfigurationResponse dealerResponse, DealerInvitationContentResponse dealerInvitationResponse, bool sendEmail = false) { if (sendEmail) { return(await _emailGatewayClient.SendHtmlEmail(dealerResponse.EmailAddress, request.CustomerEmail, dealerInvitationResponse.EmailSubject, GetInvitationText(dealerResponse.DealerId, request.CustomerNo, request.VehicleNo, request.RegistrationNo, dealerInvitationResponse.EmailContent))); } var phoneNumber = FormatInternationalMobileNumber(request.PhoneNumber); return(_smsGatewayClient.SendMessage(_invitationFromPhone, phoneNumber, GetInvitationText(dealerResponse.DealerId, request.CustomerNo, request.VehicleNo, request.RegistrationNo, dealerInvitationResponse.SmsContent))); }