SenseNet.ContentRepository.Fields.ReferenceFieldSetting.ValidatePaths C# (CSharp) Метод

ValidatePaths() приватный Метод

private ValidatePaths ( List list, Field field ) : FieldValidationResult
list List
field Field
Результат SenseNet.ContentRepository.Schema.FieldValidationResult
        private FieldValidationResult ValidatePaths(List<Node> list, Field field)
		{
			//-- Paths
			if (this.SelectionRoots.Count > 0)
			{
				//-- Convert relative paths to absolute
				var paths = new List<string>(); //-- test equality
				var roots = new List<string>(); //-- ends with PathSeparator
				foreach (string item in this.SelectionRoots)
				{
					var handler = field.Content.ContentHandler;
					var handlerPath = RepositoryPath.Combine(RepositoryPath.GetParentPath(handler.Path), handler.Name);
					var path = "/";
					if (item.StartsWith("/"))
					{
						path = item;
					}
					else if (item == ".")
					{
						path = handlerPath;
					}
					else
					{
						path = RepositoryPath.Combine(handlerPath, item);
					}

					if (path.EndsWith(RepositoryPath.PathSeparator))
					{
						paths.Add(path.Substring(0, path.Length - 1));
						roots.Add(path);
					}
					else
					{
						paths.Add(path);
						roots.Add(String.Concat(path, RepositoryPath.PathSeparator));
					}
				}
				foreach (Node node in list)
				{
					var ok = false;
					for (int i = 0; i < paths.Count; i++)
					{
						if (node.Path == paths[i] || node.Path.StartsWith(roots[i]))
						{
							ok = true;
							break;
						}
					}
				    if (ok) 
                        continue;

				    var result = new FieldValidationResult(SelectionRootName);
				    result.AddParameter(SelectionRootName, node.Path);
				    return result;
				}
			}
			return FieldValidationResult.Successful;
		}
        private FieldValidationResult ValidateWithQuery(List<Node> list, NodeQuery query)