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; } }
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); }
private static IList <SuggestedJobsEmailItem> CreateEmailItems(IEnumerable <JobAd> jobAds) { var highlighter = new JobSearchHighlighter(null); var emailItems = jobAds.Select(jobAd => CreateEmailItem(jobAd, highlighter)) .ToList(); return(emailItems); }
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); }
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", "•"); fragmentsHtml = string.Empty; }
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); }
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; } } } }