Inheritance: ChallengeViewModel
        public ActionResult Make(CreateChallengeViewModel model)
        {
            model.ChallengerId = CurrentUser.Id;

            var opponent = UnitOfWork.Find<ChessUser>(model.OpponentId);

            var challenge = new Challenge()
            {
                ChallengingPlayer = CurrentUser,
                DarkPlayer = model.IsPlayerDark ? CurrentUser : opponent,
                LightPlayer = !model.IsPlayerDark ? CurrentUser : opponent,
                DateTime = DateTime.Now,
                Title = model.ChallengeTitle
            };

            UnitOfWork.Add(challenge);
            UnitOfWork.Commit();

            return RedirectToAction("Make");
        }
        public ActionResult Make()
        {
            var playersToChallenge = UnitOfWork.All<ChessUser>(p => p.Id != CurrentUser.Id);

            var currentChallenges =
                UnitOfWork.All<Challenge>(c => c.ChallengingPlayer.Id == CurrentUser.Id);

            var model = new CreateChallengeViewModel
            {
                Players = playersToChallenge.Select(AutoMapper.Mapper.Map<PlayerViewModel>).ToList(),
                CurrentChallenges = currentChallenges.Select(c => new ChallengeViewModel
                {
                    Accepted = c.Accepted.HasValue && c.Accepted.Value,
                    ChallengerId = c.ChallengingPlayer.Id,
                    ChallengeTitle = c.Title,
                    DarkPlayerId = c.DarkPlayer.Id,
                    LightPlayerId = c.LightPlayer.Id

                }).ToList()
            };

            return View(model);
        }