示例#1
0
        private static void CreateCssSpriteFiles(IPathProvider pathProvider, CssSpriteGroupElementCollection cssSpriteGroups, CssSpriteCreator cssSpriteCreator)
        {
            _cssSpriteOutput = "Css Sprite Files created:\r\n";
            foreach (CssSpriteGroupElement group in cssSpriteGroups)
            {
                var files = new List <ImageFile>();

                foreach (ImageFileElement imageFile in group.Files)
                {
                    var file = new ImageFile()
                    {
                        FilePath = imageFile.FilePath,
                        Name     = imageFile.Name
                    };
                    files.Add(file);
                }

                var cssOutPutUri  = string.IsNullOrEmpty(group.CssUrl) ? new Uri(pathProvider.ToAbsolute(group.CssOutputFilePath), UriKind.Relative) : new Uri(group.CssUrl, UriKind.RelativeOrAbsolute);
                var cssOutputPath = new FileInfo(pathProvider.MapPath(group.CssOutputFilePath));

                var imageOutputUri  = string.IsNullOrEmpty(group.ImageUrl) ? new Uri(pathProvider.ToAbsolute(group.ImageOutputFilePath), UriKind.Relative) : new Uri(group.ImageUrl, UriKind.RelativeOrAbsolute);
                var imageOutputPath = new FileInfo(pathProvider.MapPath(group.ImageOutputFilePath));

                cssSpriteCreator.AddFiles(imageOutputPath, imageOutputUri, cssOutputPath, files);

                _cssSpriteOutput += cssOutPutUri + "(" + group.Name + ")\r\n";
                _cssSpriteOutput += imageOutputUri + "(" + group.Name + ")\r\n";
                foreach (var imageFile in files)
                {
                    imageOutputUri    = new Uri(pathProvider.ToAbsolute(imageFile.FilePath), UriKind.Relative);
                    _cssSpriteOutput += "    " + imageOutputUri + "\r\n";
                }
            }
        }
        public StringBuilder ProcessGroups(IPathProvider pathProvider, ICssSpriteCreator cssSpriteCreator, CssSpriteGroupElementCollection cssSpriteGroups)
        {
            var output = new StringBuilder("Css Sprite Files created:\r\n");

            Action<CssSpriteGroupToProcess> processJsGroup = ProcessJsGroup;

            var cssSpriteGroupToProcess = cssSpriteGroups.Cast<CssSpriteGroupElement>()
                .Select(group => new CssSpriteGroupToProcess
                {
                    CssSpriteCreator = cssSpriteCreator,
                    PathProvider = pathProvider,
                    Group = group,
                    Output = output
                }).ToList();

            if (cssSpriteGroupToProcess.Any())
            {
                ParallelExecute.EachParallel(cssSpriteGroupToProcess, processJsGroup);
            }
            else
            {
                output.AppendFormat("No files to process");
            }
            return output;
        }
示例#3
0
 private CrusherHelper()
 {
     CacheManager = new HttpCacheManager();
     QuerystringKeyName = CurrentCrusherConfiguration.Current.QuerystringKeyName;
     CssGroups = CurrentCrusherConfiguration.Current.CssGroups;
     JsGroups = CurrentCrusherConfiguration.Current.JsGroups;
     CssSpriteGroups = CurrentCrusherConfiguration.Current.CssSpriteGroups;
     RetryableFileOpener = new RetryableFileOpener();
     Hasher = new Md5Hasher(RetryableFileOpener);
     AmdModule = new AmdModule(RetryableFileOpener);
 }
示例#4
0
 private CrusherHelper()
 {
     CacheManager        = new HttpCacheManager();
     QuerystringKeyName  = CurrentCrusherConfiguration.Current.QuerystringKeyName;
     CssGroups           = CurrentCrusherConfiguration.Current.CssGroups;
     JsGroups            = CurrentCrusherConfiguration.Current.JsGroups;
     CssSpriteGroups     = CurrentCrusherConfiguration.Current.CssSpriteGroups;
     RetryableFileOpener = new RetryableFileOpener();
     Hasher    = new Md5Hasher(RetryableFileOpener);
     AmdModule = new AmdModule(RetryableFileOpener);
 }
示例#5
0
        private static void CreateCssSpriteFiles(IPathProvider pathProvider, CssSpriteGroupElementCollection cssSpriteGroups, CssSpriteCreator cssSpriteCreator)
        {
            _cssSpriteOutput = "Css Sprite Files created:\r\n";
            foreach (CssSpriteGroupElement group in cssSpriteGroups)
            {
                var files = new List<ImageFile>();

                foreach (ImageFileElement imageFile in group.Files)
                {
                    var file = new ImageFile()
                    {
                        FilePath = imageFile.FilePath,
                        Name = imageFile.Name
                    };
                    files.Add(file);
                }

                var cssOutPutUri = string.IsNullOrEmpty(group.CssUrl) ? new Uri(pathProvider.ToAbsolute(group.CssOutputFilePath), UriKind.Relative) : new Uri(group.CssUrl, UriKind.RelativeOrAbsolute);
                var cssOutputPath = new FileInfo(pathProvider.MapPath(group.CssOutputFilePath));

                var imageOutputUri = string.IsNullOrEmpty(group.ImageUrl) ? new Uri(pathProvider.ToAbsolute(group.ImageOutputFilePath), UriKind.Relative) : new Uri(group.ImageUrl, UriKind.RelativeOrAbsolute);
                var imageOutputPath = new FileInfo(pathProvider.MapPath(group.ImageOutputFilePath));

                cssSpriteCreator.AddFiles(imageOutputPath, imageOutputUri, cssOutputPath, files);

                _cssSpriteOutput += cssOutPutUri + "(" + group.Name + ")\r\n";
                _cssSpriteOutput += imageOutputUri + "(" + group.Name + ")\r\n";
                foreach (var imageFile in files)
                {
                    imageOutputUri = new Uri(pathProvider.ToAbsolute(imageFile.FilePath), UriKind.Relative);
                    _cssSpriteOutput += "    " + imageOutputUri + "\r\n";
                }
            }
        }
        public StringBuilder ProcessGroups(IPathProvider pathProvider, ICssSpriteCreator cssSpriteCreator, CssSpriteGroupElementCollection cssSpriteGroups)
        {
            var output = new StringBuilder("Css Sprite Files created:\r\n");

            Action <CssSpriteGroupToProcess> processJsGroup = ProcessJsGroup;

            var cssSpriteGroupToProcess = cssSpriteGroups.Cast <CssSpriteGroupElement>()
                                          .Select(group => new CssSpriteGroupToProcess
            {
                CssSpriteCreator = cssSpriteCreator,
                PathProvider     = pathProvider,
                Group            = group,
                Output           = output
            }).ToList();

            if (cssSpriteGroupToProcess.Any())
            {
                ParallelExecute.EachParallel(cssSpriteGroupToProcess, processJsGroup);
            }
            else
            {
                output.AppendFormat("No files to process");
            }
            return(output);
        }