Exemplo n.º 1
0
        private void AddSortOrderToQueryString(NameValueCollection queryString, JobSearchQuery.JobsSortOrder sortBy)
        {
            switch (sortBy)
            {
            case JobSearchQuery.JobsSortOrder.JobTitleAscending:
                UpdateQueryString(queryString, "option", "21");
                UpdateQueryString(queryString, "sort", "ASC");
                break;

            case JobSearchQuery.JobsSortOrder.JobTitleDescending:
                UpdateQueryString(queryString, "option", "21");
                UpdateQueryString(queryString, "sort", "DESC");
                break;

            case JobSearchQuery.JobsSortOrder.OrganisationAscending:
                UpdateQueryString(queryString, "option", "138");
                UpdateQueryString(queryString, "sort", "ASC");
                break;

            case JobSearchQuery.JobsSortOrder.OrganisationDescending:
                UpdateQueryString(queryString, "option", "138");
                UpdateQueryString(queryString, "sort", "DESC");
                break;

            case JobSearchQuery.JobsSortOrder.LocationAscending:
                UpdateQueryString(queryString, "option", "139");
                UpdateQueryString(queryString, "sort", "ASC");
                break;

            case JobSearchQuery.JobsSortOrder.LocationDescending:
                UpdateQueryString(queryString, "option", "139");
                UpdateQueryString(queryString, "sort", "DESC");
                break;

            case JobSearchQuery.JobsSortOrder.SalaryRangeAscending:
                UpdateQueryString(queryString, "option", "150");
                UpdateQueryString(queryString, "sort", "ASC");
                break;

            case JobSearchQuery.JobsSortOrder.SalaryRangeDescending:
                UpdateQueryString(queryString, "option", "150");
                UpdateQueryString(queryString, "sort", "DESC");
                break;

            case JobSearchQuery.JobsSortOrder.ClosingDateAscending:
                UpdateQueryString(queryString, "option", "48");
                UpdateQueryString(queryString, "sort", "ASC");
                break;

            case JobSearchQuery.JobsSortOrder.ClosingDateDescending:
                UpdateQueryString(queryString, "option", "48");
                UpdateQueryString(queryString, "sort", "DESC");
                break;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates a <see cref="JobSearchQuery"/> from query string parameters.
        /// </summary>
        /// <param name="queryString">The query string.</param>
        /// <returns></returns>
        public JobSearchQuery CreateFromQueryString(NameValueCollection queryString)
        {
            var query = new JobSearchQuery();

            if (!String.IsNullOrEmpty(queryString["keywords"]))
            {
                query.Keywords = queryString["keywords"];
            }

            if (!String.IsNullOrEmpty(queryString["location"]))
            {
                AddQueryStringValuesToList(queryString["location"], query.Locations);
            }

            if (!String.IsNullOrEmpty(queryString["type"]))
            {
                AddQueryStringValuesToList(queryString["type"], query.JobTypes);
            }

            if (!String.IsNullOrEmpty(queryString["org"]))
            {
                AddQueryStringValuesToList(queryString["org"], query.Organisations);
            }

            if (!String.IsNullOrEmpty(queryString["salary"]))
            {
                AddQueryStringValuesToList(queryString["salary"], query.SalaryRanges);
            }

            if (!String.IsNullOrEmpty(queryString["ref"]))
            {
                query.JobReference = queryString["ref"];
            }

            if (!String.IsNullOrEmpty(queryString["hours"]))
            {
                AddQueryStringValuesToList(queryString["hours"], query.WorkPatterns);
            }

            if (!String.IsNullOrEmpty(queryString["sort"]))
            {
                JobSearchQuery.JobsSortOrder sort = JobSearchQuery.JobsSortOrder.None;
                Enum.TryParse(queryString["sort"], true, out sort);
                query.SortBy = sort;
            }

            return(query);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Creates a <see cref="JobSearchQuery"/> from a <see cref="NameValueCollection"/>.
        /// </summary>
        /// <param name="collection">The query as a collection of parameters.</param>
        /// <returns></returns>
        public JobSearchQuery ToQuery(NameValueCollection collection)
        {
            var query = new JobSearchQuery();

            if (!String.IsNullOrEmpty(collection["keywords"]))
            {
                query.Keywords = collection["keywords"];
            }

            if (!String.IsNullOrEmpty(collection["locations"]))
            {
                AddQueryStringValuesToList(collection["locations"], query.Locations);
            }
            else if (!String.IsNullOrEmpty(collection["location"]))
            {
                // The key was changed to let MVC build a model automatically from form data,
                // but we need to support the old key as it may be saved in job alert subscriptions
                AddQueryStringValuesToList(collection["location"], query.Locations);
            }

            if (!String.IsNullOrEmpty(collection["jobtypes"]))
            {
                AddQueryStringValuesToList(collection["jobtypes"], query.JobTypes);
            }
            else if (!String.IsNullOrEmpty(collection["type"]))
            {
                // The key was changed to let MVC build a model automatically from form data,
                // but we need to support the old key as it may be saved in job alert subscriptions
                AddQueryStringValuesToList(collection["type"], query.JobTypes);
            }

            // Translate obsolete job types to their replacements. These are no longer available but may
            // be saved in old job alert subscriptions.
            if (_translateObsoleteJobTypes)
            {
                TranslateOldJobType("Apprenticeships", new[] { "Apprenticeships and Trainee" }, query.JobTypes);
                TranslateOldJobType("Care and Social Work", new[] { "Bereavement", "Care - Adults", "Safeguarding", "Social Work - Childrens", "Social Work - Adults" }, query.JobTypes);
                TranslateOldJobType("Children’s - Social Work", new[] { "Social Work - Childrens" }, query.JobTypes);
                TranslateOldJobType("Children’s - Social Work Managers", new[] { "Social Work - Childrens" }, query.JobTypes);
                TranslateOldJobType("Education", new[] { "Education and Learning" }, query.JobTypes);
                TranslateOldJobType("ICT", new[] { "Information Technology" }, query.JobTypes);
                TranslateOldJobType("Personnel and HR", new[] { "Human Resources" }, query.JobTypes);
                TranslateOldJobType("Support Staff", new[] { "Support Staff - Education" }, query.JobTypes);
                TranslateOldJobType("Teaching", new[] { "Teaching and Leadership" }, query.JobTypes);
                TranslateOldJobType("Teaching - Leadership", new[] { "Teaching and Leadership" }, query.JobTypes);
                TranslateOldJobType("Transport", new[] { "Transportation and Highways", "Drivers", "Highway Maintenance" }, query.JobTypes);
                TranslateOldJobType("Youth Services", new[] { "Youth and Community Workers" }, query.JobTypes);
                TranslateOldJobType("Youth Work", new[] { "Youth and Community Workers" }, query.JobTypes);
            }

            if (!String.IsNullOrEmpty(collection["department"]))
            {
                AddQueryStringValuesToList(collection["department"], query.Departments);
            }

            if (!String.IsNullOrEmpty(collection["org"]))
            {
                AddQueryStringValuesToList(collection["org"], query.Organisations);
            }

            if (!String.IsNullOrEmpty(collection["salaryranges"]))
            {
                AddQueryStringValuesToList(collection["salaryranges"], query.SalaryRanges);
            }
            else if (!String.IsNullOrEmpty(collection["salary"]))
            {
                // The key was changed to let MVC build a model automatically from form data,
                // but we need to support the old key as it may be saved in job alert subscriptions
                AddQueryStringValuesToList(collection["salary"], query.SalaryRanges);
            }
            for (var i = 0; i < query.SalaryRanges.Count; i++)
            {
                query.SalaryRanges[i] = Regex.Replace(query.SalaryRanges[i], "^(£)([0-9]+)", FormatSalary_MatchEvaluator);
                query.SalaryRanges[i] = Regex.Replace(query.SalaryRanges[i], "(to £)([0-9]+)", FormatSalary_MatchEvaluator);
            }

            if (!String.IsNullOrEmpty(collection["paygrades"]))
            {
                AddQueryStringValuesToList(collection["paygrades"], query.PayGrades);
            }

            if (!String.IsNullOrEmpty(collection["ref"]))
            {
                query.JobReference = collection["ref"];
            }

            if (!String.IsNullOrEmpty(collection["contracttypes"]))
            {
                AddQueryStringValuesToList(collection["contracttypes"], query.ContractTypes);
            }

            if (!String.IsNullOrEmpty(collection["workpatterns"]))
            {
                AddQueryStringValuesToList(collection["workpatterns"], query.WorkPatterns);
            }

            if (!String.IsNullOrEmpty(collection["closingdatefrom"]))
            {
                if (DateTime.TryParse(collection["closingdatefrom"], out DateTime closingDateFrom))
                {
                    query.ClosingDateFrom = closingDateFrom;
                }
            }

            if (!String.IsNullOrEmpty(collection["sort"]))
            {
                JobSearchQuery.JobsSortOrder sort = JobSearchQuery.JobsSortOrder.None;
                Enum.TryParse(collection["sort"], true, out sort);
                query.SortBy = sort;
            }

            if (!String.IsNullOrEmpty(collection["page"]))
            {
                if (Int32.TryParse(collection["page"], out int page))
                {
                    if (page > 0)
                    {
                        query.CurrentPage = page;
                    }
                }
            }

            if (!String.IsNullOrEmpty(collection["pagesize"]))
            {
                if (Int32.TryParse(collection["pagesize"], out int pageSize))
                {
                    if (pageSize > 0)
                    {
                        query.PageSize = pageSize;
                    }
                }
            }

            return(query);
        }