Posted by : Jebastin Saturday 14 December 2013

Web Service to filter the Umbraco Nodes

The following WebMethod is used to filter the Umbraco child nodes of a particular parent node using the given parent id by the parameters Keyword, Job Type, Position, Location, Category and Division.

Web Method:

  1. public List<JobDetails> FilterJobs(int ParentId, string Keyword, string JobType, string Position, string Location, string Category, string Division)
  2. {
  3. string strJobId = "", strJobDescription = "", strJobRequirements = "", strJobType = "";
  4. string strJobPosition = "", strJobLocation = "", strJobCategory = "", strJobDivision = "";
  5. dynamic JobsNode = new DynamicNode().NodeById(ParentId);
  6. List<DynamicNode> JobsList = JobsNode.Children.Items;
  7. List<JobDetails> FilteredJobsList = new List<JobDetails>();
  8. JobsList = JobsList.Where(x => x.GetProperty("descriptionOfDuties").Value.Contains(Keyword) ||
  9.         x.GetProperty("requirementsExperience").Value.Contains(Keyword) ||
  10.         x.GetProperty("jobType").Value.Contains(Keyword) ||
  11.         x.GetProperty("position").Value.Contains(Keyword) ||
  12.         x.GetProperty("location").Value.Contains(Keyword) ||
  13.         x.GetProperty("category").Value.Contains(Keyword) ||
  14.         x.GetProperty("division").Value.Contains(Keyword) ||
  15.         Keyword == "").ToList();
  16. JobsList = JobsList.Where(x => (x.GetProperty("jobType").Value.Equals(JobType) || JobType == "") &&
  17.         (x.GetProperty("position").Value.Equals(Position) || Position == "") &&
  18.         (Location.Split(',').Contains(x.GetProperty("location").Value.Replace(",", "")) || Location == "") &&
  19.         (Category.Split(',').Contains(x.GetProperty("category").Value) || Category == "") &&
  20.         (Division.Split(',').Contains(x.GetProperty("division").Value) || Division == "")).ToList();
  21. foreach (var job in JobsList)
  22. {
  23.     strJobId = Convert.ToString(job.Id);
  24.     strJobDescription = job.GetProperty("descriptionOfDuties").Value;
  25.     strJobRequirements = job.GetProperty("requirementsExperience").Value;
  26.     strJobType = job.GetProperty("jobType").Value;
  27.     strJobPosition = job.GetProperty("position").Value;
  28.     strJobLocation = job.GetProperty("location").Value;
  29.     strJobCategory = job.GetProperty("category").Value;
  30.     strJobDivision = job.GetProperty("division").Value;
  31.     FilteredJobsList.Add(new JobDetails
  32.     {
  33.         JobId = strJobId.Trim(),
  34.         JobDescription = strJobDescription.Trim(),
  35.         JobRequirements = strJobRequirements.Trim(),
  36.         JobType = strJobType.Trim(),
  37.         JobPosition = strJobPosition.Trim(),
  38.         JobLocation = strJobLocation.Trim(),
  39.         JobCategory = strJobCategory.Trim(),
  40.         JobDivision = strJobDivision.Trim()
  41.     });
  42. }
  43. return FilteredJobsList;
  44. }

Properties:

  1. public class JobDetails
  2. {
  3.     public string JobId { get; set; }
  4.     public string JobDescription { get; set; }
  5.     public string JobRequirements { get; set; }
  6.     public string JobType { get; set; }
  7.     public string JobPosition { get; set; }
  8.     public string JobLocation { get; set; }
  9.     public string JobCategory { get; set; }
  10.     public string JobDivision { get; set; }
  11. }

Leave a Reply

Subscribe to Posts | Subscribe to Comments

Link To This Post/Page

Spread The Word

Add this button to your blog:
JJ Technology Solutions

Blog Archive

Trackers

eXTReMe Tracker
facebook

- Copyright © JJ Technology Solutions - Powered by Source Code Solutions -