Пример #1
0
        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));
        }
Пример #2
0
        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"));
        }