public IActionResult Assign(int id)
        {
            var read = DataContext.DoorReads
                       .Include(dr => dr.Person)
                       .Include(dr => dr.Door)
                       .FirstOrDefault(dr => dr.Id == id);

            if (read == null)
            {
                return(RedirectToAction("Index"));
            }

            AssociateDoorRequestViewModel model = GetAssociateDoorRequestModel(read);

            return(View(model));
        }
        public IActionResult Assign(AssociateDoorResponseViewModel model)
        {
            var person = DataContext.People.FirstOrDefault(p => p.Id == model.PersonId);
            var read   = DataContext.DoorReads.Include(dr => dr.Door).Include(dr => dr.Person).First(dr => dr.Id == model.DoorReadId);

            if (!ModelState.IsValid)
            {
                AssociateDoorRequestViewModel requestModel = GetAssociateDoorRequestModel(read);
                return(View(requestModel));
            }

            //set token value on the person
            person.TokenValue = read.TokenValue;
            //set the person on the read
            read.Person = person;

            DataContext.SaveChanges();

            AddSuccess("Associated", "Assigned access token to {0}", read.Person.Name);

            return(RedirectToAction("Log", new { Id = read.DoorId }));
        }