public async Task <ListPetsByGenderResponse> Handle(ListPetsByGender request, CancellationToken cancellationToken) { var records = new List <GenderGroupedPetsRecord>(); foreach (var gender in (PersonGender[])Enum.GetValues(typeof(PersonGender))) { var owners = await _peopleRepository.ListByGenderAsync(gender, cancellationToken) ?? new List <Person>(); var pets = new List <Pet>(); foreach (var owner in owners) { var ownersPets = await _petsRepository.ListAsync(owner.Name, cancellationToken) ?? new List <Pet>(); pets.AddRange(ownersPets); } records.Add(new GenderGroupedPetsRecord { Gender = gender, Pets = _sortingService.SortByName(pets) }); } return(new ListPetsByGenderResponse { Records = records }); }
public async Task <ListPetsResponse> Handle(ListPets request, CancellationToken cancellationToken) { var records = await _repository.ListAsync(request.OwnerName, cancellationToken); var pets = records as Pet[] ?? records.ToArray(); return(new ListPetsResponse { Count = pets.Length, Records = pets }); }