public IActionResult Create(Friend friend)
 {
     ModelState.Clear();
     TryValidateModel(friend);
     if (ModelState.IsValid)
     {
         using (var db = new FriendsContext())
         {
             // Create a channel                    
             var channel = _client.CreateChannel(Environment.GetEnvironmentVariable("TWILIO_IPM_SERVICE_SID"), "public", friend.PhoneNumber, friend.PhoneNumber, string.Empty);
             
             // join this channel
             if (channel.RestException!=null)
             {
                 //an exception occurred making the REST call
                 return Content(channel.RestException.Message);
             }
             else{
                 // Create a user
                 var user = _client.CreateUser(Environment.GetEnvironmentVariable("TWILIO_IPM_SERVICE_SID"), friend.PhoneNumber.RemoveSpecialCharacters());
                 if (user.RestException!=null){
                     return Content(user.RestException.Message);
                 }
                 else{
                     // Create membership
                     var member = _client.CreateMember(Environment.GetEnvironmentVariable("TWILIO_IPM_SERVICE_SID"), channel.Sid, user.Identity, string.Empty);
                     if (member.RestException!=null){
                         return Content(member.RestException.Message);
                     }
                     else{
                         // Add complete user to the DB
                         friend.ChannelSid = channel.Sid;
                         friend.UserSid = user.Sid;
                         db.Friends.Add(friend);
                         db.SaveChanges();
                     }
                 }
             }
             return RedirectToAction("Index");
         }
     }
     return View(friend);
 }
Esempio n. 2
0
 public IActionResult SMSAdded(string To, string From, string Body)
 {
     var client = new IpMessagingClient(Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID"), Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN"));
     using (var _db = new FriendsContext()){
         var channelSid = _db.Friends.FirstOrDefault(s => s.PhoneNumber == From).ChannelSid;
     
         var message = client.CreateMessage(
             Environment.GetEnvironmentVariable("TWILIO_IPM_SERVICE_SID"),
             channelSid,
             From.RemoveSpecialCharacters(),
             Body
         );
             
         if (message.RestException!=null) {
             string result = message.RestException.Message;
             return Content(result);
         }
     }
     
     return Content(string.Empty);
 }
Esempio n. 3
0
 public IActionResult MessageAdded(string To, string From, string Body){
     var client = new TwilioRestClient(Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID"), Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN"));
     
     using (var _db = new FriendsContext())
     {
         var channelSid = _db.Friends.FirstOrDefault(s => s.ChannelSid == To).PhoneNumber;
         
         Message message = client.SendMessage(
             StringExtensions.MyNumber,
             channelSid,
             Body
         );
         
         if (message.RestException!=null)
         {
             //an exception occurred making the REST call
             string result = message.RestException.Message;
             return Content(result);
         }
     }
     return Content(string.Empty);
 }
 public IActionResult Edit(Friend friend)
 {
     ModelState.Clear();
     TryValidateModel(friend);
     if (ModelState.IsValid)
     {
         using (var db = new FriendsContext())
         {
             db.Friends.Update(friend);
             var count = db.SaveChanges();
             return RedirectToAction("Index");
         }
     }
     return View(friend);
 }
 public FriendController()
 {
     _db = new FriendsContext();
     _client = new IpMessagingClient(Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID"), Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN"));
 }
Esempio n. 6
0
 public HomeController()
 {
     _db = new FriendsContext();
 }