public void Run([EventGridTrigger] EventGridEvent eventGridEvent, ILogger log)
        {
            log.LogInformation(eventGridEvent.Data.ToString());
            IncomingSMSMessage incomingMessage = JsonConvert.DeserializeObject <IncomingSMSMessage>(eventGridEvent.Data.ToString());

            _smsService.ProcessIncomingMessage(incomingMessage);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Processes an incoming SMS message.
        /// </summary>
        /// <param name="incomingMessage">The incoming message.</param>
        public void ProcessIncomingMessage(IncomingSMSMessage incomingMessage)
        {
            string message = incomingMessage.Message.ToLower();
            string returnMessage;

            if (message.Contains("price") ||
                message.Contains("pricing") ||
                message.Contains("cost") ||
                message.Contains("rate") ||
                message.Contains("how much"))
            {
                // Add a follow up task within CRM
                returnMessage = "Thank you for inquiring about Atria Stony Brook. Rental rates can be found at: https://www.atriaseniorliving.com/retirement-communities/atria-stony-brook-louisville-ky/#iframePricing";
            }
            else if (message.Contains("schedule") || message.Contains("tour"))
            {
                // Add a schedule virtual tour task within CRM
                returnMessage = "Someone will be contacting you very soon to schedule a virtual tour.";
            }
            else
            {
                // Add a follow up task within CRM
                returnMessage = "Thank you for inquiring about Atria Stony Brook.  Someone will be getting back to you really soon.";
            }

            SendSMS(incomingMessage.To, incomingMessage.From, returnMessage, true);

            SMSMessageTableEntity.Save(incomingMessage.ToSMSMessageTableEntity(), _azureStorageSettings, _messageArchiveTable);
        }
 /// <summary>
 /// Converts the <see cref="IncomingSMSMessage"/> to a <see cref="SMSMessage"/>.
 /// </summary>
 /// <param name="incomingMessage">The incoming message to be converted.</param>
 /// <returns>A <see cref="SMSMessage"/> representing the <paramref name="incomingMessage"/>.</returns>
 public static SMSMessage ToSMSMessage(this IncomingSMSMessage incomingMessage)
 {
     return(new SMSMessage()
     {
         MessageId = incomingMessage.MessageId,
         FromPhoneNumber = incomingMessage.From,
         ToPhoneNumber = incomingMessage.To,
         Message = incomingMessage.Message,
         ReceivedTimestamp = incomingMessage.ReceivedTimestamp
     });
 }
 /// <summary>
 /// Converts the <see cref="IncomingSMSMessage"/> to a <see cref="SMSMessageTableEntity"/>.
 /// </summary>
 /// <param name="incomingMessage">The incoming message to be converted.</param>
 /// <returns>A <see cref="SMSMessageTableEntity"/> representing the <paramref name="incomingMessage"/>.</returns>
 public static SMSMessageTableEntity ToSMSMessageTableEntity(this IncomingSMSMessage incomingMessage)
 {
     return(new SMSMessageTableEntity()
     {
         PartitionKey = incomingMessage.From,
         RowKey = incomingMessage.MessageId,
         FromPhoneNumber = incomingMessage.From,
         ToPhoneNumber = incomingMessage.To,
         Message = incomingMessage.Message,
         MessageId = incomingMessage.MessageId
     });
 }