public async Task <IEnumerable <GroupAttendanceDto> > HandleAsync(GroupAttendanceQuery query) { var dateFrom = !string.IsNullOrEmpty(query.DateFrom) ? DateTime.Parse(query.DateFrom) : DateTime.MinValue; var dateTo = !string.IsNullOrEmpty(query.DateTo) ? DateTime.Parse(query.DateTo) : DateTime.MaxValue; var groupAttendances = _dbContext.Attendances.Include(a => a.AttendantPlayers) .Where(a => a.GroupId == query.GroupId && a.Date >= dateFrom && a.Date <= dateTo) .Select(a => new GroupAttendanceDto() { Date = a.Date.ToShortDateString(), GroupId = query.GroupId, AttendantPlayers = a.AttendantPlayers.Select(ap => ap.PlayerId) }); return(await groupAttendances.ToListAsync()); }
public async Task <ActionResult> GetGroupAttendance(Guid groupId, [FromQuery] string dateFrom, [FromQuery] string dateTo) { var query = new GroupAttendanceQuery() { GroupId = groupId, DateFrom = dateFrom, DateTo = dateTo }; var results = await _queryDispatcher.QueryAsync <IEnumerable <GroupAttendanceDto> >(query); if (results == null) { return(NotFound()); } else { return(Ok(results)); } }