public Task <List <Team> > Get([FromQuery] TeamQuery teamQuery)
 {
     return(context.SeasonTeams.Include(st => st.Season)
            .Include(st => st.Team)
            .Where(st => st.Season.Year == teamQuery.Season)
            .Select(st => st.Team)
            .ToListAsync());
 }
Exemplo n.º 2
0
        public async Task <BacklogResponse <Team[]> > GetTeamsAsync(TeamQuery query = null)
        {
            query = query ?? new TeamQuery();

            var response = await GetAsync($"/api/v2/teams", query.Build()).ConfigureAwait(false);

            return(await CreateResponseAsync <Team[], List <_Team> >(
                       response,
                       HttpStatusCode.OK,
                       data => data.Select(x => new Team(x, this)).ToArray()).ConfigureAwait(false));
        }
Exemplo n.º 3
0
        public async Task <QueryResult <Team> > GetTeams(TeamQuery queryObj)
        {
            var result = new QueryResult <Team>();
            var query  = context.Teams
                         .Include(t => t.Users)
                         .ThenInclude(ut => ut.User)
                         .AsQueryable();

            var columnMap = new Dictionary <string, Expression <Func <Team, object> > >
            {
                ["name"] = t => t.Name,
            };

            query             = query.ApplyOrderBy(queryObj, columnMap);
            result.TotalItems = query.Count();

            query        = query.ApplyPaging(queryObj);
            result.Items = await query.ToListAsync();

            return(result);
        }
Exemplo n.º 4
0
        public async Task <IActionResult> GetTeams([FromQuery] TeamQuery query)
        {
            var teams = await _store.GetTeams();

            if (query.Format == ResponseFormat.Csv)
            {
                await using var sw = new StringWriter();
                await using (var w = new CsvWriter(sw, CultureInfo.InvariantCulture))
                {
                    w.Configuration.TypeConverterCache.AddConverter <bool>(new LowercaseBooleanConverter());
                    await w.WriteRecordsAsync(teams.Select(x => new CsvTeam(x)));
                }

                return(Ok(sw.ToString()));
            }

            return(Ok(new ApiResponse <ApiTeam>
            {
                Data = teams.Select(u => new ApiTeam(u))
            }));
        }
Exemplo n.º 5
0
        public async Task <TeamQueryResponse> QueryTeams(TeamQuery query)
        {
            await Task.CompletedTask;

            if (query.Id != null)
            {
                return new TeamQueryResponse {
                           Items = stagedTeams.Values.Where(t => t.Id == query.Id)
                }
            }
            ;
            if (query.AssignedCommunityCode != null)
            {
                return new TeamQueryResponse {
                           Items = stagedTeams.Values.Where(t => t.AssignedCommunities.Any(c => c.Code == query.AssignedCommunityCode))
                }
            }
            ;
            return(new TeamQueryResponse {
                Items = stagedTeams.Values
            });
        }
Exemplo n.º 6
0
        public async Task <PagingCollection <TeamListItem> > GetAsync(TeamQuery query, long?userId = null)
        {
            var teamQuery = from team in _appContext.Teams.Include(i => i.TrainerTeams)
                            where team.Status == TeamStatus.Available &&
                            (!userId.HasValue || userId.Value == team.AuthorId ||
                             team.TrainerTeams.Any(i => i.TrainerId == userId.Value)) &&
                            (query.Country == null || team.Country.Contains(query.Country)) &&
                            (query.City == null || team.City.Contains(query.City))
                            select team;

            return(await(from team in teamQuery
                         select new TeamListItem
            {
                Id = team.Id,
                City = team.City,
                Country = team.Country,
                PhotoUrl = team.PhotoUrl,
                Title = team.Title,
                PhoneNumber = team.PhoneNumber,
                SubTitle = team.SubTitle,
                About = team.About
            }).GetPageAsync(query.Offset, query.Count));
        }
Exemplo n.º 7
0
        public async Task <PartialCollectionResponse <TeamListItem> > GetAll([FromQuery] TeamQuery request)
        {
            var teams = await _service.GetAsync(request);

            return(teams.ToPartialCollectionResponse());
        }
Exemplo n.º 8
0
        public async Task <PartialCollectionResponse <TeamListItem> > GetSelfTeams([FromQuery] TeamQuery query)
        {
            var teams = await _service.GetAsync(query, User.GetUserId());

            return(teams.ToPartialCollectionResponse());
        }