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)));
        }