public async Task <IEnumerable <RaceListDTO> > ReadAsync() { List <RaceListDTO> raceListList = new List <RaceListDTO>(); foreach (Race race in context.Races) { var carInRaces = from carInRace in context.CarsInRace.AsParallel() where carInRace.Race == race orderby carInRace.TotalTime select carInRace; RaceListDTO raceList = new RaceListDTO { Id = race.Id, End = race.ActualEnd ?? race.PlannedEnd, Start = race.ActualStart ?? race.PlannedStart, TrackName = race.Track.Name, MaxCars = race.Track.MaxCars, NumberOfLaps = race.NumberOfLaps, NumberOfCars = carInRaces.Count(), WinningCar = carInRaces.FirstOrDefault().Car.Name, WinningDriver = carInRaces.FirstOrDefault().Car.Driver }; raceListList.Add(raceList); } return(raceListList); }
public IEnumerable <RaceListDTO> Read() { foreach (Race race in context.Races) { var carInRaces = from carInRace in context.CarsInRace where carInRace.Race == race orderby carInRace.TotalTime select carInRace; RaceListDTO raceList = new RaceListDTO { Id = race.Id, End = race.ActualEnd ?? race.PlannedEnd, Start = race.ActualStart ?? race.PlannedStart, TrackName = race.Track.Name, MaxCars = race.Track.MaxCars, NumberOfLaps = race.NumberOfLaps, NumberOfCars = carInRaces.Count(), WinningCar = carInRaces.FirstOrDefault().Car.Name, WinningDriver = carInRaces.FirstOrDefault().Car.Driver }; yield return(raceList); } }
public async Task TestReadList() { using (raceRepository) { Car car = new Car() { Driver = "Mads", Name = "Suzuki" }; Car car1 = new Car() { Driver = "Mads2", Name = "Suzuki" }; Car car2 = new Car() { Driver = "Mads3", Name = "Suzuki" }; var track = new Track() { BestTime = 121213123, LengthInMeters = 123214, MaxCars = 50, Name = "RaceTrack" }; var race = new Race() { NumberOfLaps = 5, PlannedEnd = new DateTime(1920, 11, 11), PlannedStart = new DateTime(1920, 11, 11), Track = track }; var carInRace = new CarInRace() { Car = car, Race = race, TotalTime = 120210 }; var carInRace2 = new CarInRace() { Car = car1, Race = race, TotalTime = 21314212421 }; var carInRace3 = new CarInRace() { Car = car2, Race = race, TotalTime = 214124214141 }; context.Add(carInRace); context.Add(carInRace2); context.Add(carInRace3); await context.SaveChangesAsync(); var raceList = new RaceListDTO() { End = race.PlannedEnd, Start = race.PlannedStart, Id = race.Id, MaxCars = race.Track.MaxCars, NumberOfCars = 3, NumberOfLaps = race.NumberOfLaps, TrackName = race.Track.Name, WinningCar = car.Name, WinningDriver = car.Driver }; Assert.Equal(new List <RaceListDTO> { raceList }, await raceRepository.ReadAsync()); } }