public async Task <ActionResult> Edit(Person person)
        {
            var personGroupId = Request.Form["PersonGroupId"];

            if (string.IsNullOrEmpty(personGroupId))
            {
                return(HttpNotFound("PersonGroupId is missing"));
            }

            if (!ModelState.IsValid)
            {
                ViewBag.PersonGroupId = personGroupId;
                return(View(person));
            }

            try
            {
                if (person.PersonId == Guid.Empty)
                {
                    await FaceClient.CreatePersonAsync(personGroupId, person.Name, person.UserData);
                }
                else
                {
                    await FaceClient.UpdatePersonAsync(personGroupId, person.PersonId, person.Name, person.UserData);
                }

                return(RedirectToAction("Index", new { id = personGroupId }));
            }
            catch (FaceAPIException fex)
            {
                ModelState.AddModelError(string.Empty, fex.ErrorMessage);
            }

            return(View(person));
        }