public void Load(string viewFullPath, string viewFilesRootFullPath, string viewContent) { string viewPathRelativeToViewRoot = viewFullPath.Substring(viewFilesRootFullPath.Length) .Replace(@"\", "/"); ViewPath = Constants.ViewFilesRoot + viewPathRelativeToViewRoot; // --------------- if (!ViewPath.EndsWith(Constants.ViewFileExtension)) { throw new ViewExtensionsException( string.Format("{0} does not end with {1}", viewFullPath, Constants.ViewFileExtension)); } Url = UrlHelpers.TrimTrailingIndex(viewPathRelativeToViewRoot .Substring(0, viewPathRelativeToViewRoot.Length - Constants.ViewFileExtension.Length)); // --------------- Title = ViewBagPageItem(@"Title", viewContent) ?? ""; // If no key can be found on the page, use url instead. Key = ViewBagPageItem(@"Key", viewContent) ?? Url; Description = ViewBagPageItem(@"Description", viewContent) ?? ""; VersionNameRegex = ViewBagPageItem(@"VersionNameRegex", viewContent) ?? ""; string orderString = ViewBagPageItem(@"Order", viewContent) ?? "1000"; Order = int.Parse(orderString); }
public static T ByUrl <T>(string url) where T : class, IViewInfo { string cleanedUrl = url ?? ""; if (!cleanedUrl.StartsWith("/")) { cleanedUrl = "/" + cleanedUrl; } cleanedUrl = UrlHelpers.TrimTrailingIndex(cleanedUrl); if (!_viewInfosByUrl.ContainsKey(cleanedUrl)) { throw new ViewExtensionsException(string.Format("Unknown url: {0}", url)); } IViewInfo viewInfo = _viewInfosByUrl[cleanedUrl]; return((T)viewInfo); }