public IHttpActionResult PostWhatsAppChatBot(WhatsAppChatBot messageModel) { using (BLL.ChatBot bll = new BLL.ChatBot()) { bll.ProcessMessage(messageModel); } return(Ok()); }
public void ProcessMessage(WhatsAppChatBot messageModel) { try { List <string> persistentAction = null; Nullable <int> messageCount = null; if (HttpContext.Current.Session["MessageCount"] != null) { messageCount = Convert.ToInt32(HttpContext.Current.Session["MessageCount"].ToString()); } if (messageCount == null) { messageModel.Body = WELCOME; HttpContext.Current.Session["MessageCount"] = 0; } else { if (messageModel.Body.Trim().ToUpper() == RESET_WORD) { messageModel.Body = WELCOME; messageCount = null; } else { messageCount++; messageModel.Body = string.Format(MSG, messageCount.ToString(), messageModel.Body); } if (messageCount.HasValue) { HttpContext.Current.Session["MessageCount"] = messageCount.ToString(); } else { HttpContext.Current.Session["MessageCount"] = null; } } this.SendWhatsApp(messageModel, persistentAction); if ((messageCount.HasValue) && (messageCount % 2 == 0)) { messageModel.Body = RESET_MSG; this.SendWhatsApp(messageModel); } } catch (Exception ex) { messageModel.Body = WARNING_MSG; this.SendWhatsApp(messageModel); } }
private void SendWhatsApp(WhatsAppChatBot messageModel, List <string> persistentAction = null) { string accountSid = (string)ConfigurationManager.AppSettings["TWILIO_ACCOUNT_SID"]; string authToken = (string)ConfigurationManager.AppSettings["TWILIO_AUTH_TOKEN"]; string senderPhoneNumber = (string)ConfigurationManager.AppSettings["TWILIO_SENDER_PHONE_NUMBER"]; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; TwilioClient.Init(accountSid, authToken); var message = MessageResource.Create( body: string.Format(messageModel.Body), from: new Twilio.Types.PhoneNumber(String.Format(PHONE_NUMBER, senderPhoneNumber)), persistentAction: persistentAction, to: new Twilio.Types.PhoneNumber(messageModel.From) ); }