RestrictionIdName GetParentRestriction(RestrictionIdName restrictionMain, string[] ids, RestrictionFifth uiMaiin) { if (restrictionMain.AbsoluteId == ids[0]) { if (ids.Count() == 1) { _foundMain = uiMaiin; return(restrictionMain); } var childRestrictionMainUi = uiMaiin.GetAllChildMainRestrictions();//old //var childrens = foundMain.GetAllControls(); var childRestrictionMain = restrictionMain.Children.Where(x => x.Name == "main");//new var remainIds = ids.ToList(); remainIds.RemoveAt(0); int i = 0; foreach (var rm in childRestrictionMain) { //var returned = GetParentRestriction(rm, remainIds.ToArray());//old var temp = childRestrictionMainUi[i]; var returned = GetParentRestriction(rm, remainIds.ToArray(), temp); if (returned != null) { //return foundMain return(returned); } i++; } } return(null); }