private static LoadCollectionRequestData getLoadCollectionRequest(IIdoQueryBuilder idoParameterBuilder, bool topLevel) { var props = idoParameterBuilder.GetProperties(); if (props.IsNullOrEmpty()) { idoParameterBuilder.Add(new[] { IdoConstants.KEY }); } var loadCollectionRequest = new LoadCollectionRequestData(idoParameterBuilder.GetIDOName(), idoParameterBuilder.GetProperties(), idoParameterBuilder.GetFilter(), "", idoParameterBuilder.GetMaxResults()) { LoadCap = 0 }; loadCollectionRequest.SetContext("AUTOMATION", "AUTOMATION", "AUTOMATION", "IDO"); if (idoParameterBuilder.HasLinkFields) { if (topLevel) throw new SytelineInterfaceQueryException(); var pairList = idoParameterBuilder.GetLinkFields(); var linkField = pairList[0]; if (pairList.Length == 1) loadCollectionRequest.SetLinkBy(linkField.ParentProperty, linkField.ChildProperty); else loadCollectionRequest.SetLinkBy(linkField.ParentProperty, linkField.ChildProperty, get_additional_pairs(pairList)); } foreach (IIdoQueryBuilder child in idoParameterBuilder.GetChildren()) { loadCollectionRequest.AddNestedRequest(getLoadCollectionRequest(child, false)); } return loadCollectionRequest; }