public ActionResult Edit(CreateAndEditEmailAddress createAndEditEmailAddress)
        {
            ViewBag.PersonId = createAndEditEmailAddress.PersonId;

            if (ModelState.IsValid)
            {
                try
                {
                    using (_unitOfWorkFactory.Create())
                    {
                        var person       = _peopleRepository.FindById(createAndEditEmailAddress.PersonId, x => x.EmailAddresses);
                        var emailAddress = person.EmailAddresses.Single(x => x.Id == createAndEditEmailAddress.Id);
                        Mapper.Map(createAndEditEmailAddress, emailAddress);
                        return(RedirectToAction("List", new { createAndEditEmailAddress.PersonId }));
                    }
                }
                catch (ModelValidationException mvex)
                {
                    foreach (var error in mvex.ValidationErrors)
                    {
                        ModelState.AddModelError(error.MemberNames.FirstOrDefault() ?? "", error.ErrorMessage);
                    }
                }
            }
            return(View());
        }
        public ActionResult Edit(int id, int personId)
        {
            ViewBag.PersonId = personId;

            var person = _peopleRepository.FindById(personId, x => x.EmailAddresses);

            if (person == null)
            {
                return(HttpNotFound());
            }
            var data = new CreateAndEditEmailAddress();

            Mapper.Map(person.EmailAddresses.Single(x => x.Id == id), data);
            return(View(data));
        }