Пример #1
0
        public TwiMLResult Index()
        {
            try
            {
                // capture message
                // Your Account Sid and Token at twilio.com/console
                string accountSid = UT.Utility.GetAccountSid(); // this is my accountSID
                string authToken  = UT.Utility.GetAuthToken();  // this si my authToken

                //initialize account
                TwilioClient.Init(accountSid, authToken);

                // get a list (collection) of messages
                var messages = MessageResource.Read(pathAccountSid: accountSid);

                //based on understanding from documentation first message is always the one that sent from phone and recevied on API end
                MessageResource mr = messages.FirstOrDefault <MessageResource>();

                var message = MessageResource.Fetch(pathAccountSid: accountSid, pathSid: mr.Sid); //message.sid is message unique identifier

                // reverse the message string.
                string rvMsg = UT.Utility.StringReversal(message.Body.ToString());

                //write to db.
                WriteMsgToDb(message.Body.ToString(), rvMsg);

                // response section.
                var messagingResponse = new MessagingResponse();
                messagingResponse.Message(rvMsg);
                return(TwiML(messagingResponse));
            }
            catch (Exception ex)
            {
                EX.ExceptionHandler.HandleException(ex);
                return(null);
            }
        }
Пример #2
0
 public static Enums.OtpStatus VerifyOTP(string Otp, string messageId)
 {
     try
     {
         TwilioClient.Init(AccountSid, AuthToken);
         var      message        = MessageResource.Fetch(messageId.Trim());
         bool     isValidOTP     = false;
         DateTime?otpSentTime    = message.DateSent;
         double   timeDifference = DateTime.Now.Subtract(Convert.ToDateTime(otpSentTime.ToString())).TotalMinutes;
         if (timeDifference <= 30)
         {
             isValidOTP = message.Body.Contains(Otp.Trim());
             return(isValidOTP ? Enums.OtpStatus.Valid : Enums.OtpStatus.Invalid);
         }
         else
         {
             return(Enums.OtpStatus.Expire);
         }
     }
     catch (Exception ex)
     {
         return(Enums.OtpStatus.Exception);
     }
 }
