public IList<MorgueFile> GetValidMorgues(RoundProcessRequest roundRequest, IMorgueValidator validator) { IDictionary<GameFetchRequest, ScraperResponse> moregueIndexes = GetMorgueIndexes(roundRequest.GameFetchRequests); List<MorgueFile> morgueFiles = GetMorgueFiles(moregueIndexes, roundRequest.Round); var validMorgueFiles = new List<MorgueFile>(); foreach (GameFetchRequest gameRequest in roundRequest.GameFetchRequests) { var morgue = GetFirstValidMorgueFile(morgueFiles.Where(m => m.ParticipantId == gameRequest.ParticipantId), validator); if (morgue != null) validMorgueFiles.Add(morgue); } return validMorgueFiles; }
private MorgueFile GetFirstValidMorgueFile(IEnumerable<MorgueFile> files, IMorgueValidator validator) { return files.OrderBy(m => m.LastModified).FirstOrDefault(validator.Validate); }