Esempio n. 1
0
        private SPFile CreateOrUpdateMinifiedFile(SPItemEventProperties properties)
        {
            SPFile returnValue = null;

            RunForMainFile(properties, (fileNameParser, targetFolder, mainFile, minifiedFile) =>
            {
                var reader   = new FileContentParser(mainFile);
                var content  = reader.GetCompiledContent();
                var minifier = new FileMinifier(fileNameParser.FileExtension, content);

                if (minifiedFile != null)
                {
                    if (minifiedFile.CheckedOutByUser == null)
                    {
                        minifiedFile.CheckOut();
                    }

                    minifiedFile.SaveBinary(minifier.MinifyAsByteArray());
                }
                else
                {
                    var fileHashDictionary = new FileHashDictionary(properties.ListItem.Web.Site);
                    var fileHash           = fileHashDictionary[fileNameParser.FilePath];
                    var minifiedFileName   = fileNameParser.GenerateMinifiedVersionFileName(fileHash);

                    string fileUrl = String.Format("{0}/{1}", targetFolder.Url, minifiedFileName);
                    minifiedFile   = targetFolder.Files.Add(fileUrl, minifier.MinifyAsByteArray());
                }

                returnValue = minifiedFile;
            });

            return(returnValue);
        }
Esempio n. 2
0
        public StringTupleLists GetBasicStringListsForSingleTextFile(IGeneralFile file)
        {
            IEnumerable <string> fileContent                = this.GetFileContent(file);
            FileContentParser    fileContentParser          = new FileContentParser();
            StringTupleLists     stringTupleCollectionsList = new StringTupleLists
            {
                List = fileContentParser.GetStringTupleListFromFileContent(
                    fileContent,
                    file.Name)
            };

            return(stringTupleCollectionsList);
        }
Esempio n. 3
0
        /// <summary>
        /// Generates the HTML for the separated inclusion tags
        /// </summary>
        protected void GenerateSeparatedInclusionTags()
        {
            SPWeb web = SPContext.Current.Site.RootWeb;

            string filePath = String.Format("{0}/Style Library/{1}", web.ServerRelativeUrl, FilePath);

            filePath = FileUtilities.RemoveDuplicatedSlashesFromPath(filePath);

            try
            {
                SPFile file          = web.GetFile(filePath);
                var    reader        = new FileContentParser(file);
                string fileDirectory = FileUtilities.GetDirectoryPathFromFilePath(filePath);

                foreach (string includedFile in reader.IncludedFiles)
                {
                    html.AppendLine(GenerateHtml(fileDirectory + "/" + includedFile));
                }
            }
            catch (SPException)
            {
                html.AppendLine("<!-- SPMin: " + HttpUtility.HtmlEncode(filePath) + " not found -->");
            }
        }
Esempio n. 4
0
        private SPFile CreateOrUpdateMinifiedFile(SPItemEventProperties properties)
        {
            SPFile returnValue = null;

            RunForMainFile(properties, (fileNameParser, targetFolder, mainFile, minifiedFile) =>
            {
                var reader = new FileContentParser(mainFile);
                var content = reader.GetCompiledContent();
                var minifier = new FileMinifier(fileNameParser.FileExtension, content);

                if (minifiedFile != null)
                {
                    if (minifiedFile.CheckedOutByUser == null)
                        minifiedFile.CheckOut();

                    minifiedFile.SaveBinary(minifier.MinifyAsByteArray());
                }
                else
                {
                    var fileHashDictionary = new FileHashDictionary(properties.ListItem.Web.Site);
                    var fileHash = fileHashDictionary[fileNameParser.FilePath];
                    var minifiedFileName = fileNameParser.GenerateMinifiedVersionFileName(fileHash);

                    string fileUrl = String.Format("{0}/{1}", targetFolder.Url, minifiedFileName);
                    minifiedFile = targetFolder.Files.Add(fileUrl, minifier.MinifyAsByteArray());
                }

                returnValue = minifiedFile;
            });

            return returnValue;
        }