예제 #1
0
        public async Task <IList <RecordTime> > GetRecordsBrokeAsync(IDisciplineCalculator calculator, Distance distance, PersonCompetitor competitor, TimeSpan time)
        {
            if (distance.Competition == null)
            {
                throw new ArgumentNullException(nameof(distance), Resources.DistanceCompetitionIsNull);
            }
            if (competitor.Person == null)
            {
                throw new ArgumentNullException(nameof(competitor), Resources.PersonCompetitorPersonIsNull);
            }

            var season = calculator.Season(distance.Competition.Starts);
            var age    = calculator.SeasonAge(season, competitor.Person.BirthDate);

            return(await(from rt in context.RecordTimes
                         where rt.LicenseIssuerId == distance.Competition.LicenseIssuerId &&
                         rt.Discipline == distance.Competition.Discipline &&
                         rt.DistanceDiscipline == distance.Discipline &&
                         rt.Distance == distance.Value &&
                         rt.Gender == competitor.Person.Gender &&
                         ((rt.Type == RecordType.National || rt.Type == RecordType.World) ||
                          (rt.Type == RecordType.Track && rt.VenueCode == distance.VenueCode) ||
                          (rt.Type == RecordType.TrackAge && rt.VenueCode == distance.VenueCode && rt.FromAge <= age && rt.ToAge >= age)) &&
                         time < rt.Time
                         select rt).ToListAsync());
        }
 public IQueryable <PersonTime> Query(IDisciplineCalculator calculator, IQueryable <PersonTime> times, DateTime?reference = null)
 {
     return(from pt in times
            where pt.Venue.ContinentCode == continentCode
            select pt);
 }
예제 #3
0
 public override IQueryable <PersonTime> Query(IDisciplineCalculator calculator, IQueryable <PersonTime> times, DateTime?reference)
 {
     return(from pt in base.Query(calculator, times, reference)
            where pt.VenueCode == venueCode
            select pt);
 }
예제 #4
0
 public IQueryable <PersonTime> Query(IDisciplineCalculator calculator, IQueryable <PersonTime> times, DateTime?reference)
 {
     return(from pt in times
            where pt.License.Venue.Districts.Any(d => d.Level == level && d.Code == code)
            select pt);
 }
 public IQueryable <PersonTime> Query(IDisciplineCalculator calculator, IQueryable <PersonTime> times, DateTime?reference = null)
 {
     return(from pt in times
            where pt.Date >= @from
            select pt);
 }
 public IQueryable <PersonTime> Query(IDisciplineCalculator calculator, IQueryable <PersonTime> times, DateTime?reference = null)
 {
     return(times);
 }
 public IQueryable <PersonTime> Query(IDisciplineCalculator calculator, IQueryable <PersonTime> times, DateTime?reference = null)
 {
     return(from pt in times
            where pt.License.ClubCountryCode == key.CountryCode && pt.License.ClubCode == key.Code
            select pt);
 }
예제 #8
0
 public IQueryable <PersonTime> Query(IDisciplineCalculator calculator, IQueryable <PersonTime> times, DateTime?reference = null)
 {
     return(from pt in times
            where pt.License.Person.Gender == gender
            select pt);
 }
예제 #9
0
 public static int Season(this IDisciplineCalculator calculator, DateTime?reference = null)
 {
     reference = reference ?? DateTime.UtcNow.Date;
     return(calculator.Season(reference.Value));
 }
예제 #10
0
 public IQueryable <PersonTime> Query(IDisciplineCalculator calculator, IQueryable <PersonTime> times, DateTime?reference)
 {
     return(from pt in times
            where pt.NationalityCode == nationalityCode
            select pt);
 }
예제 #11
0
 public virtual IQueryable <PersonTime> Query(IDisciplineCalculator calculator, IQueryable <PersonTime> times, DateTime?reference)
 {
     return(from pt in times
            where pt.Date >= From && pt.Date < To
            select pt);
 }
예제 #12
0
 public IQueryable <PersonTime> Query(IDisciplineCalculator calculator, IQueryable <PersonTime> times, DateTime?reference = null)
 {
     return(from pt in times
            where categories.Contains(pt.License.Category)
            select pt);
 }