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);
        }