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)); }
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); }