示例#1
0
        /// <summary>
        /// Gets local css assets that exist.
        /// </summary>
        /// <returns>A list of FileInfo of css assets that exist.</returns>
        public IEnumerable <CssAsset> GetLocalCssAssetFilesThatExist()
        {
            _assetsLock.EnterUpgradeableReadLock();

            try
            {
                if (_localCssAssetFilesThatExist == null)
                {
                    _assetsLock.EnterWriteLock();
                    try
                    {
                        if (_localCssAssetFilesThatExist == null)
                        {
                            var contents = GetContents();
                            var cssAbsoluteUriDirectory = _pathProvider.GetAbsoluteUriDirectory(_cssRootUri);
                            _localCssAssetFilesThatExist = GetCssAssets(cssAbsoluteUriDirectory, contents);
                        }
                    }
                    finally
                    {
                        _assetsLock.ExitWriteLock();
                    }
                }

                return(_localCssAssetFilesThatExist);
            }
            finally
            {
                _assetsLock.ExitUpgradeableReadLock();
            }
        }
示例#2
0
        public CssFileProcessor(IRetryableFileOpener retryableFileOpener, IPathProvider pathProvider, ICssPathRewriter cssPathRewriter, string filePath, CssCompressionType compressionType, Uri cssRootUri, bool appendHashToAssets)
        {
            _retryableFileOpener = retryableFileOpener;
            _pathProvider        = pathProvider;
            _cssPathRewriter     = cssPathRewriter;
            CompressionType      = compressionType;

            _fileInfo   = new FileInfo(new Uri(_pathProvider.MapPath(filePath)).LocalPath);
            _cssRootUri = cssRootUri;
            var absoluteUriDirectory = _pathProvider.GetAbsoluteUriDirectory(filePath);

            _modules = new List <ICssModule>()
            {
                new DotLessModule(),
                new RelativePathModule(absoluteUriDirectory, cssPathRewriter),
                new CssAssetsHashModule(appendHashToAssets, cssPathRewriter, pathProvider)
            };
        }
示例#3
0
        public CssFileProcessor(IRetryableFileOpener retryableFileOpener, IPathProvider pathProvider, ICssPathRewriter cssPathRewriter, string filePath, CssCompressionType compressionType, Uri cssRootUri, bool appendHashToAssets)
        {
            _retryableFileOpener = retryableFileOpener;
            _pathProvider = pathProvider;
            _cssPathRewriter = cssPathRewriter;
            CompressionType = compressionType;

            _fileInfo = new FileInfo(new Uri(_pathProvider.MapPath(filePath)).LocalPath);
            _cssRootUri = cssRootUri;
            var absoluteUriDirectory = _pathProvider.GetAbsoluteUriDirectory(filePath);

            _modules = new List<ICssModule>()
            {
                new DotLessModule(),
                new RelativePathModule(absoluteUriDirectory, cssPathRewriter),
                new CssAssetsHashModule(appendHashToAssets, cssPathRewriter, pathProvider)
            };
        }