public static SitefinityVirtualImage ResolveVirtualImage(string virtualPath, NameValueCollection queryString)
        {
            var requestUrl = virtualPath + "?" + HttpUtilities.QueryStringSerialize(queryString);

            if (!requestUrl.StartsWith("/images/"))
            {
                throw new HttpException("Can process requested image! NOIMAGEDIR");
            }

            var result = new SitefinityVirtualImage();
            LibrariesManager manager;

            var librariesConfig = Telerik.Sitefinity.Configuration.Config.Get <LibrariesConfig>();

            #region branje thumbnail profila iz url-ja
            string thumbnailProfileName;
            string sitefinityNormalizedImagePath = ExtractSitefinityMediaName(requestUrl, librariesConfig, out thumbnailProfileName);
            result.ThumbnailProfile = librariesConfig.Images.Thumbnails.Profiles[thumbnailProfileName];
            #endregion

            #region branje provider name iz url-ja
            string providerName   = ExtractProviderName(requestUrl);
            var    providerConfig = librariesConfig.Providers.Elements.FirstOrDefault(a => a.GetParameter("urlName") == providerName);
            manager = providerConfig != null ? new LibrariesManager(providerConfig.Name) : new LibrariesManager();
            #endregion

            string redirectUrl;
            var    image = manager.GetItemFromUrl <Telerik.Sitefinity.Libraries.Model.Image>(sitefinityNormalizedImagePath, out redirectUrl);
            result.Image   = ProcessStatuses(manager, image, queryString["Status"]);
            result.Manager = manager;

            return(result);
        }
Beispiel #2
0
        /// <summary>
        /// Reads image from cache if exists. Otherwise it construct new one by resolving from virtualPath and querystring.
        /// If http contenxt exists cache is saved in http context.
        /// </summary>
        /// <returns></returns>
        private SitefinityVirtualImage EnsureImage(HttpContext httpContext, string virtualPath, NameValueCollection queryString)
        {
            SitefinityVirtualImage result;

            if (httpContext != null)
            {
                result = httpContext.Items["SitefinityVirtualImageProviderPlugin_LoadedImage"] as SitefinityVirtualImage;
                if (result != null)
                {
                    return(result);
                }
            }

            try
            {
                result = SitefinityHelpers.ResolveVirtualImage(virtualPath, queryString);
            }
            catch (Exception)
            {
                result = new SitefinityVirtualImage();
            }

            if (httpContext != null)
            {
                httpContext.Items["SitefinityVirtualImageProviderPlugin_LoadedImage"] = result;
            }

            return(result);
        }
Beispiel #3
0
        public IVirtualFile GetFile(string virtualPath, NameValueCollection queryString)
        {
            SitefinityVirtualImage image = EnsureImage(HttpContext.Current, virtualPath, queryString);

            if (image != null && image.Image != null)
            {
                return(image);
            }
            return(null);
        }
Beispiel #4
0
        public bool FileExists(string virtualPath, NameValueCollection queryString)
        {
            SitefinityVirtualImage image = EnsureImage(HttpContext.Current, virtualPath, queryString);

            return(image != null && image.Image != null);
        }