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