// PUT
        public ActionResult Edit(int id)
        {
            var service = CreateChoreUserService();
            var detail  = service.GetChoreUserById(id);
            var model   =
                new ChoreUserEdit
            {
                ChoreUserId     = detail.ChoreUserId,
                UserId          = detail.UserId,
                ChoreId         = detail.ChoreId,
                ChoreIsComplete = detail.ChoreIsComplete
            };

            return(View(model));
        }
        // UPDATE
        public bool UpdateChoreUser(ChoreUserEdit model)
        {
            using (var ctx = new ApplicationDbContext())
            {
                var entity =
                    ctx
                    .ChoreUsers
                    .Single(e => e.ChoreUserId == model.ChoreUserId && e.UserId == _userId.ToString());

                entity.ChoreUserId     = model.ChoreUserId;
                entity.UserId          = model.UserId;
                entity.ChoreId         = model.ChoreId;
                entity.ChoreIsComplete = model.ChoreIsComplete;

                return(ctx.SaveChanges() == 1);
            }
        }
        public ActionResult Edit(int id, ChoreUserEdit model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (model.ChoreUserId != id)
            {
                ModelState.AddModelError("", "Id Mismatch");
                return(View(model));
            }

            var service = CreateChoreUserService();

            if (service.UpdateChoreUser(model))
            {
                TempData["SaveResult"] = "Chore User was updated.";
                return(RedirectToAction("Index"));
            }

            ModelState.AddModelError("", "Chore User could not be updated.");
            return(View(model));
        }