Example #1
0
        public ActionResult MyList()
        {
            List <GameViewModel> myGames;

            using (var userStatusService = new UserGameStatusService())
            {
                myGames = userStatusService.GetAllGamesForUserById(User.Identity.GetUserId()).Select(g => new GameViewModel(g)).OrderBy(g => g.Title).ToList();
            }

            using (var ratingService = new GameRatingService())
            {
                UserGameRating userGameRating;
                using (var userRatingService = new UserGameRatingService())
                {
                    foreach (var game in myGames)
                    {
                        userGameRating = userRatingService.GetExistingUserGameRating(User.Identity.GetUserId(), game.Id);

                        var ratings = ratingService.GetAll().Select(x => new SelectListItem {
                            Text = x.Rating.ToString(), Value = x.Id.ToString(), Selected = userGameRating == null ? false : userGameRating.GameRatingId == x.Id
                        }).ToList();
                        game.Ratings        = ratings;
                        game.SelectedRating = ratings.Where(r => r.Selected != false).Select(r => Convert.ToInt32(r.Value)).FirstOrDefault();
                    }
                }
            }

            using (var statusService = new GameStatusService())
            {
                UserGameStatus userGameStatus;
                using (var userStatusService = new UserGameStatusService())
                {
                    foreach (var game in myGames)
                    {
                        userGameStatus = userStatusService.GetExistingUserGameStatus(User.Identity.GetUserId(), game.Id);

                        var statuses = statusService.GetAll().Select(s => new SelectListItem {
                            Text = s.Status, Value = s.Id.ToString(), Selected = userGameStatus.GameStatusId == s.Id
                        }).ToList();
                        game.Statuses       = statuses;
                        game.SelectedStatus = statuses.Where(s => s.Selected != false).Select(s => s.Value.ToString()).FirstOrDefault();
                    }
                }
            }
            return(View(myGames));
        }
        public ActionResult Details(int?id)
        {
            if (id == null || id <= 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var game = gameService.GetByID((int)id);

            if (game == null)
            {
                return(HttpNotFound());
            }

            var model = new GameViewModel(game);

            using (var ratingService = new GameRatingService())
            {
                UserGameRating userGameRating;
                using (var userRatingService = new UserGameRatingService())
                {
                    userGameRating = userRatingService.GetExistingUserGameRating(User.Identity.GetUserId(), (int)id);
                    var allUserGameRatings = userRatingService.GetAllUserGameRatingsByGameId((int)id); //Get all user game ratings for a single game
                    if (allUserGameRatings.Count > 0)                                                  //calculate game rating
                    {
                        var rating = 0;
                        foreach (var el in allUserGameRatings)
                        {
                            rating += el.GameRating.Rating;
                        }
                        double result = rating / (double)allUserGameRatings.Count;
                        ViewBag.Score = result.ToString("n2");
                    }
                    else
                    {
                        ViewBag.Score = "N/A";
                    }
                }

                var ratings = ratingService.GetAll().Select(x => new SelectListItem {
                    Text = x.Rating.ToString(), Value = x.Id.ToString(), Selected = userGameRating == null ? false : userGameRating.GameRatingId == x.Id
                }).ToList();
                model.Ratings        = ratings;
                model.SelectedRating = ratings.Where(r => r.Selected != false).Select(r => Convert.ToInt32(r.Value)).FirstOrDefault();
                //model.SelectedRating = ratings.Where(r => r.Selected != false).Select(r => r.Value = "Rate game").FirstOrDefault();
            }
            using (var statusService = new GameStatusService())
            {
                UserGameStatus userGameStatus;
                using (var userStatusService = new UserGameStatusService())
                {//load existing user game status for a game for it to be selected
                    userGameStatus = userStatusService.GetExistingUserGameStatus(User.Identity.GetUserId(), (int)id);
                }
                var statuses = statusService.GetAll().Select(s => new SelectListItem {
                    Text = s.Status, Value = s.Id.ToString(), Selected = userGameStatus == null ? false : userGameStatus.GameStatusId == s.Id
                }).ToList();
                model.Statuses       = statuses;
                model.SelectedStatus = statuses.Where(s => s.Selected != false).Select(s => s.Value.ToString()).FirstOrDefault();
            }
            return(View(model));
        }