Example #1
0
        public ActionResult Create(CreateAsJobAlertFilterModel filterModel)
        {
            TempData["StatusMessage"] = null;
            TempData["StatusCode"]    = JobAlertStatus.SUCCESS;
            dynamic dynamicFilterResponse                = new ExpandoObject();
            JXTNext_GetJobFiltersRequest request         = new JXTNext_GetJobFiltersRequest();
            IGetJobFiltersResponse       filtersResponse = _OConnector.JobFilters <JXTNext_GetJobFiltersRequest, JXTNext_GetJobFiltersResponse>(request);
            //if (filtersResponse != null && filtersResponse.Filters != null
            //    && filtersResponse.Filters.Data != null)
            //    dynamicFilterResponse = filtersResponse.Filters.Data as dynamic;


            List <JobFilterRoot> fitersData = null;

            if (filtersResponse != null && filtersResponse.Filters != null &&
                filtersResponse.Filters.Data != null)
            {
                fitersData = filtersResponse.Filters.Data;
            }

            var serializeFilterData = JsonConvert.SerializeObject(fitersData);
            var filtersVMList       = JsonConvert.DeserializeObject <List <JobAlertEditFilterRootItem> >(serializeFilterData);

            if (filterModel.Filters != null && filterModel.Filters.Count > 0)
            {
                foreach (var rootItem in filterModel.Filters)
                {
                    if (rootItem != null)
                    {
                        if (filtersVMList != null && filtersVMList.Count > 0)
                        {
                            foreach (var filterVMRootItem in filtersVMList)
                            {
                                if (filterVMRootItem.Name == rootItem.RootId)
                                {
                                    if (filterVMRootItem.Filters != null && filterVMRootItem.Filters.Count > 0)
                                    {
                                        foreach (var filterItem in filterVMRootItem.Filters)
                                        {
                                            // Here we are coming the ids as parent child relationship and we need
                                            // Only the current id, so remove underscore and get the exact id
                                            RemoveUnderScore(rootItem.Values);
                                            MergeFilters(filterItem, rootItem.Values);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            dynamicFilterResponse.Filters  = filtersVMList as dynamic;
            ViewBag.IsMemberUser           = SitefinityHelper.IsUserLoggedIn("Member");
            dynamicFilterResponse.Keywords = filterModel.Keywords;
            dynamicFilterResponse.Salary   = filterModel.Salary;


            return(View("Create", dynamicFilterResponse));
        }
Example #2
0
        public ActionResult Edit(int id)
        {
            TempData["StatusMessage"] = null;
            TempData["StatusCode"]    = JobAlertStatus.SUCCESS;
            SearchModel jobAlertDetails                  = _jobAlertService.GetMemeberJobAlert(id);
            var         alert                            = jobAlertDetails.jobAlertViewModelData;
            JXTNext_GetJobFiltersRequest request         = new JXTNext_GetJobFiltersRequest();
            IGetJobFiltersResponse       filtersResponse = _OConnector.JobFilters <JXTNext_GetJobFiltersRequest, JXTNext_GetJobFiltersResponse>(request);

            List <JobFilterRoot> fitersData = null;

            if (filtersResponse != null && filtersResponse.Filters != null &&
                filtersResponse.Filters.Data != null)
            {
                fitersData = filtersResponse.Filters.Data;
            }

            var serializeFilterData = JsonConvert.SerializeObject(fitersData);
            var filtersVMList       = JsonConvert.DeserializeObject <List <JobAlertEditFilterRootItem> >(serializeFilterData);

            if (alert != null && alert.Filters != null && alert.Filters.Count > 0)
            {
                foreach (var rootItem in alert.Filters)
                {
                    if (rootItem != null)
                    {
                        if (filtersVMList != null && filtersVMList.Count > 0)
                        {
                            foreach (var filterVMRootItem in filtersVMList)
                            {
                                if (filterVMRootItem.Name == rootItem.RootId)
                                {
                                    if (filterVMRootItem.Filters != null && filterVMRootItem.Filters.Count > 0)
                                    {
                                        foreach (var filterItem in filterVMRootItem.Filters)
                                        {
                                            MergeFilters(filterItem, rootItem.Values);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            JobAlertEditViewModel editVM = new JobAlertEditViewModel()
            {
                Data = filtersVMList
            };

            editVM.Id          = id;
            editVM.Name        = alert.Name;
            editVM.Keywords    = alert.Keywords;
            editVM.EmailAlerts = alert.EmailAlerts;
            editVM.Salary      = alert.Salary;

            return(View("Edit", editVM));
        }
        private KeyValuePair <string, string> GetLocationGuid(string location)
        {
            JXTNext_GetJobFiltersRequest request         = new JXTNext_GetJobFiltersRequest();
            IGetJobFiltersResponse       filtersResponse = _OConnector.JobFilters <JXTNext_GetJobFiltersRequest, JXTNext_GetJobFiltersResponse>(request);
            List <JobFilterRoot>         fitersData      = null;

            if (filtersResponse != null && filtersResponse.Filters != null &&
                filtersResponse.Filters.Data != null)
            {
                fitersData = filtersResponse.Filters.Data;
            }

            var    serializeFilterData = JsonConvert.SerializeObject(fitersData);
            var    filtersVMList       = JsonConvert.DeserializeObject <List <JobAlertEditFilterRootItem> >(serializeFilterData);
            bool   found  = false;
            string rootId = string.Empty;
            string guid   = string.Empty;

            if (filtersVMList != null && filtersVMList.Count > 0)
            {
                foreach (var filterVMRootItem in filtersVMList)
                {
                    if (filterVMRootItem.Filters != null && filterVMRootItem.Name == "CountryLocationArea" && filterVMRootItem.Filters.Count > 0)
                    {
                        foreach (var filterItem in filterVMRootItem.Filters)
                        {
                            filterItem.Filters?.ForEach(x => {
                                if (x.Label.ToLower() == location.ToLower())
                                {
                                    found  = true;
                                    guid   = x.ID;
                                    rootId = filterItem.ID;
                                }
                            });
                        }
                    }
                }
            }

            KeyValuePair <string, string> key = new KeyValuePair <string, string>();

            if (found)
            {
                key = new KeyValuePair <string, string>(rootId, guid);
            }

            return(key);
        }
Example #4
0
        private List <JobAlertEditFilterRootItem> GetJobFilterData()
        {
            JXTNext_GetJobFiltersRequest request         = new JXTNext_GetJobFiltersRequest();
            IGetJobFiltersResponse       filtersResponse = _OConnector.JobFilters <JXTNext_GetJobFiltersRequest, JXTNext_GetJobFiltersResponse>(request);

            List <JobFilterRoot> fitersData = null;

            if (filtersResponse != null && filtersResponse.Filters != null &&
                filtersResponse.Filters.Data != null)
            {
                fitersData = filtersResponse.Filters.Data;
            }

            var serializeFilterData = JsonConvert.SerializeObject(fitersData);
            var filtersVMList       = JsonConvert.DeserializeObject <List <JobAlertEditFilterRootItem> >(serializeFilterData);

            return(filtersVMList);
        }
        // GET: JobFilters
        public ActionResult Index([ModelBinder(typeof(JobSearchResultsFilterBinder))] JobSearchResultsFilterModel filterModel, string jobBoardPageTitle, List <JobFilterRoot> searchResultsFilters)
        {
            dynamic dynamicFilterResponse                = null;
            JXTNext_GetJobFiltersRequest request         = new JXTNext_GetJobFiltersRequest();
            IGetJobFiltersResponse       filtersResponse = _OConnector.JobFilters <JXTNext_GetJobFiltersRequest, JXTNext_GetJobFiltersResponse>(request);

            List <JobFilterRoot> filtersVMList = null;

            if (filtersResponse != null && filtersResponse.Filters != null &&
                filtersResponse.Filters.Data != null)
            {
                filtersVMList         = filtersResponse.Filters.Data;
                dynamicFilterResponse = filtersResponse.Filters.Data as dynamic;
            }

            var filtersSelected = filterModel.Filters;

            if (filtersSelected != null && filtersSelected.Count > 0)
            {
                ProcessFilters(filtersSelected, filtersVMList);
            }

            ViewBag.FilterModel = JsonConvert.SerializeObject(filterModel);
            ViewBag.Keywords    = filterModel.Keywords;
            ViewBag.Salary      = filterModel.Salary;

            if (searchResultsFilters != null && searchResultsFilters.Count > 0)
            {
                JobFiltersLogics.ProcessFiltersCount(searchResultsFilters, filtersVMList);
            }
            else if (JobSearchResultsFilterModel.HasFilters(filterModel))
            {
                JobFiltersLogics.ProcessFiltersCount(GetJobSearchResultsFilters(filterModel), filtersVMList);
            }


            var serializedJobSearchParams = this.SerializedJobSearchParams;
            var prefixIdText       = this.PrefixIdText;
            var displayCompanyName = this.DisplayCompanyName;
            var templateName       = this.TemplateName;

            // When we are calling it from the job search results controller
            if (!jobBoardPageTitle.IsNullOrEmpty())
            {
                // Getting the widget configuration settings
                var widgetSettings = JobFiltersLogics.GetWidgetConfigSettings(jobBoardPageTitle, typeof(JobFiltersController).FullName);
                if (widgetSettings != null)
                {
                    serializedJobSearchParams = widgetSettings.Values["SerializedJobSearchParams"];
                    prefixIdText       = widgetSettings.Values["PrefixIdText"];
                    displayCompanyName = widgetSettings.Values["DisplayCompanyName"];
                    templateName       = widgetSettings.Values["TemplateName"];
                }
            }

            var jobFilterComponents = serializedJobSearchParams == null ? null : JsonConvert.DeserializeObject <List <JobSearchModel> >(serializedJobSearchParams);

            if (jobFilterComponents != null || displayCompanyName)
            {
                if (jobFilterComponents != null)
                {
                    foreach (JobSearchModel item in jobFilterComponents)
                    {
                        FilterData(item.Filters);
                        item.Filters = item.Filters.Where(d => d.Show == true || d.Filters?.Count > 0).ToList();
                    }
                }

                var selectedConfigFilters = GetSelecctedFiltersFromConfig(filtersVMList, jobFilterComponents, displayCompanyName);
                AppendParentIds(selectedConfigFilters);
                dynamicFilterResponse = selectedConfigFilters as dynamic;
            }
            else
            {
                AppendParentIds(filtersVMList);
                dynamicFilterResponse = filtersVMList as dynamic;
            }

            ViewBag.PrefixIdsText = prefixIdText == null ? "" : prefixIdText;

            // Why we returning via path?
            // we are going to call the same index action from jobsearchresults controller as well. So from there to identify the correct
            // view, we need to user the virtual path
            // Telerik.Sitefinity.Frontend.FrontendService service registers a virtual path for each widget assembly and for Telerik.Sitefinity.Frontend
            // The contents of a virtual file inside the Frontend-Assembly path can come from the file system at location ~/[Path] When not found there,
            // it falls back to retrieving the contents of an embedded resource placed on the same path, inside the specified assembly.
            // For example, ~/Frontend-Assembly/Telerik.Sitefinity.Frontend/Mvc/Scripts/Angular/angular.min.js
            // https://www.progress.com/documentation/sitefinity-cms/priorities-for-resolving-views-mvc
            return(View("~/Frontend-Assembly/Telerik.Sitefinity.Frontend/Mvc/Views/JobFilters/" + templateName + ".cshtml", dynamicFilterResponse));
        }