コード例 #1
0
        public async Task <IPersonLicenseTime> FindHistoricalTimeAsync(string licenseIssuerId, string discipline, string distanceDiscipline, int distanceValue,
                                                                       string licenseKey,
                                                                       params IHistoricalTimeSelector[] selectors)
        {
            var expert = calculatorManager.Find(discipline);

            if (expert == null)
            {
                throw new InvalidDisciplineException();
            }

            var query = Query(licenseIssuerId, discipline, distanceDiscipline, distanceValue, licenseKey);

            foreach (var selector in selectors)
            {
                PersonTime time = null;

                var personTimeSelector = selector as IPersonTimeSelector;
                if (personTimeSelector != null)
                {
                    time = await personTimeSelector.Query(expert, query).OrderBy(pt => pt.Time).FirstOrDefaultAsync();
                }

                if (time != null)
                {
                    return(time);
                }
            }

            return(null);
        }
コード例 #2
0
 public RankedPersonTime(int ranking, PersonTime time, bool sameRankingAsPrevious = false)
 {
     Ranking = ranking;
     Time    = time;
     SameRankingAsPrevious = sameRankingAsPrevious;
 }