Exemple #1
0
    public ActionResult Edit(int id, CreatePlayerViewModel vm)
    {
        Player player = CompositionRoot.DocumentSession.Load <Player>(id);

        if (player == null)
        {
            throw new HttpException(404, "Player not found");
        }

        // prevent duplicates
        Player[] duplicates = CompositionRoot.DocumentSession.Query <Player, PlayerSearch>().Where(x => x.Name == vm.Name).ToArray();
        if (duplicates.Any(x => x.Id != player.Id))
        {
            ModelState.AddModelError("namn", "Namnet är redan registrerat");
        }

        if (!ModelState.IsValid)
        {
            return(View(vm));
        }

        player.SetName(vm.Name);
        player.SetEmail(vm.Email);
        player.SetStatus(vm.Status);
        player.SetPersonalNumber(vm.PersonalNumber.GetValueOrDefault());
        player.SetNickname(vm.Nickname);
        HashSet <string> allowedRoles = new(
            WebsiteRoles.UserGroup().Except(WebsiteRoles.PlayerGroup()).Select(x => x.Name));

        player.SetRoles(vm.Roles.Where(x => allowedRoles.Contains(x)).ToArray());

        return(RedirectToAction("Index"));
    }
Exemple #2
0
    public ActionResult Delete(int id)
    {
        Player player = CompositionRoot.DocumentSession.Load <Player>(id);

        if (player == null)
        {
            throw new HttpException(404, "Player not found");
        }

        return(View(new PlayerViewModel(player, WebsiteRoles.UserGroup().ToDictionary(x => x.Name))));
    }
Exemple #3
0
    public ActionResult Index()
    {
        List <Player> players = CompositionRoot.DocumentSession.Query <Player, PlayerSearch>()
                                .OrderBy(p => p.PlayerStatus)
                                .ThenBy(p => p.Name)
                                .ToList();
        List <PlayerViewModel> vm = players.Where(x => x.Hidden == false)
                                    .Select(x => new PlayerViewModel(x, WebsiteRoles.UserGroup().ToDict()))
                                    .ToList();

        return(View(vm));
    }
    public ActionResult EditPlayers(string rosterId)
    {
        Roster roster = CompositionRoot.DocumentSession
                        .Include <Roster>(r => r.Players)
                        .Load <Roster>(rosterId);

        if (roster == null)
        {
            throw new HttpException(404, "Roster not found");
        }

        List <Player> availablePlayers = CompositionRoot.DocumentSession.Query <Player, PlayerSearch>()
                                         .OrderBy(x => x.Name)
                                         .Where(p => p.PlayerStatus == Player.Status.Active)
                                         .ToList();

        EditRosterPlayersViewModel vm = new()
        {
            RosterViewModel  = CompositionRoot.DocumentSession.LoadRosterViewModel(roster),
            AvailablePlayers = availablePlayers.Select(x => new PlayerViewModel(x, WebsiteRoles.UserGroup().ToDict())).ToArray()
        };

        return(View(vm));
    }