public IReadOnlyCollection <Resume> GetBy( Region region, Rubric?rubric, Experience?experience, uint?salary, uint?maxAge, uint?minAge, string seachString) { var cachedQuery = _queryRepository.FindBy(region, rubric, experience, salary, maxAge, minAge, seachString); if (cachedQuery == null) { var createdQuery = new Query(region, rubric, experience, salary, maxAge, minAge, seachString); _queryRepository.Save(createdQuery); var loadedResumes = _externalResumeApiClient.LoadResumes(createdQuery); _resumeRepository.SaveOrUpdateRange(loadedResumes); return(loadedResumes); } if (cachedQuery.IsActual) { return(_resumeRepository.GetBy(cachedQuery)); } else { cachedQuery.LastUpdateDate = DateTime.UtcNow; _queryRepository.Update(cachedQuery); var loadedResumes = _externalResumeApiClient.LoadResumes(cachedQuery); _resumeRepository.SaveOrUpdateRange(loadedResumes); return(loadedResumes); } }
public void LoadResumes_FromEkaterinburg_Correct() { //Arrange var query = new Query(Region.Ekaterinburg); //Act var result = _externalResumeApiClient.LoadResumes(query); //Assert Assert.NotNull(result); Assert.True(result.Any()); Assert.True(result.All(x => x.City == Region.Ekaterinburg)); }