public IHttpActionResult GetPairingCode(string uuid) { PairingOperation existing = PairingOperationForUUID(uuid); if (existing != null) { // return the previously generated pairing key return(Ok(existing.ID)); } // generate a new pairing key PairingOperation pairingOperation = new PairingOperation(); pairingOperation.DeviceUUID = uuid; pairingOperation.ID = GetRandomPairingCode(); while (PairingOperationExists(pairingOperation.ID)) { // make sure it is unique pairingOperation.ID = GetRandomPairingCode(); } db.PairingOperations.Add(pairingOperation); db.SaveChanges(); return(Ok(pairingOperation.ID)); }
public ActionResult Pair(PairingRequest model) { if (!ModelState.IsValid) { return(View(model)); } var user = UserManager.FindById(User.Identity.GetUserId()); var authKey = Guid.NewGuid().ToString(); var chair = new SmartChairModels() { AuthKey = authKey, Name = "TODO GIVE THE CHAIR A NAME" }; // update the current pending status with the new AuthKey var pairingdb = new PairingOperationsContext(); var pairingRequest = pairingdb.PairingOperations.SingleOrDefault(e => e.ID == model.PairingCode); pairingdb.Entry(pairingRequest).State = System.Data.Entity.EntityState.Modified; pairingRequest.AuthKey = authKey; pairingdb.SaveChanges(); user.PairedChairs.Add(chair); UserManager.Update(user); return(RedirectToAction("Index", "Home")); }