示例#1
0
 public void ResendEvent(int eventid, int pharmCode)
 {
     using (var eventService = new EventService())
         using (var service = new EventRefillService())
         {
             var test      = service.GetWhere(EventRefillService.PrescriptionCodeCol == eventid).FirstOrDefault();
             var testEvent = test.Event;
             EventProcessingService.SendEvent(testEvent, pharmCode);
         }
 }
示例#2
0
        public static void HandleSMSResponse(string fromNumber, string fromBody, string messageSid)
        {
            string responseString = "";

            //unsubscribe
            if (twilioUnsubscribeVerbs.Find(v => v.ToLower().Equals(fromBody)) != null)
            {
                Patient p = GetPatientFromPhone(fromNumber);
                if (p != null)
                {
                    responseString = EventProcessingService.UnsubscribePatient(p);
                }
            }

            //subscribe
            if (twilioSubscribeVerbs.Find(v => v.ToLower().Equals(fromBody)) != null)
            {
                Patient p = GetPatientFromPhone(fromNumber);
                if (p != null && p.ContactPreference == ContactPreference.NONE)
                {
                    responseString = EventProcessingService.Subscribe(p);
                }
            }

            //system-specific responses
            if (responseString.Length == 0)
            {
                List <Event> openEvents = GetOpenSMSEventsFor(fromNumber);

                foreach (Event e in openEvents)
                {
                    MessageTemplateType          templateType = EventProcessingService.GetTemplateType(e);
                    List <MessageResponseOption> opts         = CommunicationsService.GetResponseOptions(templateType);
                    MessageResponseOption        opt          = opts.Find(o => { return(o.Verb.ToLower().Equals(fromBody)); });

                    var response = EventProcessingService.HandleResponse(opt, e);
                    if (response.GetType() == typeof(string))
                    {
                        responseString = (string)response;
                    }
                }
            }

            if (responseString.Length > 0)
            {
                SendSMSMessage(fromNumber, responseString);
            }
            else
            {
                throw new ArgumentException("Unexpected response: " + fromBody + " from message: " + messageSid);
            }
        }