示例#1
0
        public static void ProcessFilterLevelsToFlat(JobSearchFilterReceiverItem filterItem, List <string> values)
        {
            if (filterItem != null)
            {
                if (values != null)
                {
                    values.Add(filterItem.ItemID);
                }

                if (filterItem.SubTargets != null && filterItem.SubTargets.Count > 0)
                {
                    foreach (var subItem in filterItem.SubTargets)
                    {
                        ProcessFilterLevelsToFlat(subItem, values);
                    }
                }
            }
        }
示例#2
0
        private void AssignNodeRootItem(JobSearchFilterReceiverItem item, string input)
        {
            //sample input: B_C_D
            List <string> itemIDs = input.Split(new string[] { "_" }, StringSplitOptions.RemoveEmptyEntries).ToList();

            //create the next level item
            JobSearchFilterReceiverItem itemLevel1 = null;

            if (itemIDs.Count() > 0)
            {
                JobSearchFilterReceiverItem matchingLevel1 = null;
                if (item.SubTargets != null)
                {
                    matchingLevel1 = item.SubTargets.Where(c => c.ItemID.Equals(itemIDs[0])).FirstOrDefault();
                }

                if (matchingLevel1 == null)
                {
                    itemLevel1 = new JobSearchFilterReceiverItem {
                        ItemID = itemIDs[0]
                    };
                    if (item.SubTargets != null)
                    {
                        item.SubTargets.Add(itemLevel1);
                    }
                    else
                    {
                        item.SubTargets = new List <JobSearchFilterReceiverItem> {
                            itemLevel1
                        }
                    };
                }
                else
                {
                    itemLevel1 = matchingLevel1;
                }
            }

            if (itemIDs.Count() == 1)
            {
                return;
            }

            JobSearchFilterReceiverItem itemLevel2 = null;

            if (itemIDs.Count() > 1)
            {
                //create the next level - next level item (2 level down)
                itemLevel2 = new JobSearchFilterReceiverItem {
                    ItemID = itemIDs[1]
                };

                if (itemLevel1.SubTargets != null)
                {
                    itemLevel1.SubTargets.Add(itemLevel2);
                }
                else
                {
                    itemLevel1.SubTargets = new List <JobSearchFilterReceiverItem> {
                        itemLevel2
                    }
                };
            }

            if (itemIDs.Count() > 2 && itemLevel2 != null)
            {
                AssignNodeRootItem(itemLevel2, String.Join("_", itemIDs.Skip(2)));
            }
        }
示例#3
0
        private void AssignNodeRoot(JobSearchFilterReceiver root, string input)
        {
            //sample input: A_B_C_D
            List <string> itemIDs = input.Split(new string[] { "_" }, StringSplitOptions.RemoveEmptyEntries).ToList();

            if (itemIDs.Count() == 0)
            {
                return;
            }

            if (itemIDs.Count() == 1)
            {
                if (root.values == null)
                {
                    root.values.Add(new JobSearchFilterReceiverItem {
                        ItemID = itemIDs[0]
                    });
                }
                else
                {
                    bool hasMatchingItem = root.values.Where(c => c.ItemID.Equals(itemIDs[0])).Any();
                    if (!hasMatchingItem)
                    {
                        root.values.Add(new JobSearchFilterReceiverItem {
                            ItemID = itemIDs[0]
                        });
                    }
                }
                return;
            }
            else
            {
                JobSearchFilterReceiverItem nextLevelItem = null;
                if (root.values == null)
                {
                    nextLevelItem = new JobSearchFilterReceiverItem {
                        ItemID = itemIDs[0]
                    };
                    root.values.Add(nextLevelItem);
                }
                else
                {
                    JobSearchFilterReceiverItem matchingItem = root.values.Where(c => c.ItemID.Equals(itemIDs[0])).FirstOrDefault();
                    if (matchingItem == null)
                    {
                        nextLevelItem = new JobSearchFilterReceiverItem {
                            ItemID = itemIDs[0]
                        };
                        root.values.Add(nextLevelItem);
                    }
                    else
                    {
                        nextLevelItem = matchingItem;
                    }
                }
                if (nextLevelItem != null)
                {
                    AssignNodeRootItem(nextLevelItem, String.Join("_", itemIDs.Skip(1)));
                }
            }
        }
示例#4
0
 public static void ProcessFilterLevels(Classification_CategorySearchTarget catTarget, JobSearchFilterReceiverItem filterItem)
 {
     if (catTarget != null && filterItem != null)
     {
         catTarget.TargetValue = filterItem.ItemID;
         if (filterItem.SubTargets != null && filterItem.SubTargets.Count > 0)
         {
             foreach (var subItem in filterItem.SubTargets)
             {
                 Classification_CategorySearchTarget catSubTarget = new Classification_CategorySearchTarget()
                 {
                     SubTargets = new List <Classification_CategorySearchTarget>()
                 };
                 ProcessFilterLevels(catSubTarget, subItem);
                 catTarget.SubTargets.Add(catSubTarget);
             }
         }
     }
 }