示例#1
0
        public void SortByName_AllValidPets_Success()
        {
            var data = PetsMock.GetAllValidPets();
            var pets = _service.SortByName(data).ToArray();

            data.Sort((pet, pet1) => string.Compare(pet.Name, pet1.Name, StringComparison.Ordinal));

            for (var i = 0; i < pets.Length; i++)
            {
                Assert.Equal(pets[i], data[i]);
            }
        }
        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
            });
        }