示例#1
0
        private static void Summarize(JobAd jobAd, JobSearchHighlighter highlighter, bool haveKeywords, out string digestHtml, out string fragmentsHtml)
        {
            if (haveKeywords)
            {
                // Show highlighted short summary + best highlighted content fragments.

                string digestText;
                string bodyText;
                highlighter.Summarize(jobAd.Description.Summary, jobAd.Description.BulletPoints, jobAd.Description.Content, false, out digestText, out bodyText);

                digestHtml    = highlighter.HighlightContent(digestText, false);
                fragmentsHtml = highlighter.GetBestContent(bodyText);
            }
            else
            {
                // Show long summary without highlighting.

                string digestText;
                string bodyText;
                highlighter.Summarize(jobAd.Description.Summary, jobAd.Description.BulletPoints, jobAd.Description.Content, true, out digestText, out bodyText);

                digestHtml    = HttpUtility.HtmlEncode(digestText).Replace("\x2022", "•");
                fragmentsHtml = string.Empty;
            }
        }
示例#2
0
文件: Emails.cs 项目: formist/LinkMe
        private static SuggestedJobsEmailItem CreateEmailItem(JobAd jobAd, JobSearchHighlighter highlighter)
        {
            var emailItem = new SuggestedJobsEmailItem
            {
                JobAdId  = jobAd.Id.ToString("n"),
                Title    = highlighter.HighlightTitle(jobAd.Title),
                Location = jobAd.GetLocationDisplayText()
            };

            if (jobAd.Description.Salary != null)
            {
                emailItem.Salary = jobAd.Description.Salary.GetDisplayText();
            }

            emailItem.PostedAge  = GetAgeString(DateTime.Now - jobAd.CreatedTime);
            emailItem.PostedDate = jobAd.CreatedTime.ToShortDateString();

            emailItem.JobType = jobAd.Description.JobTypes.GetDisplayText(", ", false, false);

            if (jobAd.Description.Industries != null)
            {
                emailItem.Industry = jobAd.Description.Industries.GetCriteriaIndustriesDisplayText();
            }

            Summarize(jobAd, highlighter, out emailItem.Digest, out emailItem.Fragments);

            return(emailItem);
        }
示例#3
0
文件: Emails.cs 项目: formist/LinkMe
        private static IList <SuggestedJobsEmailItem> CreateEmailItems(IEnumerable <JobAd> jobAds)
        {
            var highlighter = new JobSearchHighlighter(null);
            var emailItems  = jobAds.Select(jobAd => CreateEmailItem(jobAd, highlighter))
                              .ToList();

            return(emailItems);
        }
示例#4
0
        public IList <JobSearchAlertEmailResult> CreateEmailResults(JobAdSearchResults searchResults, JobAdSearchCriteria criteria, int maximumResults)
        {
            var emailResults = new List <JobSearchAlertEmailResult>();

            if (searchResults.JobAdIds.Count > 0)
            {
                var highlighter = new JobSearchHighlighter(criteria, StartHighlightTag, EndHighlightTag);
                AppendResults(emailResults, searchResults, maximumResults, highlighter, criteria.KeywordsExpression != null);
            }
            return(emailResults);
        }
示例#5
0
文件: Emails.cs 项目: formist/LinkMe
        private static void Summarize(JobAd jobAd, JobSearchHighlighter highlighter, out string digestHtml, out string fragmentsHtml)
        {
            // Show long summary without highlighting.

            string digestText;
            string bodyText;

            highlighter.Summarize(jobAd.Description.Summary, jobAd.Description.BulletPoints, jobAd.Description.Content, true, out digestText, out bodyText);

            digestHtml    = HttpUtility.HtmlEncode(digestText).Replace("\x2022", "&#x2022;");
            fragmentsHtml = string.Empty;
        }
示例#6
0
        private static void AppendResult(ICollection <JobSearchAlertEmailResult> emailResults, JobAd jobAd, JobSearchHighlighter highlighter, bool haveKeywords)
        {
            var emailResult = new JobSearchAlertEmailResult
            {
                JobAdId  = jobAd.Id.ToString("n"),
                Title    = highlighter.HighlightTitle(jobAd.Title),
                Location = jobAd.GetLocationDisplayText()
            };

            if (jobAd.Description.Salary != null)
            {
                emailResult.Salary = jobAd.Description.Salary.GetJobAdDisplayText();
            }

            emailResult.PostedAge  = jobAd.GetPostedDisplayText();
            emailResult.PostedDate = jobAd.CreatedTime.ToShortDateString();
            emailResult.JobType    = jobAd.Description.JobTypes.GetDisplayText(", ", false, false);

            if (jobAd.Description.Industries != null)
            {
                emailResult.Industry = jobAd.Description.Industries.GetCriteriaIndustriesDisplayText();
            }

            Summarize(jobAd, highlighter, haveKeywords, out emailResult.Digest, out emailResult.Fragments);

            emailResults.Add(emailResult);
        }
示例#7
0
        private void AppendResults(ICollection <JobSearchAlertEmailResult> emailResults, JobAdSearchResults searchResults, int maximumResults, JobSearchHighlighter highlighter, bool haveKeywords)
        {
            foreach (var jobAdId in searchResults.JobAdIds)
            {
                // Get the job ad for the result.

                var jobAd = _jobAdsQuery.GetJobAd <JobAd>(jobAdId);
                if (jobAd != null)
                {
                    AppendResult(emailResults, jobAd, highlighter, haveKeywords);
                    if (emailResults.Count == maximumResults)
                    {
                        return;
                    }
                }
            }
        }