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
            });
        }
示例#2
0
        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
            });
        }