示例#1
0
        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,
            });
        }
示例#2
0
        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);
        }