protected override JobAdSortContent GetContent(Guid jobAdId, ConcurrentDictionary <Guid, EmployerContent> cache) { var jobAd = _jobAdsQuery.GetJobAd <JobAd>(jobAdId); if (jobAd == null) { return(null); } var employer = cache != null?cache.GetOrAdd(jobAd.PosterId, GetEmployerContent) : GetEmployerContent(jobAd.PosterId); return(new JobAdSortContent { JobAd = jobAd, LastRefreshTime = _jobAdsQuery.GetLastRefreshTime(jobAdId), Employer = employer, }); }
public void TestRefreshJobAds() { var employer = CreateEmployer(); var jobAd1 = PostRefreshJobAd(employer, DateTime.Now.AddDays(-20), null); var jobAd2 = PostRefreshJobAd(employer, DateTime.Now.AddDays(-20), DateTime.Now.AddDays(-4)); var jobAd3 = PostRefreshJobAd(employer, DateTime.Now.AddDays(-20), null); var jobAd4 = PostRefreshJobAd(employer, DateTime.Now.AddDays(-20), DateTime.Now.AddDays(-20)); var jobAd5 = PostRefreshJobAd(employer, DateTime.Now.AddDays(-20), DateTime.Now.AddDays(-8)); Assert.AreEqual(null, _jobAdsQuery.GetLastRefreshTime(jobAd1.Id)); var lastRefreshTime2 = _jobAdsQuery.GetLastRefreshTime(jobAd2.Id); Assert.IsNotNull(lastRefreshTime2); Assert.AreEqual(DateTime.Now.AddDays(-4).Date, lastRefreshTime2.Value.Date); Assert.AreEqual(null, _jobAdsQuery.GetLastRefreshTime(jobAd3.Id)); var lastRefreshTime4 = _jobAdsQuery.GetLastRefreshTime(jobAd4.Id); Assert.IsNotNull(lastRefreshTime4); Assert.AreEqual(DateTime.Now.AddDays(-20).Date, lastRefreshTime4.Value.Date); var lastRefreshTime5 = _jobAdsQuery.GetLastRefreshTime(jobAd5.Id); Assert.IsNotNull(lastRefreshTime5); Assert.AreEqual(DateTime.Now.AddDays(-8).Date, lastRefreshTime5.Value.Date); new UpdateJobAdsTask(_jobAdsCommand, _jobAdsQuery).ExecuteTask(); Assert.AreEqual(null, _jobAdsQuery.GetLastRefreshTime(jobAd1.Id)); lastRefreshTime2 = _jobAdsQuery.GetLastRefreshTime(jobAd2.Id); Assert.IsNotNull(lastRefreshTime2); Assert.AreEqual(DateTime.Now.AddDays(-4).Date, lastRefreshTime2.Value.Date); Assert.AreEqual(null, _jobAdsQuery.GetLastRefreshTime(jobAd3.Id)); lastRefreshTime4 = _jobAdsQuery.GetLastRefreshTime(jobAd4.Id); Assert.IsNotNull(lastRefreshTime4); Assert.AreEqual(DateTime.Now.Date, lastRefreshTime4.Value.Date); lastRefreshTime5 = _jobAdsQuery.GetLastRefreshTime(jobAd5.Id); Assert.IsNotNull(lastRefreshTime5); Assert.AreEqual(DateTime.Now.Date, lastRefreshTime5.Value.Date); new UpdateJobAdsTask(_jobAdsCommand, _jobAdsQuery).ExecuteTask(); Assert.AreEqual(null, _jobAdsQuery.GetLastRefreshTime(jobAd1.Id)); lastRefreshTime2 = _jobAdsQuery.GetLastRefreshTime(jobAd2.Id); Assert.IsNotNull(lastRefreshTime2); Assert.AreEqual(DateTime.Now.AddDays(-4).Date, lastRefreshTime2.Value.Date); Assert.AreEqual(null, _jobAdsQuery.GetLastRefreshTime(jobAd3.Id)); lastRefreshTime4 = _jobAdsQuery.GetLastRefreshTime(jobAd4.Id); Assert.IsNotNull(lastRefreshTime4); Assert.AreEqual(DateTime.Now.Date, lastRefreshTime4.Value.Date); lastRefreshTime5 = _jobAdsQuery.GetLastRefreshTime(jobAd5.Id); Assert.IsNotNull(lastRefreshTime5); Assert.AreEqual(DateTime.Now.Date, lastRefreshTime5.Value.Date); _jobAdsCommand.CloseJobAd(jobAd4); Assert.AreEqual(null, _jobAdsQuery.GetLastRefreshTime(jobAd1.Id)); lastRefreshTime2 = _jobAdsQuery.GetLastRefreshTime(jobAd2.Id); Assert.IsNotNull(lastRefreshTime2); Assert.AreEqual(DateTime.Now.AddDays(-4).Date, lastRefreshTime2.Value.Date); Assert.AreEqual(null, _jobAdsQuery.GetLastRefreshTime(jobAd3.Id)); Assert.AreEqual(null, _jobAdsQuery.GetLastRefreshTime(jobAd4.Id)); lastRefreshTime5 = _jobAdsQuery.GetLastRefreshTime(jobAd5.Id); Assert.IsNotNull(lastRefreshTime5); Assert.AreEqual(DateTime.Now.Date, lastRefreshTime5.Value.Date); }