Esempio n. 1
0
        public async Task <ActionResult> Index(string filter, string jobProfiles, string regions)
        {
            var mandator = await GetMandator();

            var response = await _jobsService.LoadJobsForCurrentPortal(Request.Url, mandator);

            var jobs = response.Jobs.Filter(filter, jobProfiles, regions);

            var jobProfilesFilter = (jobProfiles ?? "").Split('|').Select(x => x.Trim()).Where(x => x.HasValue()).ToArray();
            var regionsFilter     = (regions ?? "").Split('|').Select(x => x.Trim()).Where(x => x.HasValue()).ToArray();

            var model = new IndexViewModel
            {
                AvailableJobProfiles    = mandator.JobProfiles,
                AvailableRegions        = mandator.Regions,
                TotalJobsCount          = response.Jobs.Count(),
                FilteredText            = filter,
                FilteredJobProfiles     = jobProfilesFilter,
                FilteredRegions         = regionsFilter,
                DisplayFilter           = mandator.PortalSettings.EnableFilterOnJobsList,
                DisplayJobProfileFilter = mandator.PortalSettings.EnableJobProfilesFilterOnJobsList,
                DisplayRegionFilter     = mandator.PortalSettings.EnableRegionsFilterOnJobsList,
                DisplayJobDate          = mandator.PortalSettings.DisplayDateInJobListing,
                DisplayJobLocation      = mandator.PortalSettings.DisplayLocationInJobListing,
                MoveFilterToBottom      = mandator.PortalSettings.MoveJobsFilterToBottomOnJobsList
            };

            model.BuildJobs(jobs.OrderByDescending(x => x.OnlineDateCorrected));

            return(View(model));
        }