public EntityResult <T> GetChildren(T entity, int setDepth, UserAccess access, Paging paging) { paging ??= new Paging { OrderBy = "treeSequence", SortOrder = "Ascending" }; var result = new EntityResult <T> { Items = new List <Entity <T> >(), Paging = paging }; if (entity.IsLeaf) { return(result); } var query = new ElasticQuery(); var id = entity.ArchiveRecordId; query.Query = new BoolQuery { Filter = new QueryContainer[] { new TermQuery { Field = elasticSettings.ParentIdField, Value = id } }, MustNot = new QueryContainer[] { new TermQuery { Field = elasticSettings.IdField, Value = id } } }; query.SearchParameters.Paging = paging; query.SearchParameters.Options = new SearchOptions { EnableAggregations = false, EnableExplanations = false, EnableHighlighting = false }; var queryResult = elasticService.RunQuery <T>(query, access); if (queryResult.Entries != null) { result.Items = entityProvider.GetResultAsEntities(access, queryResult, new EntityMetaOptions { SetDepth = setDepth }); result.Paging.Total = queryResult.TotalNumberOfHits; } else { result.Paging.Total = 0; } return(result); }