private TwiMLResult RegisterDevice(TwilioSmsHookModel hookModel) { var response = new MessagingResponse(); var data = hookModel.Body.Split(' '); var devicePhoneNumber = data[1].Trim(); var deviceNickName = data[2].Trim().ToLower(); var ownerPhoneNumber = hookModel.From; if (_db.Trackers.Any(x => x.DeviceNickName == deviceNickName)) { response.Message("A device with that name is already registered. Please use another one."); return(TwiML(response)); } _db.Trackers.Add(new Tracker { DeviceNickName = deviceNickName, DevicePhoneNumber = devicePhoneNumber, OwnerPhoneNumber = ownerPhoneNumber }); _db.SaveChanges(); response.Message($"Your device {deviceNickName} with number {devicePhoneNumber} has been successfully registered"); return(TwiML(response)); }
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.")); } }