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));
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }