public ProcessedResourceGroupInfo ProcessResource(ResourceElementGroup resourceElementGroup, CompressionType compressionType) { if (resourceElementGroup == null) throw new ArgumentNullException("resourceElementGroup"); int cacheDuration = resourceElementGroup.CacheDuration > 0 ? resourceElementGroup.CacheDuration : 60; return m_ResourceCacher.GetOrAddCachedResource(resourceElementGroup.ResourceType, resourceElementGroup.Name, compressionType, () => ProcessResource(compressionType, resourceElementGroup, resourceElementGroup.ResourceType), TimeSpan.FromMinutes(cacheDuration)); }
internal ProcessedResourceGroupInfo ProcessResource(CompressionType compressionType, ResourceElementGroup resourceElementGroup, ResourceType resourceType) { ProcessedResourceGroupInfo resourceGroupInfo = new ProcessedResourceGroupInfo(); IList<ResourceReadInfo> resources = ReadResources(resourceType, resourceElementGroup.Resources); string combinedContent = MinifyAndCombineResources(resourceElementGroup, resourceType, resources); resourceGroupInfo.Hash = m_ResourceHasher.HashContent(combinedContent); resourceGroupInfo.DependentFiles = CalculateDependentFiles(resources); resourceGroupInfo.LastModifyDate = CalculateLastModifyDate(resources); resourceGroupInfo.Content = CompressContent(compressionType, combinedContent); return resourceGroupInfo; }
private static string GetDebugScript(ResourceElementGroup resourceElementGroup, string embeddedFileFormat, string fsFileFormat) { StringBuilder scriptBuilder = new StringBuilder(); for (int i = 0; i < resourceElementGroup.Resources.Count; i++) { ResourceElement resourceElement = resourceElementGroup.Resources[i]; if (resourceElement.IsEmbeddedResource) { scriptBuilder.AppendFormat(CultureInfo.CurrentCulture, embeddedFileFormat, resourceElementGroup.Name, resourceElement.FileName); } else { string path = VirtualPathUtility.ToAbsolute(resourceElement.FileName); scriptBuilder.AppendFormat(CultureInfo.CurrentCulture, fsFileFormat, path); } } return scriptBuilder.ToString(); }
private static Mock<IResourceConfigurationProvider> CreateWebResourceConfigurationMock(ResourceElementGroup resourceElementGroup) { Mock<IResourceConfigurationProvider> webResourceConfigurationMock = new Mock<IResourceConfigurationProvider>(); webResourceConfigurationMock.Setup(x => x.GetResourceElementGroup(resourceElementGroup.ResourceType, resourceElementGroup.Name)).Returns(() => resourceElementGroup); return webResourceConfigurationMock; }
private static Mock<HttpContextBase> HandleResource(string resourceGroupName, string fileName, ResourceType resourceType, bool compress, HttpRequestBase httpRequest, HttpResponseBase httpResponseStub, ProcessedResourceGroupInfo processedResourceGroupInfo, HttpResponseCacher httpResponseCacher, HttpResponseCompressor httpResponseCompressor) { ResourceElementGroup resourceElementGroup = new ResourceElementGroup { Name = resourceGroupName, ResourceType = resourceType, Compress = compress, Resources = new ResourceElementCollection {new ResourceElement {FileName = fileName}} }; Mock<IResourceConfigurationProvider> webResourceConfigurationMock = CreateWebResourceConfigurationMock(resourceElementGroup); Mock<HttpContextBase> httpContextBaseMock = HttpContextMockHelper.CreateHttpContext(httpResponseStub, httpRequest); Mock<IResourceProcessor> resourceProcessorMock = new Mock<IResourceProcessor>(); resourceProcessorMock.Setup(x => x.ProcessResource(resourceElementGroup, It.IsAny<CompressionType>())) .Returns(() => processedResourceGroupInfo); ResourceHandler resourceHandler = new ResourceHandler(resourceProcessorMock.Object, webResourceConfigurationMock.Object, httpResponseCacher, httpResponseCompressor); resourceHandler.HandleResource(httpContextBaseMock.Object, resourceType, resourceGroupName); return httpContextBaseMock; }