public ActionResult DetailForPrint(int? teamid)
        {
            if (teamid == null)
            {
                ViewBag.Message = "Id týmu nebylo uvedeno.";
                return View();
            }

            TeamDetailViewModel model = new TeamDetailViewModel();
            model.Team = unitOfWork.TeamRepository
                .Get(
                    filter: t => (t.ID == teamid && t.Status == Status.Active),
                    includeProperties: "Users,Players")
                .FirstOrDefault();
            model.TeamId = model.Team.ID;

            return View(model);
        }
        public ActionResult Add(TeamDetailViewModel model)
        {
            model.Team = unitOfWork.TeamRepository.GetByID(model.TeamId);
            if (User.Identity.Name != model.Team.Users.Name && User.IsInRole("Common"))
            {
                AddApplicationMessage("Na tuto akci nemáte oprávnění", MessageSeverity.Warning);
                return Redirect(Request.UrlReferrer.ToString());
            }

            var playerTypes = unitOfWork.PlayerTypeRepository.Get(filter: pt => pt.Race == model.Team.Race).ToList();
            model.playertypes = new SelectList(playerTypes, "ID", "Name");
            var selectedType = playerTypes.First(pt => pt.ID == model.SelectedPlayerTypeId);

            if (selectedType.Value > model.Team.Treasury)
            {
                ModelState.AddModelError("Treasury", "Team nemá dostatek peněz na nákup.");
            }

            if (model.Team.Players.Count(p => (p.Type == model.SelectedPlayerTypeId && p.Status == Status.Active)) >= selectedType.Limit)
            {
                ModelState.AddModelError("Limit", "Team dosáhl limitu hráčů tohoto typu v rosteru.");
            }

            if (!ModelState.IsValid)
            {
                model.AddNewPlayerErrors = new List<string>();
                foreach (ModelState modelState in ModelState.Values)
                {
                    foreach (ModelError error in modelState.Errors)
                    {
                        model.AddNewPlayerErrors.Add(error.ErrorMessage);
                    }
                }
                model.viewAddPlayerModal = true;
                return View("../Team/Detail", model);
            }

            var newPlayer = new Players()
            {
                Team = model.Team.ID,
                Type = model.SelectedPlayerTypeId,
                Name = model.NewPlayerName,
                Number = model.PlayerNumber,
                MA = selectedType.MA,
                ST = selectedType.ST,
                AG = selectedType.AG,
                AV = selectedType.AV,
                Value = selectedType.Value,
                CAS = 0,
                COMP = 0,
                INT = 0,
                Kills = 0,
                MNG = 0,
                MVP = 0,
                NI = 0,
                SPP = 0,
                TD = 0,
                Journeyman = 0,
                Level = 0,
                Status = Status.Active
            };

            if (selectedType.Skillset != null)
            {
                var typeskills = selectedType.Skillset.Split('|').ToList();
                foreach (var ts in typeskills)
                    newPlayer.PlayerSkills.Add(new PlayerSkills()
                    {
                        Skill = (Skills)Enum.Parse(typeof(Skills), ts),
                        Player = newPlayer.ID
                    });
            }
            model.Team.Treasury -= selectedType.Value;
            model.Team.Value += selectedType.Value;

            unitOfWork.TeamRepository.Update(model.Team);
            unitOfWork.PlayerRepository.Insert(newPlayer);
            unitOfWork.Save();
            AddApplicationMessage("Hráč byl přidán", MessageSeverity.Success);

            return RedirectToAction("Detail", "Team", new { teamid = model.TeamId });
        }
        public ActionResult Detail(int? teamid)
        {
            if (teamid == null)
            {
                ViewBag.Message = "Id týmu nebylo uvedeno.";
                return RedirectToAction("Error","Home");
            }

            TeamDetailViewModel model = new TeamDetailViewModel();
            model.Team = unitOfWork.TeamRepository
                .Get(
                    filter: t => (t.ID == teamid && t.Status == Status.Active),
                    includeProperties: "Users,Players")
                .FirstOrDefault();
            model.TeamId = model.Team.ID;

            var playerTypes = unitOfWork.PlayerTypeRepository.Get(filter: pt => pt.Race == model.Team.Race).ToList();
            model.playertypes = new SelectList(playerTypes, "ID", "Name");

            return View(model);
        }