Exemplo n.º 1
0
        public SmsResponseMessage ProcessUserSmsMessage(string smsNumber, string body)
        {
            var response     = new SmsResponseMessage();
            var parsedResult = SmsParser.Parse(body);

            if (parsedResult.UserCommand == UserCommandType.Join)
            {
                var joinResult = Join(smsNumber, parsedResult.SessionToJoin);
                response.Success = joinResult.Item1;
                response.Body    = joinResult.Item2;
            }
            else if (parsedResult.UserCommand == UserCommandType.Leave)
            {
                var leaveResult = Leave(smsNumber);
                response.Success = leaveResult.Item1;
                response.Body    = leaveResult.Item2;
            }
            else if (parsedResult.UserCommand == UserCommandType.Response)
            {
                var session         = GetSessionIdBySms(smsNumber);
                var sessionResponse = session.AddResponse(smsNumber, parsedResult.FormattedString);
                //var sessionResponse = session.Response
                //determine if we want to send a message back to the user
            }
            return(response);
        }
Exemplo n.º 2
0
        public SmsParserTests()
        {
            var logger      = new Mock <ILogger>();
            var fieldParser = new SmsFieldParser();

            _smsParser = new SmsParser(logger.Object, fieldParser);
        }
Exemplo n.º 3
0
        public void Join(string smsBody)
        {
            var result = SmsParser.Parse(smsBody);

            Assert.Equal(UserCommandType.Join, result.UserCommand);
            Assert.Equal("one-two", result.SessionToJoin);
        }
Exemplo n.º 4
0
        public TwiMLResult Index(TwilioSmsHookModel twilioSmsHookModel)
        {
            var body         = twilioSmsHookModel.Body;
            var receivedFrom = twilioSmsHookModel.From;

            Debug.WriteLine($"Message received {body}");

            try
            {
                if (body.ToLower().Contains("enable"))
                {
                    if (SendDeviceMessage(body))
                    {
                        return(SendMessagingResponse("Theft protection successfully enabled."));
                    }
                    else
                    {
                        return(SendMessagingResponse("We're really sorry, but your device isn't registered in our system."));
                    }
                }
                else if (body.ToLower().Contains("disable"))
                {
                    if (SendDeviceMessage(body))
                    {
                        return(SendMessagingResponse("Theft protection successfully disabled."));
                    }
                    else
                    {
                        return(SendMessagingResponse("We're really sorry, but your device isn't registered in our system."));
                    }
                }
                else if (body.ToLower().Contains("register"))
                {
                    return(RegisterDevice(twilioSmsHookModel));
                }

                var commandReceived = SmsParser.ParseSmsBody(body);
                commandReceived.TrackerId = _db.Trackers.First(x => x.DevicePhoneNumber == receivedFrom).Id;

                return(HandleSmsCommandReceived(commandReceived));
            }
            catch (Exception ex)
            {
                _db.Logs.Add(new Log
                {
                    Error = ex.Message,
                    Time  = DateTime.Now
                });

                return(SendMessagingResponse("I'm sorry, we did not quite catch that."));
            }
        }
Exemplo n.º 5
0
        public void Test()
        {
            //nothing sent.. probably can't happen.
            var result1 = SmsParser.Parse("");

            Assert.Null(result1);

            //join with no session id supplied
            var result2 = SmsParser.Parse("join");

            Assert.Null(result2);

            //join with half a session id?
            var result3 = SmsParser.Parse("join invalid");

            Assert.Null(result3);
        }
 /// <inheritdoc />
 public AsteriskAriSmsService(ILogger logger, IQueueSender queueSender, SmsParser smsParser)
 {
     _logger      = logger;
     _queueSender = queueSender;
     _smsParser   = smsParser;
 }
Exemplo n.º 7
0
        public void Responses(string smsBody)
        {
            var result = SmsParser.Parse(smsBody);

            Assert.Equal(UserCommandType.Response, result.UserCommand);
        }
Exemplo n.º 8
0
        public void DontAccidentallyLeave(string smsBody)
        {
            var result = SmsParser.Parse(smsBody);

            Assert.Equal(UserCommandType.Response, result.UserCommand);
        }
Exemplo n.º 9
0
        public void Leave(string smsBody)
        {
            var result = SmsParser.Parse(smsBody);

            Assert.Equal(UserCommandType.Leave, result.UserCommand);
        }