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());
        }
Пример #2
0
        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));
            }
        }