示例#1
0
        public void TestGetCreatedTimeJobAds()
        {
            var range    = new DateTimeRange(DateTime.Today.AddDays(-1), DateTime.Today);
            var employer = CreateEmployer();

            // No job ads.

            var jobAdIds = _jobAdsQuery.GetOpenJobAdIds(range);

            Assert.AreEqual(0, jobAdIds.Count);

            // One job ad yesterday.

            CreateJobAd(employer, DateTime.Now);
            var yesterday = CreateJobAd(employer, DateTime.Now.AddDays(-1));

            CreateJobAd(employer, DateTime.Now.AddDays(-2));

            jobAdIds = _jobAdsQuery.GetOpenJobAdIds(range);
            Assert.AreEqual(1, jobAdIds.Count);
            Assert.AreEqual(yesterday.Id, jobAdIds[0]);

            // Three job ads yesterday.

            var yesterday2 = CreateJobAd(employer, DateTime.Now.AddDays(-1).AddSeconds(1));
            var yesterday3 = CreateJobAd(employer, DateTime.Now.AddDays(-1).AddSeconds(-2));

            jobAdIds = _jobAdsQuery.GetOpenJobAdIds(range);
            Assert.IsTrue(jobAdIds.CollectionEqual(new[] { yesterday.Id, yesterday2.Id, yesterday3.Id }));
        }
示例#2
0
        public void TestJob()
        {
            var employer = CreateEmployer();

            ExecuteTask(false, "SampleJob.xml");

            var jobAds = _jobAdsQuery.GetJobAds <JobAd>(_jobAdsQuery.GetOpenJobAdIds(employer.Id));

            Assert.AreEqual(1, jobAds.Count);

            Assert.AreEqual("118204981", jobAds[0].Integration.IntegratorReferenceId);
            Assert.AreEqual("200116851", jobAds[0].Integration.ExternalReferenceId);
            Assert.AreEqual("Change Analyst / Process Analyst", jobAds[0].Title);
        }
示例#3
0
        public void TestSalaryUpTo()
        {
            var employer = CreateEmployer();

            CreateJobAd(employer, "Fantastic opportunity up to $90k", null, null);
            _jobAdSalariesParserCommand.ParseJobAdSalaries(true);

            var ads = _jobAdsQuery.GetJobAds <JobAd>(_jobAdsQuery.GetOpenJobAdIds());

            Assert.AreEqual(1, ads.Count);
            Assert.AreEqual(90000M * SalaryConversionMaxToMin, ads[0].Description.ParsedSalary.LowerBound);
            Assert.AreEqual(90000M, ads[0].Description.ParsedSalary.UpperBound);
        }
示例#4
0
        private void CloseJobAds(Guid posterId, IDictionary <Guid, bool> hasCredits)
        {
            if (HasApplicantCredits(posterId, hasCredits))
            {
                return;
            }

            // No active allocations so close all their job ads.

            var jobAdIds = _jobAdsQuery.GetOpenJobAdIds(posterId);
            var jobAds   = _jobAdsQuery.GetJobAds <JobAd>(jobAdIds);

            foreach (var jobAd in jobAds)
            {
                _jobAdsCommand.CloseJobAd(jobAd);
            }
        }
        private IDictionary <string, IList <JobAd> > GetJobsAds()
        {
            // Get all open job ads that were created yesterday.

            var jobAdIds = _jobAdsQuery.GetOpenJobAdIds(new DateTimeRange(DateTime.Today.AddDays(-1), DateTime.Today));

            // Group the job ads by contact email address.

            var jobAdsByEmailAddress = new Dictionary <string, IList <JobAd> >(StringComparer.CurrentCultureIgnoreCase);

            var jobAds = _jobAdsQuery.GetJobAds <JobAd>(jobAdIds);

            foreach (var jobAd in jobAds)
            {
                // Use the contact details email address.

                if (jobAd.ContactDetails == null)
                {
                    continue;
                }
                var emailAddress = jobAd.ContactDetails.EmailAddress;
                if (string.IsNullOrEmpty(emailAddress))
                {
                    continue;
                }

                IList <JobAd> list;
                if (!jobAdsByEmailAddress.TryGetValue(emailAddress, out list))
                {
                    list = new List <JobAd>();
                    jobAdsByEmailAddress.Add(emailAddress, list);
                }

                list.Add(jobAd);
            }

            return(jobAdsByEmailAddress);
        }