//GET: Course/Edit
        public ActionResult Edit(int id)
        {
            var userId  = Guid.Parse(User.Identity.GetUserId());
            var service = new CourseRatingService(userId);
            var detail  = service.GetRatingByID(id);
            var model   =
                new CourseRatingEdit
            {
                CourseRatingId = detail.CourseRatingId,
                PlayerId       = detail.PlayerId,
                CourseRatings  = detail.CourseRatings,
                DatePlayed     = detail.DatePlayed,
                CourseId       = detail.CourseId,
            };


            var courseService = new CourseService();
            var courseList    = courseService.GetCourses();

            ViewBag.CourseId = new SelectList(courseList, "CourseId", "CourseName");

            var playerService = new PlayerService();
            var playerList    = playerService.GetPlayers();

            ViewBag.PlayerId = new SelectList(playerList, "PlayerId", "PlayerName");

            return(View(model));
        }
        public ActionResult Edit(int id, CourseRatingEdit model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

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

            var userId  = Guid.Parse(User.Identity.GetUserId());
            var service = new CourseRatingService(userId);

            if (service.EditRating(model))
            {
                TempData["SaveResult"] = "Your rating was updated.";
                return(RedirectToAction("Index"));
            }

            ModelState.AddModelError("", "Your rating could not be updated");
            return(View());
        }
        public IHttpActionResult Put(CourseRatingEdit rating)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var service = CreateRatingService();

            if (!service.EditRating(rating))
            {
                return(InternalServerError());
            }
            return(Ok());
        }
        public bool EditRating(CourseRatingEdit model)
        {
            using (var ctx = new ApplicationDbContext())
            {
                var entity = ctx.Ratings.Single(p => p.CourseRatingId == model.CourseRatingId);

                entity.CourseRatingId = model.CourseRatingId;
                entity.PlayerId       = model.PlayerId;
                entity.CourseRatings  = model.CourseRatings;
                entity.DatePlayed     = model.DatePlayed;
                entity.CourseId       = model.CourseId;

                return(ctx.SaveChanges() == 1);
            }
        }