private bool GetByCache(string name, bool forced, out IWebFileRecord record) { foreach (var mask in caches) { if (name.StartsWith(mask.Key)) { var resolvedName = name.Substring(mask.Key.Length); var file = mask.Value.Resolve(resolvedName, forced); if (null == file) { record = _cache[name] = null; } else { record = _cache[name] = new FileSystemWebFileRecord { Name = name, FileSystemName = file, FullName = file }; } return(true); } } record = null; return(false); }
/// <summary> /// /// </summary> /// <param name="rawName"></param> /// <returns></returns> protected override WebFileRecord GetRecord(string rawName){ var localname = rawName.NormalizePath().Replace(Root, ""); if (!localname.StartsWith("/")) localname = "/" + localname; if (Prefix != "/") localname = Prefix + localname; var result = new FileSystemWebFileRecord{Name = localname, FileSystemName = rawName,FullName = rawName}; return result; }