public static AliasInfo GetClosestParentAlias(string virtualPath, AliasMap aliasMap, bool considerCurrentPath) { var aliases = aliasMap.GetAliases(); var path = considerCurrentPath ? virtualPath : RemoveOneSubdirectoryFromPath(virtualPath); AliasInfo aliasInfo = null; while (path.Length > 0) { aliasInfo = aliases.Where(x => x.Path == path).SingleOrDefault(); if (aliasInfo != null) { break; } path = RemoveOneSubdirectoryFromPath(path); } return(aliasInfo); }