SenseNet.Services.ContentStore.ContentStoreService.GetFeed2Private C# (CSharp) Method

GetFeed2Private() private method

private GetFeed2Private ( string feedPath, bool onlyFiles, bool onlyFolders, int start, int limit ) : SenseNet.Services.ContentStore.Content[]
feedPath string
onlyFiles bool
onlyFolders bool
start int
limit int
return SenseNet.Services.ContentStore.Content[]
        private Content[] GetFeed2Private(string feedPath, bool onlyFiles, bool onlyFolders, int start, int limit)
		{
			Node container = GetNodeById(feedPath);

			if (container == null) throw new NodeLoadException("Error loading path");
			IFolder folder = container as IFolder;
			if (folder == null) return new Content[] { };

			IEnumerable<Node> nodeList;
			NodeQuery query;

			if (onlyFiles || onlyFolders)
			{
				nodeList = onlyFiles ?
					from child in folder.Children where child is IFile select child :
					from child in folder.Children where child is IFolder select child;
			}
			else
			{
				//nodeList = folder.Children;
				if (start == 0 && limit == 0)
				{
					nodeList = folder.Children;
				}
				else
				{
					SmartFolder smartFolder = folder as SmartFolder;
					if (folder is SmartFolder)
					{
                        query = new NodeQuery();
                        string queryString = ((SmartFolder)folder).Query;

                        ExpressionList orExp = new ExpressionList(ChainOperator.Or);
                        
                        if (!string.IsNullOrEmpty(queryString))
                            orExp.Add(NodeQuery.Parse(queryString));
                        
                        orExp.Add(new IntExpression(IntAttribute.ParentId, ValueOperator.Equal, container.Id));
                        query.Add(orExp);
					}
					else
					{
						query = new NodeQuery();
						query.Add(new IntExpression(IntAttribute.ParentId, ValueOperator.Equal, container.Id));
					}
					query.PageSize = limit;
					query.StartIndex = start == 0 ? 1 : start;
					nodeList = query.Execute().Nodes;
				}
			}

			return nodeList.Select(node => new Content(node, false, false, false, false, start, limit)).ToArray();
		}