Ejemplo n.º 1
0
        public async Task <OperationResult <IList <DTO.Competition.Detail> > > Lookup([FromQuery] DTO.Competition.Lookup lookup)
        {
            var result = await this.competitionService.SearchCompetitions(lookup);

            return(new OperationResult <IList <DTO.Competition.Detail> >(result.Data));
        }
Ejemplo n.º 2
0
        public async Task <ServiceResult <IList <DTO.Competition.Detail> > > SearchCompetitions(DTO.Competition.Lookup lookup)
        {
            var result       = new ServiceResult <IList <DTO.Competition.Detail> >();
            var competitions = alexandriaContext.Competitions
                               .Include(c => c.Teams)
                               .ThenInclude(t => t.TeamMemberships)
                               .Include(c => c.Game)
                               .Include(c => c.CompetitionLevel)
                               .Where(c => c.Active == lookup.Active);

            if (lookup.CompetitionLevel.HasValue)
            {
                competitions = competitions.Where(c => c.CompetitionLevelId == lookup.CompetitionLevel.Value);
            }

            if (lookup.Game.HasValue)
            {
                competitions = competitions.Where(c => c.GameId == lookup.Game.Value);
            }

            if (lookup.TeamSize.HasValue)
            {
                competitions = competitions.Where(c => c.MinTeamSize >= lookup.TeamSize.Value);
            }

            var finalCompetitions = await competitions.ToListAsync();

            var competitionDTOs = finalCompetitions.Select(AutoMapper.Mapper.Map <DTO.Competition.Detail>).ToList();

            result.Succeed(competitionDTOs);
            return(result);
        }