コード例 #1
0
        public async Task <IActionResult> GetPlayersInSquad(int squadId,
                                                            [FromQuery] SquadPlayerQuery squadPlayerQuery)
        {
            squadPlayerQuery.SquadId = squadId;
            if (squadPlayerQuery.SeasonId.HasValue && squadPlayerQuery.ClubId.HasValue)
            {
                var squad = await _squadService
                            .GetDetailBySeasonIdAndClubIdAsync(squadPlayerQuery.SeasonId.Value, squadPlayerQuery.ClubId.Value);

                squadPlayerQuery.SquadId = squad.Id;
            }

            var players = await _squadService.GetPlayersInSquadAsync(squadPlayerQuery);

            var returnPlayers = _mapper.Map <PaginatedList <SquadPlayerListDto> >(players);

            return(Ok(returnPlayers));
        }
コード例 #2
0
        public async Task <PaginatedList <SquadPlayer> > GetAsync(SquadPlayerQuery squadPlayerQuery)
        {
            var query = Context.SquadPlayers
                        .Include(sp => sp.Squad)
                        .Include(sp => sp.Player)
                        .Where(sp => sp.SquadId == squadPlayerQuery.SquadId)
                        .AsQueryable();

            if (squadPlayerQuery.IsActive)
            {
                query = query.Where(sp => sp.EndDate == null || sp.EndDate > DateTime.Now);
            }

            if (squadPlayerQuery.Name != null)
            {
                query = query.Where(sp => sp.Player.Name.Contains(squadPlayerQuery.Name));
            }

            if (squadPlayerQuery.PositionType.HasValue)
            {
                query = query.Where(sp => sp.Player.PositionType == squadPlayerQuery.PositionType);
            }

            var columnsMap = new Dictionary <string, Expression <Func <SquadPlayer, object> > >()
            {
                ["id"]           = sp => sp.Player.Id,
                ["name"]         = sp => sp.Player.Name,
                ["positionType"] = sp => sp.Player.PositionType,
                ["nationality"]  = sp => sp.Player.Nationality,
                ["birthdate"]    = sp => sp.Player.Birthdate,
                ["height"]       = sp => sp.Player.Height,
                ["weight"]       = sp => sp.Player.Weight,
                ["number"]       = sp => sp.Number,
                ["startDate"]    = sp => sp.StartDate,
                ["endDate"]      = sp => sp.EndDate
            };

            query = query.Sort(squadPlayerQuery, columnsMap);

            return(await PaginatedList <SquadPlayer> .CreateAsync(query, squadPlayerQuery.PageNumber,
                                                                  squadPlayerQuery.PageSize));
        }
コード例 #3
0
 public async Task <PaginatedList <SquadPlayer> > GetPlayersInSquadAsync(SquadPlayerQuery squadPlayerQuery)
 {
     return(await _squadPlayerRepository.GetAsync(squadPlayerQuery));
 }