예제 #1
0
        public static List <results> GetResultsInRace(int id, ModelF1 db)
        {
            var q = from res in db.results
                    where res.raceId == id
                    select res;

            return(q.ToList());
        }
예제 #2
0
 public static List <races> GetRacesByConstructorId(int id, ModelF1 db)
 {
     return(db.races.Join(db.results,
                          ra => ra.raceId,
                          re => re.raceId,
                          (ra, re) => new { ra, re.constructorId })
            .Where(x => x.constructorId == id).Select(x => x.ra).Distinct()
            .OrderBy(x => x.year).ThenBy(x => x.round).ToList());
 }
예제 #3
0
        public static races GetRaceByID(int?id, ModelF1 db)
        {
            if (id == null)
            {
                return(null);
            }

            return(db.races.Where(x => x.raceId == id).FirstOrDefault());
        }
예제 #4
0
        public static List <drivers> GetDriversInRace(int id, ModelF1 db)
        {
            var q = from dri in db.drivers
                    join res in db.results
                    on dri.driverId equals res.driverId
                    where res.raceId == id
                    select dri;

            return(q.ToList());
        }
예제 #5
0
        public static List <constructors> GetConstructorsInRace(int id, ModelF1 db)
        {
            var q = (from res in db.results
                     join con in db.constructors
                     on res.constructorId equals con.constructorId
                     where res.raceId == id
                     select con).Distinct();

            return(q.ToList());
        }
예제 #6
0
        public static lapTimes GetTrackRecordCircuit(int id, ModelF1 db)
        {
            var q = from lap in db.lapTimes
                    join rac in db.races
                    on lap.raceId equals rac.raceId
                    join cir in db.circuits
                    on rac.circuitId equals cir.circuitId
                    where cir.circuitId == id
                    orderby lap.milliseconds
                    select lap;

            return(q.FirstOrDefault());
        }
예제 #7
0
        public static int GetSeasonsCount(ModelF1 db, int id)
        {
            var s = String.Format(
                @"select count(*)
                    from driverStandings
                    inner join (
                        select max(raceId) as raceId, year
                        from races
                        group by year
                    ) as A on driverStandings.raceId = A.raceId
                    where driverId = {0}"
                , id);

            return(db.Database.SqlQuery <int>(s).FirstOrDefault());
        }
예제 #8
0
        public static drivers GetDriverChampionByYear(int year, ModelF1 db)
        {
            var s = String.Format(
                @"select d.*
                    from driverStandings as ds
                    join (
	                    select MAX(r.raceId) as max
	                    from races as r
	                    where r.year = {0}
	                    ) as s
                    on ds.raceId = s.max
                    join drivers as d
                    on ds.driverId = d.driverId
                    where ds.position = 1"
                , year);

            return(db.Database.SqlQuery <drivers>(s).FirstOrDefault());
        }
예제 #9
0
        public static int GetFastestLapCount(ModelF1 db, int id)
        {
            var s = String.Format(
                @"select count(*)
                    from (
	                    select MIN(time) as 'fastest', raceId
                        from lapTimes
                        where driverId = {0}
                        group by raceId
                    ) as mine
                    inner join(
                        select MIN(time) as 'fastest', raceId
                        from lapTimes
                        group by raceId
                    ) as whole
                    on mine.fastest = whole.fastest"
                , id);

            return(db.Database.SqlQuery <int>(s).FirstOrDefault());
        }
예제 #10
0
 public static int GetRacesCount(ModelF1 db, int driverId)
 {
     return(db.results.Where(x => x.driverId == driverId).Count());
 }
예제 #11
0
 public static seasons GetSeasonByYear(int year, ModelF1 db)
 {
     return(db.seasons.Where(x => x.year == year).FirstOrDefault());
 }
예제 #12
0
 public static List <qualifying> GetQualyByRaceId(int id, ModelF1 db)
 {
     return(db.qualifying.Where(x => x.raceId == id).OrderBy(x => x.position).ToList());
 }
예제 #13
0
 public static List <races> GetRacesByConstructorId(string id, ModelF1 db)
 {
     return(GetRacesByConstructorId(db.constructors.Where(x => x.constructorRef == id)
                                    .Select(x => x.constructorId).FirstOrDefault(), db));
 }
예제 #14
0
 public static constructors GetConstructorsById(string reference, ModelF1 db)
 {
     return(db.constructors.Where(x => x.constructorRef == reference).FirstOrDefault());
 }
예제 #15
0
        public static List <status> GetStatusesInRace(List <results> results, int id, ModelF1 db)
        {
            var q = (from res in results
                     join sta in db.status
                     on res.statusId equals sta.statusId
                     where res.raceId == id
                     select sta).Distinct();

            return(q.ToList());
        }