示例#1
0
        public void ParseJobAdSalaries(bool limitToOpenJobAds)
        {
            var jobAdIds = limitToOpenJobAds
                ? _jobAdsQuery.GetOpenJobAdsWithoutSalaries()
                : _jobAdsQuery.GetJobAdsWithoutSalaries();

            if (jobAdIds == null || jobAdIds.Count == 0)
            {
                return;
            }

            foreach (var id in jobAdIds)
            {
                var jobAd = _jobAdsQuery.GetJobAd <JobAd>(id);

                var parsedSalary = new Salary
                {
                    Currency = Currency.AUD,
                    Rate     = SalaryRate.Year
                };

                ParseSalaryFromText(jobAd.Description.Content, ref parsedSalary);

                if (parsedSalary == null || parsedSalary.IsEmpty)
                {
                    ParseSalaryFromText(jobAd.Title, ref parsedSalary);
                }

                if (parsedSalary == null || parsedSalary.IsEmpty)
                {
                    continue;
                }

                if (!ReasonableSalary(parsedSalary))
                {
                    continue;
                }

                jobAd.Description.ParsedSalary = parsedSalary;
                _jobAdsCommand.UpdateJobAd(jobAd);
            }
        }