public virtual ActionResult ViewBio(string id) { var player = PlayerProcedures.GetPlayerFromMembership(id); ViewBag.Name = player.GetFullName(); var output = new BioPageViewModel(); output.Player = player; output.PlayerBio = SettingsProcedures.GetPlayerBioFromMembershipId(id); if (output.PlayerBio == null) { TempData["Error"] = "It seems that this player has not written a player biography yet."; return(RedirectToAction(MVC.PvP.Play())); } output.Badges = StatsProcedures.GetPlayerBadges(player.MembershipId); output.IsMyBio = User.Identity.GetUserId() == player.MembershipId; IContributionRepository contributionRepo = new EFContributionRepository(); IEnumerable <BioPageContributionViewModel> mySpells = from c in contributionRepo.Contributions where c.OwnerMembershipId == player.MembershipId && c.ProofreadingCopy && c.IsLive select new BioPageContributionViewModel { SpellName = c.Skill_FriendlyName, FormName = c.Form_FriendlyName, }; IEffectContributionRepository effectContribtionRepo = new EFEffectContributionRepository(); IEnumerable <BioPageEffectContributionViewModel> myEffects = from c in effectContribtionRepo.EffectContributions where c.OwnerMemberhipId == player.MembershipId && c.ProofreadingCopy && c.IsLive select new BioPageEffectContributionViewModel { EffectName = c.Effect_FriendlyName, SpellName = c.Skill_FriendlyName }; myEffects = myEffects.ToList(); ViewBag.MyContributions = mySpells.ToList(); ViewBag.MyEffectContributions = myEffects.ToList(); return(View(MVC.Settings.Views.ViewBio, output)); }