Пример #1
0
        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);
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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());
            }
        }