public async Task <ActionResult> SendTextMessage(TextMessageViewModel viewModel) { if (viewModel == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var smsClient = new TwillioWrapperClient(); smsClient.Init(); // Get 'from number' string fromNumber = GetFromNumber(viewModel); if (!viewModel.Bulk) { await SendSingleTextMessage(viewModel, smsClient, fromNumber); } else { await SendBulkTextMessages(viewModel, smsClient, fromNumber); } viewModel.TextMessageSent = true; return(View(viewModel)); }
public async Task SendBulkSMSToAllDeacons(string message) { string fromNumber = GetFromNumber(); var deacons = _unitOfWork.AppUserRepository.FindUsersByRole(enums.AppUserRole.Deacon); var smsClient = new TwillioWrapperClient(); smsClient.Init(); foreach (var deacon in deacons) { var smsMessage = new SmsMessage { ToNumber = deacon.PhoneNumber, FromNumber = fromNumber, Message = message }; // Send SMS message var response = await smsClient.SendSmsAsync(smsMessage); } }
/// <summary> /// Sends change request managers a text message and notification. /// </summary> /// <param name="crManagers">The change request managers.</param> private async Task SendCRManagersMessageAsync(string appUserName) { string title = "New Change Request"; string message = $"Deacon {appUserName} has submitted a new change request."; string url = Url.Action("Index", "ChangeRequests"); string linkText = "Change Requests"; // user(s) assigned to handle change requests var crManagers = unitOfWork.AppUserRepository.FindUsers(u => u.ChangeRequestManager).ToList(); var smsClient = new TwillioWrapperClient(); smsClient.Init(); foreach (var cr in crManagers) { NotifyHelper.SendUserNotification(cr.UserName, title, message, url, linkText, type: NotificationType.Info); var smsMessage = new SmsMessage { Message = message, ToNumber = string.IsNullOrEmpty(cr.CellNumber) ? cr.PhoneNumber : cr.CellNumber }; try { // Send SMS message await smsClient.SendSmsAsync(smsMessage); } catch (Exception ex) { // log caught exception with Elmah ErrorSignal.FromCurrentContext().Raise(ex); } } }