public async Task <ActionResult> GetTodayGroups([FromQuery] Guid coachId) { var query = new TodayGroupsQuery() { CoachId = coachId }; var result = await _queryDispatcher.QueryAsync <IEnumerable <ScheduledTrainingDto> >(query); if (result == null) { return(NotFound()); } return(Ok(result)); }
public async Task <IEnumerable <ScheduledTrainingDto> > HandleAsync(TodayGroupsQuery query) { var today = DateTime.Now.DayOfWeek; var groups = await _dbContext.TrainingGroups.Include(tg => tg.PlayerTrainingGroups) .Where(g => g.Day == today).Select(g => new ScheduledTrainingDto() { GroupId = g.Id.ToString(), GroupName = g.Name, CoachName = $"{g.Coach.Name} {g.Coach.Surname}", LevelName = g.LevelName, Day = g.Day, Hour = g.Hour.ToString(), Players = g.PlayerTrainingGroups.Select(ptg => new PlayerDto() { Id = ptg.PlayerId }) }).ToListAsync(); foreach (var group in groups) { var playerIds = group.Players.Select(g => g.Id).ToList(); if (playerIds.Count == 0) { group.Players = new List <PlayerDto>(); } else { var players = await _playersServiceClient.GetPlayers(playerIds); group.Players = players.ToList().Select(p => new PlayerDto() { Name = p.Name, Surname = p.Surname, Age = p.Age, LevelId = p.LevelId, Points = p.Points, Id = p.Id }); } } return(groups); }