Пример #1
0
        /// <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;
        }