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); }
public RankedPersonTime(int ranking, PersonTime time, bool sameRankingAsPrevious = false) { Ranking = ranking; Time = time; SameRankingAsPrevious = sameRankingAsPrevious; }