Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }