Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
 /// <summary>
 /// Handles the specified message.
 /// </summary>
 /// <param name="message">The message.</param>
 public void Handle(TwilioSendSmsCommandResponse message)
 {
 }