コード例 #1
0
ファイル: X500Path.cs プロジェクト: modulexcite/pash-1
 public static string GetParentPath(string path, string root)
 {
     if (ADPathHelper.StartsWithDelimiter(path, X500Path.delimiterChar))
     {
         path = path.Substring(1);
     }
     if (ADPathHelper.StartsWithDelimiter(root, X500Path.delimiterChar))
     {
         root = root.Substring(1);
     }
     root = X500Path.StripX500Whitespace(root);
     if (!string.Equals(X500Path.StripX500Whitespace(path), root, StringComparison.InvariantCultureIgnoreCase))
     {
         int num = ADPathHelper.IndexOfFirstDelimiter(path, X500Path.delimiterChar, X500Path.escapeChar);
         if (num < 0 || num >= path.Length - 1)
         {
             return("");
         }
         else
         {
             return(path.Substring(num + 1));
         }
     }
     else
     {
         return("");
     }
 }
コード例 #2
0
ファイル: ADPathModule.cs プロジェクト: modulexcite/pash-1
        public static bool IsChildPath(string path, string parentPath, bool includeSelf, ADPathFormat format)
        {
            if (string.IsNullOrEmpty(path) || string.IsNullOrEmpty(parentPath))
            {
                if (!includeSelf)
                {
                    return(false);
                }
                else
                {
                    return(path == parentPath);
                }
            }
            else
            {
                ADPathFormat aDPathFormat = format;
                switch (aDPathFormat)
                {
                case ADPathFormat.X500:
                {
                    return(X500Path.IsChildPath(path, parentPath, includeSelf));
                }

                case ADPathFormat.Canonical:
                {
                    return(CanonicalPath.IsChildPath(path, parentPath, includeSelf));
                }
                }
                return(false);
            }
        }
コード例 #3
0
ファイル: X500Path.cs プロジェクト: modulexcite/pash-1
 public static bool IsChildPath(string path, string parentPath, bool includeSelf)
 {
     path       = X500Path.StandardizeX500Path(path);
     parentPath = X500Path.StandardizeX500Path(parentPath);
     if (includeSelf || path.Length > parentPath.Length)
     {
         return(path.EndsWith(parentPath, StringComparison.OrdinalIgnoreCase));
     }
     else
     {
         return(false);
     }
 }
コード例 #4
0
ファイル: X500Path.cs プロジェクト: modulexcite/pash-1
        public static bool IsValidPath(string path)
        {
            string str = null;

            path = X500Path.StripX500Whitespace(path);
            while (path != null)
            {
                int num = ADPathHelper.IndexOfFirstDelimiter(path, X500Path.delimiterChar, X500Path.escapeChar);
                if (num <= 0 || num >= path.Length - 1)
                {
                    if (num == 0 || num == path.Length - 1)
                    {
                        return(false);
                    }
                    else
                    {
                        str  = path;
                        path = null;
                    }
                }
                else
                {
                    str  = path.Substring(0, num);
                    path = path.Substring(num + 1);
                }
                int num1 = str.IndexOf(X500Path.equalsChar);
                if (num1 <= 0 || num1 >= str.Length - 1)
                {
                    if (num1 == 0 || num1 == str.Length - 1)
                    {
                        return(false);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    string str1 = str.Substring(0, num1);
                    string str2 = str.Substring(num1 + 1);
                    if (X500Path.IsProperlyFormedRDNAttID(str1) && X500Path.IsProperlyFormedValue(str2))
                    {
                        continue;
                    }
                    return(false);
                }
            }
            return(true);
        }
コード例 #5
0
ファイル: X500Path.cs プロジェクト: modulexcite/pash-1
 public static bool ComparePath(string path1, string path2)
 {
     if (ADPathHelper.StartsWithDelimiter(path1, X500Path.delimiterChar))
     {
         path1 = path1.Substring(1);
     }
     if (ADPathHelper.StartsWithDelimiter(path2, X500Path.delimiterChar))
     {
         path2 = path2.Substring(1);
     }
     if (ADPathHelper.EndsWithDelimiter(path1, X500Path.delimiterChar, X500Path.escapeChar))
     {
         path1 = path1.Substring(0, path1.Length - 1);
     }
     if (ADPathHelper.EndsWithDelimiter(path2, X500Path.delimiterChar, X500Path.escapeChar))
     {
         path2 = path2.Substring(0, path2.Length - 1);
     }
     path1 = X500Path.StandardizeX500Path(path1);
     path2 = X500Path.StandardizeX500Path(path2);
     return(path1.Equals(path2, StringComparison.OrdinalIgnoreCase));
 }
コード例 #6
0
ファイル: ADPathModule.cs プロジェクト: modulexcite/pash-1
        public static string MakePath(string parent, string child, ADPathFormat format)
        {
            if (!string.IsNullOrEmpty(parent) || !string.IsNullOrEmpty(child))
            {
                if (!string.IsNullOrEmpty(parent))
                {
                    if (!string.IsNullOrEmpty(child))
                    {
                        ADPathFormat aDPathFormat = format;
                        switch (aDPathFormat)
                        {
                        case ADPathFormat.X500:
                        {
                            return(X500Path.MakePath(parent, child));
                        }

                        case ADPathFormat.Canonical:
                        {
                            return(CanonicalPath.MakePath(parent, child));
                        }
                        }
                        return(null);
                    }
                    else
                    {
                        return(parent);
                    }
                }
                else
                {
                    return(child);
                }
            }
            else
            {
                return("");
            }
        }
コード例 #7
0
ファイル: ADPathModule.cs プロジェクト: modulexcite/pash-1
        public static string GetParentPath(string path, string root, ADPathFormat format)
        {
            if (!string.IsNullOrEmpty(path))
            {
                ADPathFormat aDPathFormat = format;
                switch (aDPathFormat)
                {
                case ADPathFormat.X500:
                {
                    return(X500Path.GetParentPath(path, root));
                }

                case ADPathFormat.Canonical:
                {
                    return(CanonicalPath.GetParentPath(path, root));
                }
                }
                return(null);
            }
            else
            {
                return("");
            }
        }
コード例 #8
0
ファイル: ADPathModule.cs プロジェクト: modulexcite/pash-1
        public static bool ComparePath(string path1, string path2, ADPathFormat format)
        {
            if (string.IsNullOrEmpty(path1) || string.IsNullOrEmpty(path2))
            {
                return(path1 == path2);
            }
            else
            {
                ADPathFormat aDPathFormat = format;
                switch (aDPathFormat)
                {
                case ADPathFormat.X500:
                {
                    return(X500Path.ComparePath(path1, path2));
                }

                case ADPathFormat.Canonical:
                {
                    return(CanonicalPath.ComparePath(path1, path2));
                }
                }
                return(false);
            }
        }
コード例 #9
0
ファイル: ADPathModule.cs プロジェクト: modulexcite/pash-1
        public static bool IsValidPath(string path, ADPathFormat format)
        {
            if (!string.IsNullOrEmpty(path))
            {
                ADPathFormat aDPathFormat = format;
                switch (aDPathFormat)
                {
                case ADPathFormat.X500:
                {
                    return(X500Path.IsValidPath(path));
                }

                case ADPathFormat.Canonical:
                {
                    return(CanonicalPath.IsValidPath(path));
                }
                }
                return(false);
            }
            else
            {
                return(true);
            }
        }
コード例 #10
0
ファイル: X500Path.cs プロジェクト: modulexcite/pash-1
 public static string StandardizeX500Path(string path)
 {
     return(X500Path.StripX500Whitespace(path));
 }