/// <summary> /// Sends the SMS and if sent saves it in DB. /// </summary> /// <param name="phoneNumber">The phone number.</param> /// <param name="message">The message.</param> /// <param name="country">The country.</param> /// <param name="errors">The errors.</param> /// <returns></returns> private async Task <bool> SendSmsAndSave(string phoneNumber, string message, CountryName country, InfoAccumulator errors) { //validate phone number if (string.IsNullOrEmpty(phoneNumber)) { String errorMessage = "attempt to send sms to an empty phone number"; Log.Error(errorMessage); errors.AddError(errorMessage); return(false); } //validate debug mode if (IsInDebugMode(phoneNumber)) { return(true); } string toPhoneNumber = NormalizePhoneNumber(phoneNumber, country); //validate message if (string.IsNullOrEmpty(message)) { errors.AddInfo("not sending empty message"); Log.Warn("attempt to send empty message to phone number: " + toPhoneNumber + " . SMS was not send"); return(false); } Log.InfoFormat("Sending sms to phone number: {0}, message: {1}", toPhoneNumber, message); //send sms TwilioSendSmsCommandResponse twilioResponse = await TwilioSmsSender.SendAsync(ThirdPartyService.Address, new TwilioSendSmsCommand { Message = message, PhoneNumber = toPhoneNumber }); if (twilioResponse.Sms == null) { return(false); } //save sms in DB if (!MobilePhoneQueries.SaveTwilioSms(twilioResponse.Sms)) { string errorMsg = String.Format("Failed to save Twilio SMS response to DB: {0}", message); Log.Error(errorMsg); errors.AddError(errorMsg); return(false); } return(true); }
/// <summary> /// Handles the specified message. /// </summary> /// <param name="message">The message.</param> public void Handle(TwilioSendSmsCommandResponse message) { }