private void ProcessConfigSubFilters(JobSearchItem configFilterItem, JobFilter newFilter, List <JobFilter> backendJobFilters) { if (configFilterItem != null && newFilter != null && backendJobFilters != null) { foreach (var backendFilterItem in backendJobFilters) { if (configFilterItem.ID.Equals(backendFilterItem.ID, StringComparison.OrdinalIgnoreCase)) { newFilter.ID = backendFilterItem.ID; newFilter.Label = backendFilterItem.Label; newFilter.Count = backendFilterItem.Count; newFilter.Value = backendFilterItem.Value; newFilter.Selected = backendFilterItem.Selected; foreach (var configSubFilterItem in configFilterItem.Filters) { if (backendFilterItem.Filters != null && backendFilterItem.Filters.Count > 0) { var newSubFilter = new JobFilter() { Filters = new List <JobFilter>() }; ProcessConfigSubFilters(configSubFilterItem, newSubFilter, backendFilterItem.Filters); newFilter.Filters.Add(newSubFilter); } } break; } } } }
static void ProcessConfigFilterItems(JobSearchFilterReceiverItem targetFilterItem, JobSearchItem sourceFilterItem) { if (targetFilterItem != null && sourceFilterItem != null) { targetFilterItem.ItemID = sourceFilterItem.ID; foreach (var subFilterItem in sourceFilterItem.Filters) { var subTargetFilter = new JobSearchFilterReceiverItem() { SubTargets = new List <JobSearchFilterReceiverItem>() }; ProcessConfigFilterItems(subTargetFilter, subFilterItem); targetFilterItem.SubTargets.Add(subTargetFilter); } } }