Пример #3
0
        public void SendScheduledMessage()
        {
            try
            {
                //  Library.WriteErrorLog("Inside Send Scheduled Messages");
                TwilioClient.Init(accountSid, authToken);


                var message = MessageResource.Fetch("SM3fee5df463044d6e1f9edeaab0507327");



                using (DevinTwilioEntities dc = new DevinTwilioEntities())
                {
                    // var statusList = dc.UserStatus.ToList();
                    var users = dc.Users.Where(c => c.EnrollmentDate != null).ToList();
                    // var userEnrollmentList = dc.UserEnrollments.ToList();

                    //if(users.id)
                    //{

                    //}

                    var list = (from schMessage in dc.ScheduleMessages
                                join trgEvent in dc.TriggerEvents.Where(c => c.TriggerTypeId == 5)
                                on schMessage.ScheduleMessage_TriggerEventID equals trgEvent.TriggerEvent_ID
                                select new ScheduleViewModels
                    {
                        Message = schMessage.ScheduleMessage_Message,
                        // TriggerEventName = trgEvent.TriggerEvent_Event,
                        TriggerEventDay = trgEvent.TriggerEvent_Day,
                        TriggerEventId = trgEvent.TriggerEvent_ID,
                        ScheduleMessageID = schMessage.ScheduleMessage_ID,
                        Time = schMessage.ScheduleMessage_Time
                    }).ToList();


                    try
                    {
                        foreach (var item in users)
                        {
                            if (item.StatusId == 1) // 1- Active
                            {
                                //  Library.WriteErrorLog("Inside Patient loop");
                                var to = new PhoneNumber(item.MobileNumber.ToString());
                                //   Library.WriteErrorLog("To Number: " + to);
                                var from = new PhoneNumber("+16467591379");
                                //   Library.WriteErrorLog("From Number: " + from);
                                var EnrollmentDate = item.EnrollmentDate;
                                // Library.WriteErrorLog("EnrollmentDate: " + EnrollmentDate);
                                if (EnrollmentDate != null)
                                {
                                    DateTime currentDate = DateTime.Now;
                                    //   Library.WriteErrorLog("Current Date: " + currentDate);
                                    DateTime currentEnrollmentDate = Convert.ToDateTime(item.EnrollmentDate);
                                    // Library.WriteErrorLog("Current EnrollmentDate: " + currentEnrollmentDate);
                                    int totalDays = Convert.ToInt32((currentDate - currentEnrollmentDate).TotalDays);
                                    //   Library.WriteErrorLog(" scheduled days: " + totalDays);
                                    //if (totalDays >= 0 && totalDays <= 50)
                                    //{
                                    //    Library.WriteErrorLog("Inside total days comparison");
                                    string Sid = String.Empty;
                                    // var messageDetails = list.FirstOrDefault(c => c.TriggerEventName.ToLower() == "day " + totalDays);
                                    //var messageDetails = list.FirstOrDefault(c => c.TriggerEventDay == totalDays.ToString());
                                    var messageList = list.Where(c => c.TriggerEventDay == totalDays.ToString());

                                    if (messageList.Count() > 0)
                                    {
                                        foreach (var msg in messageList)
                                        {
                                            var userStatusDetails = dc.UserEnrollments.FirstOrDefault(c => c.UserId == item.User_ID && c.TriggerEventId == msg.TriggerEventId);
                                            if (userStatusDetails == null)
                                            {
                                                var calculatedTime = DateTime.Now.ToString("htt");

                                                var timeAfterRemovingSpace = "";

                                                if (!string.IsNullOrEmpty(msg.Time))
                                                {
                                                    timeAfterRemovingSpace = msg.Time.Trim().Replace(" ", "");
                                                    timeAfterRemovingSpace = timeAfterRemovingSpace.Replace(":00", "");
                                                    timeAfterRemovingSpace = timeAfterRemovingSpace.Replace(":30", "");

                                                    //string no_start_zeros = s.TrimStart('0');
                                                    timeAfterRemovingSpace = timeAfterRemovingSpace.TrimStart('0');
                                                }

                                                var setTime = msg.Time == null ? "9am" : timeAfterRemovingSpace;

                                                if (calculatedTime.ToLower() == setTime.ToLower())
                                                {
                                                    var message0 = MessageResource.Create(to: to, from: from, body: msg.Message);
                                                    Sid = Convert.ToString(message0.Sid);
                                                    // Library.WriteErrorLog("Schedule Message Sid " + Sid);
                                                    if (!string.IsNullOrEmpty(Sid))
                                                    {
                                                        SmsReply _smsReply = new SmsReply();
                                                        _smsReply.From      = Convert.ToString(from);
                                                        _smsReply.To        = Convert.ToString(to);
                                                        _smsReply.Sid       = Convert.ToString(Sid);
                                                        _smsReply.ParentSid = null;
                                                        _smsReply.MessageId = msg.ScheduleMessageID;
                                                        _smsReply.UserId    = item.User_ID;
                                                        _smsReply.SentDate  = DateTime.Now;
                                                        dc.SmsReplies.Add(_smsReply);
                                                        dc.SaveChanges();
                                                        // Library.WriteErrorLog("Schedule Message saved in the SMSReply table");
                                                    }
                                                    //Library.WriteErrorLog("Successfully send message for scheduled");
                                                }
                                            }
                                            else
                                            {
                                                //Library.WriteErrorLog("Already user send, skip or pause for days: " + totalDays);
                                            }
                                        }
                                    }

                                    //if admin alredy skip, send adn pause message for this this user
                                    //var userStatusDetails = userEnrollmentList.FirstOrDefault(c => c.UserId == item.User_ID && c.TriggerEventId == messageDetails.TriggerEventId);
                                    //if (userStatusDetails == null)
                                    //{
                                    //    if (messageDetails != null)
                                    //    {
                                    //        // check the time

                                    //        var calculatedTime = DateTime.Now.ToString("htt");

                                    //        var timeAfterRemovingSpace = "";

                                    //        if (!string.IsNullOrEmpty(messageDetails.Time))
                                    //        {
                                    //            timeAfterRemovingSpace = messageDetails.Time.Trim().Replace(" ", "");
                                    //            timeAfterRemovingSpace = timeAfterRemovingSpace.Replace(":00", "");
                                    //            timeAfterRemovingSpace = timeAfterRemovingSpace.Replace(":30", "");

                                    //            //string no_start_zeros = s.TrimStart('0');
                                    //            timeAfterRemovingSpace = timeAfterRemovingSpace.TrimStart('0');
                                    //        }

                                    //        var setTime = messageDetails.Time == null ? "9am" : timeAfterRemovingSpace;

                                    //        if (calculatedTime.ToLower() == setTime.ToLower())
                                    //        {
                                    //            var message0 = MessageResource.Create(to: to, from: from, body: messageDetails.Message);
                                    //            Sid = Convert.ToString(message0.Sid);
                                    //            Library.WriteErrorLog("Schedule Message Sid " + Sid);
                                    //            if (!string.IsNullOrEmpty(Sid))
                                    //            {
                                    //                SmsReply _smsReply = new SmsReply();
                                    //                _smsReply.From = Convert.ToString(from);
                                    //                _smsReply.To = Convert.ToString(to);
                                    //                _smsReply.Sid = Convert.ToString(Sid);
                                    //                _smsReply.ParentSid = null;
                                    //                _smsReply.MessageId = messageDetails.ScheduleMessageID;
                                    //                _smsReply.UserId = item.User_ID;
                                    //                _smsReply.SentDate = DateTime.Now;
                                    //                dc.SmsReplies.Add(_smsReply);
                                    //                dc.SaveChanges();
                                    //                Library.WriteErrorLog("Schedule Message saved in the SMSReply table");
                                    //            }
                                    //            Library.WriteErrorLog("Successfully send message for scheduled");
                                    //        }

                                    //    }
                                    //    else
                                    //    {

                                    //    }
                                    //}
                                    //else
                                    //{
                                    //    Library.WriteErrorLog("Already user send, skip or pause for days: " + totalDays);
                                    //}
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        //  Library.WriteErrorLog("Scheduled : " + ex.Message);
                    }
                }
            }
            catch (Exception ex)
            {
                // Library.WriteErrorLog(ex.Message);
            }
        }