public async Task <IEnumerable <FullHallBlModel> > GetHalls(int cinemaId) { CinemaDalModel cinema = await _cinemaRepository.GetCinemaById(cinemaId); if (cinema == null) { return(null); } IEnumerable <HallDalDtoModel> halls = await _cinemaRepository.GetHalls(cinemaId); List <FullHallBlModel> results = new List <FullHallBlModel>(); if (halls != null) { foreach (HallDalDtoModel hall in halls) { Task <IEnumerable <PlaceDalDtoModel> > t1 = _cinemaRepository.GetPlaces(hall.Id); Task <IEnumerable <HallSchemeDalDtoModel> > t2 = _cinemaRepository.GetHallScheme(hall.Id); IEnumerable <PlaceDalDtoModel> places = await t1; PlaceBlModel[] placesBlArray = places.Select( x => new PlaceBlModel ( x.Id, x.HallId, new PlaceTypeBlModel(x.TypeId, x.Type), x.RowNumber, x.PlaceNumber, x.Price, x.PriceId, x.PlaceStatus ) ).ToArray(); IEnumerable <HallSchemeDalDtoModel> hallSchemeResponse = await t2; HallSchemeBlModel[] hallSchemeBlModels = hallSchemeResponse.Select(Mapper.Map <HallSchemeBlModel>).ToArray(); results.Add(new FullHallBlModel( hall.Id, hall.CinemaId, hall.HallName, hall.CinemaName, placesBlArray, hallSchemeBlModels )); } } return(results); }