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); }
/// <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); }
public IVirtualFile GetFile(string virtualPath, NameValueCollection queryString) { SitefinityVirtualImage image = EnsureImage(HttpContext.Current, virtualPath, queryString); if (image != null && image.Image != null) { return(image); } return(null); }
public bool FileExists(string virtualPath, NameValueCollection queryString) { SitefinityVirtualImage image = EnsureImage(HttpContext.Current, virtualPath, queryString); return(image != null && image.Image != null); }