public bool HandleResult( IResult result, IFormatInfo outputFormat, HttpRequestBase request, HttpResponseBase response ) { response.AddHeader("Accept-Ranges", "bytes"); Range range; if ( !TryGetRequestedRange( request, out range ) ) { return false; } if (!ValidateIfRangeHeader(request, result)) { return false; } var offset = range.Start ?? 0; var end = range.End.HasValue ? range.End.Value : result.ContentLength - 1; var length = end - offset + 1; response.AddHeader( "Content-Range", "bytes " + offset + "-" + end + "/" + result.ContentLength ); response.StatusCode = 206; result.Serve( response, offset, length ); return true; }
private string GetCacheFileName(string cacheKey, IFormatInfo outputFormat) { var inputBytes = Encoding.UTF8.GetBytes(cacheKey); var hash = MD5.Create().ComputeHash(inputBytes); var relativeUrl = new Guid(hash).ToString().Replace('-', '\\') + outputFormat.Extension; return Path.Combine(m_cacheRoot.FullName, relativeUrl); }
public bool HandleResult(IResult result, IFormatInfo outputFormat, HttpRequestBase request, HttpResponseBase response) { response.AddHeader("Accept-Ranges", "bytes"); Range range; if (!TryGetRequestedRange(request, out range)) { return(false); } if (!ValidateIfRangeHeader(request, result)) { return(false); } var offset = range.Start ?? 0; var end = range.End.HasValue ? range.End.Value : result.ContentLength - 1; var length = end - offset + 1; response.AddHeader("Content-Range", "bytes " + offset + "-" + end + "/" + result.ContentLength); response.StatusCode = 206; result.Serve(response, offset, length); return(true); }
public bool TryGetContentType(IFormatInfo originalFormat, HttpRequestBase request, IFormatInfoProvider formatInfoProvider, out IFormatInfo transformedFormat, out BitmapEncoder encoder) { var format = request.QueryString["format"]; if (string.IsNullOrEmpty(format)) { format = originalFormat.Extension.Substring(1); } switch (format.ToLower()) { case "jpg": int quality; if (!int.TryParse(request.QueryString["quality"], out quality) || quality <= 0 || quality > 100) { quality = 80; } transformedFormat = formatInfoProvider.ResolveFromExtension(".jpg"); encoder = new JpegBitmapEncoder { QualityLevel = quality }; return transformedFormat != null; case "png": transformedFormat = formatInfoProvider.ResolveFromExtension(".png"); encoder = new PngBitmapEncoder(); return transformedFormat != null; default: transformedFormat = null; encoder = null; return false; } }
private bool TryGetResult(HttpRequestBase request, IFormatInfo outputFormat, bool transformMedia, IMediaTransformer mediaTransformer, out IResult result) { var path = GetRequestPath(request); var originalPath = GetOriginalPath(request, mediaTransformer); if (MediaCache.TryServeRequestFromCache(transformMedia ? path : originalPath, outputFormat, out result)) { return(true); } IStorageFile storageFile; if (!StorageBackend.TryGetStorageFile(originalPath, out storageFile)) { return(false); } if (!transformMedia && !CacheOriginals) { result = storageFile; return(true); } if (transformMedia) { result = TransformMedia(storageFile.GetStream(), outputFormat, path, mediaTransformer); return(true); } result = ServeOriginal(originalPath, storageFile, outputFormat); return(true); }
public bool TryGetContentType(IFormatInfo originalFormat, HttpRequestBase request, IFormatInfoProvider formatInfoProvider, out IFormatInfo transformedFormat, out BitmapEncoder encoder) { var format = request.QueryString["format"]; if (string.IsNullOrEmpty(format)) { format = originalFormat.Extension.Substring(1); } switch (format.ToLower()) { case "jpg": int quality; if (!int.TryParse(request.QueryString["quality"], out quality) || quality <= 0 || quality > 100) { quality = 80; } transformedFormat = formatInfoProvider.ResolveFromExtension(".jpg"); encoder = new JpegBitmapEncoder { QualityLevel = quality }; return(transformedFormat != null); case "png": transformedFormat = formatInfoProvider.ResolveFromExtension(".png"); encoder = new PngBitmapEncoder(); return(transformedFormat != null); default: transformedFormat = null; encoder = null; return(false); } }
public bool TryCreateTransformer(HttpRequestBase request, IFormatInfo originalFormat, IFormatInfoProvider formatInfoProvider, out IMediaTransformer mediaTransformer) { if (!CanHandleFormat(originalFormat)) { mediaTransformer = null; return(false); } if (!IsValidFilePath(request.Url.AbsolutePath)) { mediaTransformer = null; return(false); } IFormatInfo outputFormat; if (!TryGetOutputFormat(request, originalFormat, formatInfoProvider, out outputFormat)) { mediaTransformer = null; return(false); } mediaTransformer = new MediaTransformer(outputFormat, this); return(true); }
public StoredProcedureRtt( ProcedureInfo procedureInfo, IDiagnosticsCallback diagnosticsCallback, IFormatInfo formatInfo) : base(diagnosticsCallback, formatInfo) { Procedure = procedureInfo; }
public static FormatInfoProxy Create(IFormatInfo formatInfo) { if (ReferenceEquals(formatInfo, null)) { throw new ArgumentNullException(nameof(formatInfo)); } return(formatInfo as FormatInfoProxy ?? new FormatInfoProxy(formatInfo)); }
private string GetCacheFileName(string cacheKey, IFormatInfo outputFormat) { var inputBytes = Encoding.UTF8.GetBytes(cacheKey); var hash = MD5.Create().ComputeHash(inputBytes); var relativeUrl = new Guid(hash).ToString().Replace('-', '\\') + outputFormat.Extension; return(Path.Combine(m_cacheRoot.FullName, relativeUrl)); }
public bool TryCreateTransformer(HttpRequestBase request, IFormatInfo originalFormat, IFormatInfoProvider formatInfoProvider, out IMediaTransformer mediaTransformer) { var compositeTransformer = new CompositeMediaTransformer(); var factories = _transformerFactories.ToList(); AddTransformerToComposite(request, originalFormat, compositeTransformer, factories, formatInfoProvider); mediaTransformer = compositeTransformer; return compositeTransformer.Count > 0; }
public bool TryCreateTransformer(HttpRequestBase request, IFormatInfo originalFormat, IFormatInfoProvider formatInfoProvider, out IMediaTransformer mediaTransformer) { var compositeTransformer = new CompositeMediaTransformer(); var factories = _transformerFactories.ToList(); AddTransformerToComposite(request, originalFormat, compositeTransformer, factories, formatInfoProvider); mediaTransformer = compositeTransformer; return(compositeTransformer.Count > 0); }
public CmdBuilderFactoryRtt( IEnumerable <ProcedureInfo> procedures, IDiagnosticsCallback diagnosticsCallback, IFormatInfo formatInfo) : base(diagnosticsCallback, formatInfo) { procedures = procedures ?? Enumerable.Empty <ProcedureInfo>(); Procedures = procedures.OrderBy(sp => sp.FullName, StringComparer.Ordinal).ToList(); SpFullNames = Procedures.Select(sp => sp.FullName).ToList(); }
public readonly string SourceScript; // if null, it was from interactive internal ViewDefinitionInfo(IFormatInfo viewDef, string sourceScript) { if (null == viewDef) { throw new ArgumentNullException("viewDef"); } ViewDefinition = viewDef; SourceScript = sourceScript; }
public UserDefinedTableTypeRtt( DataTable schema, IDiagnosticsCallback diagnosticsCallback, IFormatInfo formatInfo) : base(diagnosticsCallback, formatInfo) { if (ReferenceEquals(schema, null)) { throw new ArgumentNullException(nameof(schema)); } Schema = schema; }
// TODO: -All parameter? protected override void ProcessRecord() { base.ProcessRecord(); IFormatInfo fi = AltFormattingManager.ChooseFormatInfoForPSObject(ForObject, FormatInfoType); if (null != fi) { WriteObject(fi); } } // end ProcessRecord()
protected override bool TryGetOutputFormat(HttpRequestBase request, IFormatInfo originalFormat, IFormatInfoProvider formatInfoProvider, out IFormatInfo outputFormat) { var format = request.QueryString["format"]; if (string.Equals(format, "exif-xml", StringComparison.InvariantCultureIgnoreCase)) { outputFormat = formatInfoProvider.ResolveFromExtension(".xml"); return outputFormat != null; } outputFormat = null; return false; }
} // end constructor /// <summary> /// Not a true, complete comparison; just enough to handle the needs of dealing /// with calculated properties. /// </summary> public bool LooksLikeExistingFromPropertyDefinition(IFormatInfo otherBase) { if (!(otherBase is AltTableViewDefinition other)) { return(false); } if (m_columns.Length != other.m_columns.Length) { return(false); } for (int i = 0; i < m_columns.Length; i++) { if (m_columns[i] is PropertyColumn pc1) { if (other.m_columns[i] is PropertyColumn pc2) { if (!pc1.LooksSimilar(pc2)) { return(false); } } else { return(false); } } else if (m_columns[i] is ScriptColumn sc1) { if (other.m_columns[i] is ScriptColumn sc2) { if (!sc1.LooksSimilar(sc2)) { return(false); } } else { return(false); } } } // For the purposes of -Property stuff, we shouldn't need to care about other // stuff. If any of these fire... somebody is using this method that probably // shouldn't. Util.Assert(null == GroupBy); Util.Assert(null == ProduceGroupByHeader); return(true); } // end LooksLikeExistingFromPropertyDefinition()
/// <summary> /// Not a true, complete comparison; just enough to handle the needs of dealing /// with calculated properties. /// </summary> public bool LooksLikeExistingFromPropertyDefinition(IFormatInfo otherBase) { if (!(otherBase is AltListViewDefinition other)) { return(false); } if (ListItems.Count != other.ListItems.Count) { return(false); } for (int i = 0; i < ListItems.Count; i++) { if (ListItems[i] is PropertyListItem pli1) { if (other.ListItems[i] is PropertyListItem pli2) { if (pli1 != pli2) { return(false); } } else { return(false); } } else if (ListItems[i] is ScriptListItem sli1) { if (other.ListItems[i] is ScriptListItem sli2) { if (!sli1.LooksSimilar(sli2)) { return(false); } } else { return(false); } } } // For the purposes of -Property stuff, we shouldn't need to care about other // stuff. If any of these fire... somebody is using this method that probably // shouldn't. Util.Assert(null == GroupBy); Util.Assert(null == ProduceGroupByHeader); return(true); } // end LooksLikeExistingFromPropertyDefinition()
protected override bool TryGetOutputFormat(HttpRequestBase request, IFormatInfo originalFormat, IFormatInfoProvider formatInfoProvider, out IFormatInfo outputFormat) { var format = request.QueryString["format"]; if (string.Equals(format, "exif-json", StringComparison.InvariantCultureIgnoreCase)) { outputFormat = formatInfoProvider.ResolveFromExtension(".json"); return(outputFormat != null); } outputFormat = null; return(false); }
protected RuntimeTextTemplate(IDiagnosticsCallback diagnosticsCallback, IFormatInfo formatInfo) { if (ReferenceEquals(diagnosticsCallback, null)) { throw new ArgumentException(nameof(diagnosticsCallback)); } if (ReferenceEquals(diagnosticsCallback, null)) { throw new ArgumentException(nameof(formatInfo)); } m_diagnosticsCallback = diagnosticsCallback; m_formatInfo = formatInfo; }
private IResult ServeOriginal(string path, IStorageFile storageFile, IFormatInfo outputFormat) { var stream = storageFile.GetStream(); IAddToCacheResult cacheResult; if (MediaCache.TryAddToCache(path, stream, outputFormat, out cacheResult)) { return(new CopyToOutputStreamResult(cacheResult.LastModified, cacheResult.ETag, storageFile.ContentLength, stream)); } return(storageFile); }
private static void AddTransformerToComposite(HttpRequestBase request, IFormatInfo originalFormat, CompositeMediaTransformer compositeTransformer, List <IMediaTransformerFactory> factories, IFormatInfoProvider formatInfoProvider) { foreach (var transformerFactory in factories) { IMediaTransformer transformer; if (transformerFactory.TryCreateTransformer(request, originalFormat, formatInfoProvider, out transformer)) { compositeTransformer.AddMediaTransformer(transformer); factories.Remove(transformerFactory); AddTransformerToComposite(request, transformer.OutputFormat, compositeTransformer, factories, formatInfoProvider); return; } } }
private static void AddTransformerToComposite(HttpRequestBase request, IFormatInfo originalFormat, CompositeMediaTransformer compositeTransformer, List<IMediaTransformerFactory> factories, IFormatInfoProvider formatInfoProvider) { foreach (var transformerFactory in factories) { IMediaTransformer transformer; if (transformerFactory.TryCreateTransformer(request, originalFormat, formatInfoProvider, out transformer)) { compositeTransformer.AddMediaTransformer(transformer); factories.Remove(transformerFactory); AddTransformerToComposite( request, transformer.OutputFormat, compositeTransformer, factories, formatInfoProvider); return; } } }
public bool TryServeRequestFromCache(string path, IFormatInfo outputFormat, out IResult result) { var cacheFile = GetCacheFileInfo(path, outputFormat); if (!cacheFile.Exists) { result = null; return false; } var etag = m_fileInfoETagCalculator.CalculateETag( cacheFile ); result = new TransmitFileResult(cacheFile.LastWriteTime, etag, cacheFile.Length, cacheFile.FullName); return true; }
public bool TryServeRequestFromCache(string path, IFormatInfo outputFormat, out IResult result) { var cacheFile = GetCacheFileInfo(path, outputFormat); if (!cacheFile.Exists) { result = null; return(false); } var etag = m_fileInfoETagCalculator.CalculateETag(cacheFile); result = new TransmitFileResult(cacheFile.LastWriteTime, etag, cacheFile.Length, cacheFile.FullName); return(true); }
} // end _MarkPropertyHidden() /// <summary> /// Sets an object-specific default view for a particular object (which will /// override views registered by type name when selecting a default view). This /// works by attaching a hidden property to the object. /// </summary> public static void SetDefaultFormatInfoForObject(PSObject pso, IFormatInfo formatInfo) { PSPropertyInfo pspi = pso.Properties[DefaultViewDefPropName]; if (null != pspi) { // It already exists. We'll just change the value. pspi.Value = formatInfo; } else { // Need to tack it on. PSNoteProperty psnp = new PSNoteProperty(DefaultViewDefPropName, formatInfo); _MarkPropertyHidden(psnp); pso.Properties.Add(psnp); } } // end SetDefaultFormatInfoForObject()
public bool TryAddToCache(string path, Stream stream, IFormatInfo outputFormat, out IAddToCacheResult result) { var cacheFile = GetCacheFileInfo(path, outputFormat); if (!cacheFile.Directory.Exists) { cacheFile.Directory.Create(); } using (var fileStream = cacheFile.Create()) { stream.CopyTo(fileStream); } var etag = m_fileInfoETagCalculator.CalculateETag( cacheFile ); result = new AddToCacheResult(cacheFile.LastWriteTime, etag); return true; }
private IResult TransformMedia(Stream original, IFormatInfo outputFormat, string path, IMediaTransformer mediaTransformer) { Stream stream; var transformResult = mediaTransformer.TransformStream(original, out stream); original.Dispose(); if (transformResult == MediaTransformResult.Success) { IAddToCacheResult cacheResult; if (MediaCache.TryAddToCache(path, stream, outputFormat, out cacheResult)) { return(new CopyToOutputStreamResult(cacheResult.LastModified, cacheResult.ETag, stream.Length, stream)); } } return(new CopyToOutputStreamResult(null, null, stream.Length, stream)); }
public bool HandleResult(IResult result, IFormatInfo outputFormat, HttpRequestBase request, HttpResponseBase response) { response.Cache.VaryByHeaders["Accept-Encoding"] = true; if (!outputFormat.AllowCompression) { return false; } ICompression compression; if (!TryGetCompressionFromRequest(request, out compression)) { return false; } response.Filter = compression.Compress(response.Filter); response.AddHeader("Content-Encoding", compression.ContentEncoding); return false; }
public bool TryAddToCache(string path, Stream stream, IFormatInfo outputFormat, out IAddToCacheResult result) { var cacheFile = GetCacheFileInfo(path, outputFormat); if (!cacheFile.Directory.Exists) { cacheFile.Directory.Create(); } using (var fileStream = cacheFile.Create()) { stream.CopyTo(fileStream); } var etag = m_fileInfoETagCalculator.CalculateETag(cacheFile); result = new AddToCacheResult(cacheFile.LastWriteTime, etag); return(true); }
public bool HandleResult(IResult result, IFormatInfo outputFormat, HttpRequestBase request, HttpResponseBase response) { response.Cache.VaryByHeaders["Accept-Encoding"] = true; if (!outputFormat.AllowCompression) { return(false); } ICompression compression; if (!TryGetCompressionFromRequest(request, out compression)) { return(false); } response.Filter = compression.Compress(response.Filter); response.AddHeader("Content-Encoding", compression.ContentEncoding); return(false); }
public RuntimeTextTemplateFactory( Projection.Projection projection, IDiagnosticsCallback diagnosticsCallback, IFormatInfo formatInfo) { if (ReferenceEquals(projection, null)) { throw new ArgumentException(nameof(projection)); } if (ReferenceEquals(diagnosticsCallback, null)) { throw new ArgumentException(nameof(diagnosticsCallback)); } if (ReferenceEquals(diagnosticsCallback, null)) { throw new ArgumentException(nameof(formatInfo)); } m_projection = projection; m_diagnosticsCallback = diagnosticsCallback; m_formatInfo = formatInfo; }
public bool TryCreateTransformer(HttpRequestBase request, IFormatInfo originalFormat, IFormatInfoProvider formatInfoProvider, out IMediaTransformer mediaTransformer) { var transforms = GetBitmapTransforms(request.QueryString).ToArray(); if (!transforms.Any()) { mediaTransformer = null; return false; } IFormatInfo outputFormat; BitmapEncoder encoder; if (!TryGetContentType(originalFormat, request, formatInfoProvider, out outputFormat, out encoder)) { mediaTransformer = null; return false; } mediaTransformer = new ImageMediaTransformer(transforms, encoder, outputFormat); return true; }
public bool TryCreateTransformer(HttpRequestBase request, IFormatInfo originalFormat, IFormatInfoProvider formatInfoProvider, out IMediaTransformer mediaTransformer) { var transforms = GetBitmapTransforms(request.QueryString).ToArray(); if (!transforms.Any()) { mediaTransformer = null; return(false); } IFormatInfo outputFormat; BitmapEncoder encoder; if (!TryGetContentType(originalFormat, request, formatInfoProvider, out outputFormat, out encoder)) { mediaTransformer = null; return(false); } mediaTransformer = new ImageMediaTransformer(transforms, encoder, outputFormat); return(true); }
public bool HandleResult(IResult result, IFormatInfo outputFormat, HttpRequestBase request, HttpResponseBase response) { response.Cache.SetCacheability( HttpCacheability.Public ); if ( outputFormat.ClientCacheMaxAge.HasValue ) { response.Cache.SetNoServerCaching(); response.Cache.SetExpires( DateTime.Now.Add( outputFormat.ClientCacheMaxAge.Value ) ); response.Cache.SetMaxAge( outputFormat.ClientCacheMaxAge.Value ); } if (result.LastModified.HasValue) { response.Cache.SetLastModified(result.LastModified.Value); } if (!string.IsNullOrEmpty(result.ETag)) { response.Cache.SetETag( result.ETag ); } return false; }
public bool HandleResult(IResult result, IFormatInfo outputFormat, HttpRequestBase request, HttpResponseBase response) { response.Cache.SetCacheability(HttpCacheability.Public); if (outputFormat.ClientCacheMaxAge.HasValue) { response.Cache.SetNoServerCaching(); response.Cache.SetExpires(DateTime.Now.Add(outputFormat.ClientCacheMaxAge.Value)); response.Cache.SetMaxAge(outputFormat.ClientCacheMaxAge.Value); } if (result.LastModified.HasValue) { response.Cache.SetLastModified(result.LastModified.Value); } if (!string.IsNullOrEmpty(result.ETag)) { response.Cache.SetETag(result.ETag); } return(false); }
public bool TryCreateTransformer(HttpRequestBase request, IFormatInfo originalFormat, IFormatInfoProvider formatInfoProvider, out IMediaTransformer mediaTransformer) { if (!CanHandleFormat(originalFormat)) { mediaTransformer = null; return false; } if(!IsValidFilePath(request.Url.AbsolutePath)) { mediaTransformer = null; return false; } IFormatInfo outputFormat; if( !TryGetOutputFormat(request, originalFormat, formatInfoProvider, out outputFormat) ) { mediaTransformer = null; return false; } mediaTransformer = new MediaTransformer(outputFormat, this); return true; }
public bool HandleResult(IResult result, IFormatInfo outputFormat, HttpRequestBase request, HttpResponseBase response) { var ifNoneMatchHeader = request.Headers["If-None-Match"]; var ifModifiedSinceHeader = request.Headers["If-Modified-Since"]; if (string.IsNullOrEmpty(ifNoneMatchHeader) && string.IsNullOrEmpty(ifModifiedSinceHeader)) { return false; } if (!ValidateETag(ifNoneMatchHeader, result)) { return false; } if (!ValidateLastModifyDate(ifModifiedSinceHeader, result)) { return false; } response.StatusCode = 304; response.SuppressContent = true; return true; }
public bool HandleResult(IResult result, IFormatInfo outputFormat, HttpRequestBase request, HttpResponseBase response) { var ifNoneMatchHeader = request.Headers["If-None-Match"]; var ifModifiedSinceHeader = request.Headers["If-Modified-Since"]; if (string.IsNullOrEmpty(ifNoneMatchHeader) && string.IsNullOrEmpty(ifModifiedSinceHeader)) { return(false); } if (!ValidateETag(ifNoneMatchHeader, result)) { return(false); } if (!ValidateLastModifyDate(ifModifiedSinceHeader, result)) { return(false); } response.StatusCode = 304; response.SuppressContent = true; return(true); }
public bool HandleResult(IResult result, IFormatInfo outputFormat, HttpRequestBase request, HttpResponseBase response) { result.Serve(response); return true; }
private IResult ServeOriginal( string path, IStorageFile storageFile, IFormatInfo outputFormat ) { var stream = storageFile.GetStream(); IAddToCacheResult cacheResult; if ( MediaCache.TryAddToCache( path, stream, outputFormat, out cacheResult ) ) { return new CopyToOutputStreamResult( cacheResult.LastModified, cacheResult.ETag, storageFile.ContentLength, stream ); } return storageFile; }
public MediaTransformer(IFormatInfo outputFormat, TransformerFactoryBase transformerFactory) { _transformerFactory = transformerFactory; OutputFormat = outputFormat; }
protected abstract bool CanHandleFormat(IFormatInfo format);
protected abstract FileInfo GetCacheFileInfo(string path, IFormatInfo outputFormat);
public bool HandleResult(IResult result, IFormatInfo outputFormat, HttpRequestBase request, HttpResponseBase response) { response.ContentType = outputFormat.ContentType; return false; }
public bool TryAddToCache(string path, Stream stream, IFormatInfo outputFormat, out IAddToCacheResult result) { result = null; return false; }
public ImageMediaTransformer( IEnumerable<Func<BitmapSource, BitmapSource>> bitmapTransformChain, BitmapEncoder encoder, IFormatInfo formatInfo ) { _bitmapTransformChain = bitmapTransformChain; _encoder = encoder; OutputFormat = formatInfo; }
protected override bool CanHandleFormat(IFormatInfo format) { return string.Equals(format.ContentType, "text/css", StringComparison.InvariantCultureIgnoreCase); }
protected virtual bool TryGetOutputFormat(HttpRequestBase request, IFormatInfo originalFormat, IFormatInfoProvider formatInfoProvider, out IFormatInfo outputFormat) { outputFormat = originalFormat; return true; }
public bool HandleResult(IResult result, IFormatInfo outputFormat, HttpRequestBase request, HttpResponseBase response) { return _handlers.Any(handler => handler.HandleResult(result, outputFormat, request, response)); }
public bool TryServeRequestFromCache(string path, IFormatInfo outputFormat, out IResult result) { result = null; return false; }
private IResult TransformMedia( Stream original, IFormatInfo outputFormat, string path, IMediaTransformer mediaTransformer ) { Stream stream; var transformResult = mediaTransformer.TransformStream( original, out stream ); original.Dispose(); if ( transformResult == MediaTransformResult.Success ) { IAddToCacheResult cacheResult; if ( MediaCache.TryAddToCache( path, stream, outputFormat, out cacheResult ) ) { return new CopyToOutputStreamResult( cacheResult.LastModified, cacheResult.ETag, stream.Length, stream ); } } return new CopyToOutputStreamResult( null, null, stream.Length, stream ); }
protected virtual bool TryGetOutputFormat(HttpRequestBase request, IFormatInfo originalFormat, IFormatInfoProvider formatInfoProvider, out IFormatInfo outputFormat) { outputFormat = originalFormat; return(true); }
protected override bool CanHandleFormat(IFormatInfo format) { return string.Equals(format.Extension, ".jpg", StringComparison.InvariantCultureIgnoreCase); }
private bool TryGetResult( HttpRequestBase request, IFormatInfo outputFormat, bool transformMedia, IMediaTransformer mediaTransformer, out IResult result ) { var path = GetRequestPath( request ); var originalPath = GetOriginalPath( request, mediaTransformer ); if ( MediaCache.TryServeRequestFromCache( transformMedia ? path : originalPath, outputFormat, out result ) ) { return true; } IStorageFile storageFile; if ( !StorageBackend.TryGetStorageFile( originalPath, out storageFile ) ) { return false; } if ( !transformMedia && !CacheOriginals ) { result = storageFile; return true; } if ( transformMedia ) { result = TransformMedia( storageFile.GetStream(), outputFormat, path, mediaTransformer ); return true; } result = ServeOriginal( originalPath, storageFile, outputFormat ); return true; }
protected override FileInfo GetCacheFileInfo(string path, IFormatInfo outputFormat) { return new FileInfo(GetCacheFileName(path, outputFormat)); }