/// <summary> /// Send a message syncronously /// </summary> /// <returns>The messages</returns> public IEnumerable <SendResponse> SendMessageSync(long notifierId, string sendingNumber, string message, IEnumerable <string> numbers) { var cleanFailNumber = PhoneNumberHelper.CleanNumber(FailNumber); var statusUrl = _receiver.GetStatusUpdateUrl(notifierId); var incommingUrl = _receiver.GetIncommingUrl(_notifier.Id); var reply = $"Reply:{message}"; var result = new List <SendResponse>(); foreach (var number in numbers) { //TODO: Emulate status updating bool isFailNumber = number == cleanFailNumber; var messageSid = Guid.NewGuid().ToString(); if (!isFailNumber) { var twilioSms = new TwilioSms { MessageSid = messageSid, AccountSid = _notifier.TpAccountSid, From = PhoneNumberHelper.CleanNumber(number), To = PhoneNumberHelper.CleanNumber(sendingNumber), Body = $"TestMode:Reply:{ResponseFromNumber(number)}" }; _replies.Add(twilioSms); } var sendResponse = new SendResponse { Number = number, MessageSid = messageSid, Success = !isFailNumber, Message = isFailNumber ? FailMessage : null }; result.Add(sendResponse); } return(result); }
public IEnumerable <SendResponse> SendMessageSync(long notifierId, string accountSid, string authToken, string sendingNumber, string message, IEnumerable <string> numbers) { var twilioClient = new TwilioRestClient(accountSid, authToken); var result = new List <SendResponse>(); EventLog.Application.WriteTrace($"Twilio sending to {numbers.Count()} numbers"); foreach (var number in numbers) { var sendResponse = new SendResponse { Number = number }; var sentMessage = twilioClient.SendMessage(sendingNumber, number, message, _receiver.GetStatusUpdateUrl(notifierId)); if (sentMessage == null) { throw new ApplicationException("Twilio send returned a null. This has only happened when there has been a network outage."); } sendResponse.MessageSid = sentMessage.Sid; sendResponse.Success = sentMessage.RestException == null; if (sendResponse.Success) { EventLog.Application.WriteTrace($"Twilio send to {number} suceeded"); } else { sendResponse.Success = false; sendResponse.Message = sentMessage.RestException.Message; EventLog.Application.WriteError($"Twilio send to {number} failed with message: {sendResponse.Message}"); } result.Add(sendResponse); } return(result); }