/// <summary> /// Gets the job alert settings for a <see cref="JobsSet" /> /// </summary> /// <returns></returns> public JobAlertSettings GetJobAlertsSettings(JobsSet jobsSet) { JobAlertSettings settings = null; var jobAlertsSettingsPages = _umbraco.TypedContentAtXPath("//JobAlerts"); foreach (var jobAlertSettingsPage in jobAlertsSettingsPages) { // Get the jobs set selected in the Umbraco page var selectedJobsSet = umbraco.library.GetPreValueAsString(jobAlertSettingsPage.GetPropertyValue <int>("PublicOrRedeployment_Content")); selectedJobsSet = Regex.Replace(selectedJobsSet.ToUpperInvariant(), "[^A-Z]", String.Empty); var jobsSetForPage = (JobsSet)Enum.Parse(typeof(JobsSet), selectedJobsSet, true); if (jobsSetForPage != jobsSet) { continue; } // Create settings from the page settings = new JobAlertSettings(); settings.NewAlertEmailSubject = jobAlertSettingsPage.GetPropertyValue <string>("NewAlertEmailSubject_Alert_settings"); settings.NewAlertEmailBodyHtml = jobAlertSettingsPage.GetPropertyValue <string>("NewAlertEmailBody_Alert_settings"); settings.AlertEmailSubject = jobAlertSettingsPage.GetPropertyValue <string>("AlertEmailSubject_Alert_settings"); settings.AlertEmailBodyHtml = jobAlertSettingsPage.GetPropertyValue <string>("AlertEmailBody_Alert_settings"); var baseUrl = jobAlertSettingsPage.GetPropertyValue <string>("BaseUrl_Alert_settings"); if (!String.IsNullOrEmpty(baseUrl)) { settings.ChangeAlertBaseUrl = new Uri(new Uri(baseUrl), jobAlertSettingsPage.Url()); } else { settings.ChangeAlertBaseUrl = new Uri(jobAlertSettingsPage.UrlAbsolute()); } var jobAdvertPage = jobAlertSettingsPage.GetPropertyValue <IPublishedContent>("JobAdvertPage_Alert_settings"); if (jobAdvertPage != null) { if (!String.IsNullOrEmpty(baseUrl)) { settings.JobAdvertBaseUrl = new Uri(new Uri(baseUrl), jobAdvertPage.Url()); } else { settings.JobAdvertBaseUrl = new Uri(jobAdvertPage.UrlAbsolute()); } } } return(settings); }
/// <summary> /// Initializes a new instance of the <see cref="HtmlJobAlertFormatter"/> class. /// </summary> /// <param name="alertSettings">The alert settings.</param> /// <param name="encoder">The encoder.</param> /// <exception cref="ArgumentNullException"> /// alertSettings /// or /// encoder /// </exception> public HtmlJobAlertFormatter(JobAlertSettings alertSettings, JobAlertIdEncoder encoder) { if (alertSettings == null) { throw new ArgumentNullException(nameof(alertSettings)); } _alertSettings = alertSettings; if (encoder == null) { throw new ArgumentNullException(nameof(encoder)); } _encoder = encoder; ReadTemplateHtml(); }
/// <summary> /// Initializes a new instance of the <see cref="JobAlertsByEmailSender"/> class. /// </summary> /// <param name="alertSettings">The alert settings.</param> /// <param name="formatter">The formatter.</param> /// <param name="emailSender">The email sender.</param> /// <exception cref="ArgumentNullException"> /// alertSettings /// or /// formatter /// or /// emailSender /// </exception> public JobAlertsByEmailSender(JobAlertSettings alertSettings, IJobAlertFormatter formatter, IEmailSender emailSender) { if (alertSettings == null) { throw new ArgumentNullException(nameof(alertSettings)); } _alertSettings = alertSettings; if (formatter == null) { throw new ArgumentNullException(nameof(formatter)); } _formatter = formatter; if (emailSender == null) { throw new ArgumentNullException(nameof(emailSender)); } _emailSender = emailSender; }