public async Task <TrainModel> GetTrainAsync(int trainId) { var trainEntity = await _trainRepository.FindAsync(trainId); if (trainEntity is null) { return(null); } return(new TrainModel { TrainId = trainEntity.TrainId, TrainName = trainEntity.TrainName, Wagons = trainEntity.Wagons .Select(x => new WagonModel() { WagonId = x.WagonId, WagonPosition = x.WagonPosition, NumberOfChairs = x.Chairs.Count, Chairs = x.Chairs.Select(x => new ChairModel() { ChairId = x.ChairId, WagonId = x.WagonId, NearWindow = x.NearWindow, Number = x.Number, Reserved = x.Reserved }) .ToList() }) .ToList() }); }