Пример #1
0
            /// <summary>
            /// Recoge un archivo css y lo devuelve sin lineas en blanco
            /// </summary>
            /// <param name="fileName">Nombre del archivo</param>
            /// <param name="folder">Carpeta contenedora en el servidor desde la raiz</param>
            /// <param name="min">Nombre del archivo a minificar sin extension</param>
            /// <returns></returns>
            public static string InlineFile(FileTipe tipo, string fileName, string folder, string min)
            {
                string retorno = string.Empty;

                switch (tipo)
                {
                case FileTipe.css:
                    retorno = "<style type=\"text/css\">";
                    break;

                case FileTipe.javascript:
                    retorno = "<script type=\"text/javascript\">";
                    break;
                }

                try
                {
                    ficheros f    = new ficheros();
                    string   file = f.RutaCompleta(folder) + fileName;
                    if (f.existeFichero(fileName, folder) == true)
                    {
                        StreamReader read    = new StreamReader(file);
                        string       content = read.ReadToEnd();
                        if (tipo == FileTipe.css)
                        {
                            content = content.Replace(Environment.NewLine, " ");
                            content = content.Replace((char)10, ' ');
                            content = content.Replace((char)11, ' ');
                            content = content.Replace((char)12, ' ');
                            content = content.Replace((char)13, ' ');
                            content = content.Replace("\t", "");
                            content = content.Replace("  ", "");
                            content = content.Replace("; ", ";");
                            content = content.Replace(": ", ":");
                            content = content.Replace(" {", "{");
                            content = content.Replace("{ ", "{");
                            content = content.Replace(" }", "}");
                            content = content.Replace("} ", "}");
                        }
                        retorno += content;

                        read.Close();
                    }
                    f = null;
                }
                catch
                {
                    retorno += "";
                }

                switch (tipo)
                {
                case FileTipe.css:
                    retorno += "</style>";
                    break;

                case FileTipe.javascript:
                    retorno += "</script>";
                    break;
                }

                return(retorno);
            }
Пример #2
0
            /// <summary>
            /// Recoge un archivo css y lo devuelve sin lineas en blanco
            /// </summary>
            /// <param name="fileName">Nombres de los archivos</param>
            /// <param name="folder">Carpetas contenedoras en el servidor desde la raiz en el mismo orden que los archivos</param>
            /// <param name="min">Nombre del archivo a minificar sin extension</param>
            /// <returns></returns>
            public static string InlineFile(FileTipe tipo, string[] fileName, string[] folder, string min, bool inline = false)
            {
                string retorno = string.Empty;

                string fichero = min;

                ficheros f = new ficheros();

                switch (tipo)
                {
                case FileTipe.css:
                    fichero += ".css";
                    retorno  = "<style>";
                    break;

                case FileTipe.javascript:
                    fichero += ".js";
                    retorno  = "<script>";
                    break;
                }

                string ok = string.Empty;

                try
                {
                    for (int i = 0; i < fileName.Length; i++)
                    {
                        ok += "/* " + folder[i] + "/" + fileName[i];
                        if (string.IsNullOrEmpty(folder[i]))
                        {
                            ok += " (fichero remoto) */";
                            System.Net.WebClient wc = new System.Net.WebClient();
                            string content          = wc.DownloadString(fileName[i]);
                            wc.Dispose();
                            wc = null;
                            if (tipo == FileTipe.css)
                            {
                                content = content.Replace(Environment.NewLine, " ");
                                content = content.Replace((char)10, ' ');
                                content = content.Replace((char)11, ' ');
                                content = content.Replace((char)12, ' ');
                                content = content.Replace((char)13, ' ');
                                content = content.Replace("\t", "");
                                content = content.Replace("  ", " ");
                                content = content.Replace("; ", ";");
                                content = content.Replace(": ", ":");
                                content = content.Replace(" {", "{");
                                content = content.Replace("{ ", "{");
                                content = content.Replace(" }", "}");
                                content = content.Replace("} ", "}");
                            }
                            ok += content;
                        }
                        else
                        {
                            if (f.existeFichero(fileName[i], folder[i]))
                            {
                                ok += " exist */";
                                string       file    = f.RutaCompleta(folder[i]) + fileName[i];
                                StreamReader read    = new StreamReader(file);
                                string       content = read.ReadToEnd();
                                System.Text.RegularExpressions.Regex rgx = new System.Text.RegularExpressions.Regex(@"(?=\/\*)(.*)(\*\/)");
                                content = rgx.Replace(content, "");
                                if (tipo == FileTipe.css)
                                {
                                    content = content.Replace(Environment.NewLine, " ");
                                    content = content.Replace((char)10, ' ');
                                    content = content.Replace((char)11, ' ');
                                    content = content.Replace((char)12, ' ');
                                    content = content.Replace((char)13, ' ');
                                    content = content.Replace("\t", "");
                                    content = content.Replace("  ", "");
                                    content = content.Replace("; ", ";");
                                    content = content.Replace(": ", ":");
                                    content = content.Replace(" {", "{");
                                    content = content.Replace("{ ", "{");
                                    content = content.Replace(" }", "}");
                                    content = content.Replace("} ", "}");
                                }
                                ok += content;

                                //retorno += content;
                                read.Close();
                            }
                            else
                            {
                                ok += " not exist */";
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    retorno = "/* exception " + ex.ToString() + "*/";
                }

                if (inline == true)
                {
                    switch (tipo)
                    {
                    case FileTipe.css:
                        retorno += ok + "</style>";
                        break;

                    case FileTipe.javascript:
                        retorno += ok + "</script>";
                        break;
                    }
                }
                else
                {
                    f.guardaDato(fichero, ok, "dat");
                    switch (tipo)
                    {
                    case FileTipe.css:
                        retorno = "<link rel=\"stylesheet\" href=\"" + string.Format("/dat/" + fichero + "?v={0}", CacheExpire(0)) + "\" type=\"text/css\" />";
                        break;

                    case FileTipe.javascript:
                        retorno = "<script src=\"" + string.Format("/dat/" + fichero + "?v={0}", CacheExpire(0)) + "\"></script>";
                        break;
                    }
                }

                f = null;

                return(retorno);
            }