Exemplo n.º 1
0
 public Task <GroupDTO[]> GetGroups(GroupParametersFilter groupParametersFilter)
 {
     return(FindAll().Where(x => groupParametersFilter == null ||
                            (string.IsNullOrEmpty(groupParametersFilter.Name) || x.Name == groupParametersFilter.Name))
            .OrderBy(x => x.Name)
            .Skip((groupParametersFilter.PageNumber - 1) * groupParametersFilter.PageSize)
            .Take(groupParametersFilter.PageSize).Select(x => new GroupDTO
     {
         Id = x.Id,
         Name = x.Name,
         StudentsCount = x.StudentsGroups.Count
     }).ToArrayAsync());
 }
        public async Task<IActionResult> GetGroups([FromQuery] GroupParametersFilter groupParametersFilter)
        {
            try
            {
                var groups = await groupRepository.GetGroups(groupParametersFilter);
                logger.LogInformation($"Returned {groups.Length} groups from database", "GetGroups");
                return Ok(groups);
            }
            catch
            {
                var message = "Error has happened during receiving groups from the database";
                logger.LogError(message, "GetGroups");
                return BadRequest(message);
            }

        }