public static string UploadLegacySkin(string RootPath, string SkinRoot, string SkinName, Stream objInputStream)
 {
     ZipInputStream objZipInputStream = new ZipInputStream(objInputStream);
     ZipEntry objZipEntry;
     string strExtension;
     string strFileName;
     FileStream objFileStream;
     int intSize = 2048;
     byte[] arrData = new byte[2048];
     string strMessage = "";
     ArrayList arrSkinFiles = new ArrayList();
     PortalSettings ResourcePortalSettings = CommonLibrary.Common.Globals.GetPortalSettings();
     string BEGIN_MESSAGE = Localization.GetString("BeginZip", ResourcePortalSettings);
     string CREATE_DIR = Localization.GetString("CreateDir", ResourcePortalSettings);
     string WRITE_FILE = Localization.GetString("WriteFile", ResourcePortalSettings);
     string FILE_ERROR = Localization.GetString("FileError", ResourcePortalSettings);
     string END_MESSAGE = Localization.GetString("EndZip", ResourcePortalSettings);
     string FILE_RESTICTED = Localization.GetString("FileRestricted", ResourcePortalSettings);
     strMessage += FormatMessage(BEGIN_MESSAGE, SkinName, -1, false);
     objZipEntry = objZipInputStream.GetNextEntry();
     while (objZipEntry != null)
     {
         if (!objZipEntry.IsDirectory)
         {
             strExtension = objZipEntry.Name.Substring(objZipEntry.Name.LastIndexOf(".") + 1);
             if (("," + strExtension.ToUpper()).IndexOf(",ASCX,HTM,HTML,CSS,SWF,RESX,XAML,JS," + Host.FileExtensions.ToUpper()) != 0)
             {
                 if (objZipEntry.Name.ToLower() == SkinController.RootSkin.ToLower() + ".zip")
                 {
                     MemoryStream objMemoryStream = new MemoryStream();
                     intSize = objZipInputStream.Read(arrData, 0, arrData.Length);
                     while (intSize > 0)
                     {
                         objMemoryStream.Write(arrData, 0, intSize);
                         intSize = objZipInputStream.Read(arrData, 0, arrData.Length);
                     }
                     objMemoryStream.Seek(0, SeekOrigin.Begin);
                     strMessage += UploadLegacySkin(RootPath, SkinController.RootSkin, SkinName, (Stream)objMemoryStream);
                 }
                 else if (objZipEntry.Name.ToLower() == SkinController.RootContainer.ToLower() + ".zip")
                 {
                     MemoryStream objMemoryStream = new MemoryStream();
                     intSize = objZipInputStream.Read(arrData, 0, arrData.Length);
                     while (intSize > 0)
                     {
                         objMemoryStream.Write(arrData, 0, intSize);
                         intSize = objZipInputStream.Read(arrData, 0, arrData.Length);
                     }
                     objMemoryStream.Seek(0, SeekOrigin.Begin);
                     strMessage += UploadLegacySkin(RootPath, SkinController.RootContainer, SkinName, (Stream)objMemoryStream);
                 }
                 else
                 {
                     strFileName = RootPath + SkinRoot + "\\" + SkinName + "\\" + objZipEntry.Name;
                     if (!Directory.Exists(Path.GetDirectoryName(strFileName)))
                     {
                         strMessage += FormatMessage(CREATE_DIR, Path.GetDirectoryName(strFileName), 2, false);
                         Directory.CreateDirectory(Path.GetDirectoryName(strFileName));
                     }
                     if (File.Exists(strFileName))
                     {
                         File.SetAttributes(strFileName, FileAttributes.Normal);
                         File.Delete(strFileName);
                     }
                     objFileStream = File.Create(strFileName);
                     strMessage += FormatMessage(WRITE_FILE, Path.GetFileName(strFileName), 2, false);
                     intSize = objZipInputStream.Read(arrData, 0, arrData.Length);
                     while (intSize > 0)
                     {
                         objFileStream.Write(arrData, 0, intSize);
                         intSize = objZipInputStream.Read(arrData, 0, arrData.Length);
                     }
                     objFileStream.Close();
                     switch (Path.GetExtension(strFileName))
                     {
                         case ".htm":
                         case ".html":
                         case ".ascx":
                         case ".css":
                             if (strFileName.ToLower().IndexOf(Globals.glbAboutPage.ToLower()) < 0)
                             {
                                 arrSkinFiles.Add(strFileName);
                             }
                             break;
                     }
                     break;
                 }
             }
             else
             {
                 strMessage += string.Format(FILE_RESTICTED, objZipEntry.Name, Host.FileExtensions.ToString(), ",", ", *.").Replace("2", "true");
             }
         }
         objZipEntry = objZipInputStream.GetNextEntry();
     }
     strMessage += FormatMessage(END_MESSAGE, SkinName + ".zip", 1, false);
     objZipInputStream.Close();
     UI.Skins.SkinFileProcessor NewSkin = new UI.Skins.SkinFileProcessor(RootPath, SkinRoot, SkinName);
     strMessage += NewSkin.ProcessList(arrSkinFiles, SkinParser.Portable);
     try
     {
         Services.Log.EventLog.LogInfo objEventLogInfo = new Services.Log.EventLog.LogInfo();
         objEventLogInfo.LogTypeKey = Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString();
         objEventLogInfo.LogProperties.Add(new CommonLibrary.Services.Log.EventLog.LogDetailInfo("Install Skin:", SkinName));
         Array arrMessage = strMessage.Split(new string[] { "<br>" }, StringSplitOptions.None);
         foreach (string strRow in arrMessage)
         {
             objEventLogInfo.LogProperties.Add(new CommonLibrary.Services.Log.EventLog.LogDetailInfo("Info:", HtmlUtils.StripTags(strRow, true)));
         }
         Services.Log.EventLog.EventLogController objEventLog = new Services.Log.EventLog.EventLogController();
         objEventLog.AddLog(objEventLogInfo);
     }
     catch (Exception ex)
     {
         ex.ToString();
     }
     return strMessage;
 }
Пример #2
0
        public static string UploadLegacySkin(string RootPath, string SkinRoot, string SkinName, Stream objInputStream)
        {
            ZipInputStream objZipInputStream = new ZipInputStream(objInputStream);
            ZipEntry       objZipEntry;
            string         strExtension;
            string         strFileName;
            FileStream     objFileStream;
            int            intSize = 2048;

            byte[]         arrData                = new byte[2048];
            string         strMessage             = "";
            ArrayList      arrSkinFiles           = new ArrayList();
            PortalSettings ResourcePortalSettings = CommonLibrary.Common.Globals.GetPortalSettings();
            string         BEGIN_MESSAGE          = Localization.GetString("BeginZip", ResourcePortalSettings);
            string         CREATE_DIR             = Localization.GetString("CreateDir", ResourcePortalSettings);
            string         WRITE_FILE             = Localization.GetString("WriteFile", ResourcePortalSettings);
            string         FILE_ERROR             = Localization.GetString("FileError", ResourcePortalSettings);
            string         END_MESSAGE            = Localization.GetString("EndZip", ResourcePortalSettings);
            string         FILE_RESTICTED         = Localization.GetString("FileRestricted", ResourcePortalSettings);

            strMessage += FormatMessage(BEGIN_MESSAGE, SkinName, -1, false);
            objZipEntry = objZipInputStream.GetNextEntry();
            while (objZipEntry != null)
            {
                if (!objZipEntry.IsDirectory)
                {
                    strExtension = objZipEntry.Name.Substring(objZipEntry.Name.LastIndexOf(".") + 1);
                    if (("," + strExtension.ToUpper()).IndexOf(",ASCX,HTM,HTML,CSS,SWF,RESX,XAML,JS," + Host.FileExtensions.ToUpper()) != 0)
                    {
                        if (objZipEntry.Name.ToLower() == SkinController.RootSkin.ToLower() + ".zip")
                        {
                            MemoryStream objMemoryStream = new MemoryStream();
                            intSize = objZipInputStream.Read(arrData, 0, arrData.Length);
                            while (intSize > 0)
                            {
                                objMemoryStream.Write(arrData, 0, intSize);
                                intSize = objZipInputStream.Read(arrData, 0, arrData.Length);
                            }
                            objMemoryStream.Seek(0, SeekOrigin.Begin);
                            strMessage += UploadLegacySkin(RootPath, SkinController.RootSkin, SkinName, (Stream)objMemoryStream);
                        }
                        else if (objZipEntry.Name.ToLower() == SkinController.RootContainer.ToLower() + ".zip")
                        {
                            MemoryStream objMemoryStream = new MemoryStream();
                            intSize = objZipInputStream.Read(arrData, 0, arrData.Length);
                            while (intSize > 0)
                            {
                                objMemoryStream.Write(arrData, 0, intSize);
                                intSize = objZipInputStream.Read(arrData, 0, arrData.Length);
                            }
                            objMemoryStream.Seek(0, SeekOrigin.Begin);
                            strMessage += UploadLegacySkin(RootPath, SkinController.RootContainer, SkinName, (Stream)objMemoryStream);
                        }
                        else
                        {
                            strFileName = RootPath + SkinRoot + "\\" + SkinName + "\\" + objZipEntry.Name;
                            if (!Directory.Exists(Path.GetDirectoryName(strFileName)))
                            {
                                strMessage += FormatMessage(CREATE_DIR, Path.GetDirectoryName(strFileName), 2, false);
                                Directory.CreateDirectory(Path.GetDirectoryName(strFileName));
                            }
                            if (File.Exists(strFileName))
                            {
                                File.SetAttributes(strFileName, FileAttributes.Normal);
                                File.Delete(strFileName);
                            }
                            objFileStream = File.Create(strFileName);
                            strMessage   += FormatMessage(WRITE_FILE, Path.GetFileName(strFileName), 2, false);
                            intSize       = objZipInputStream.Read(arrData, 0, arrData.Length);
                            while (intSize > 0)
                            {
                                objFileStream.Write(arrData, 0, intSize);
                                intSize = objZipInputStream.Read(arrData, 0, arrData.Length);
                            }
                            objFileStream.Close();
                            switch (Path.GetExtension(strFileName))
                            {
                            case ".htm":
                            case ".html":
                            case ".ascx":
                            case ".css":
                                if (strFileName.ToLower().IndexOf(Globals.glbAboutPage.ToLower()) < 0)
                                {
                                    arrSkinFiles.Add(strFileName);
                                }
                                break;
                            }
                            break;
                        }
                    }
                    else
                    {
                        strMessage += string.Format(FILE_RESTICTED, objZipEntry.Name, Host.FileExtensions.ToString(), ",", ", *.").Replace("2", "true");
                    }
                }
                objZipEntry = objZipInputStream.GetNextEntry();
            }
            strMessage += FormatMessage(END_MESSAGE, SkinName + ".zip", 1, false);
            objZipInputStream.Close();
            UI.Skins.SkinFileProcessor NewSkin = new UI.Skins.SkinFileProcessor(RootPath, SkinRoot, SkinName);
            strMessage += NewSkin.ProcessList(arrSkinFiles, SkinParser.Portable);
            try
            {
                Services.Log.EventLog.LogInfo objEventLogInfo = new Services.Log.EventLog.LogInfo();
                objEventLogInfo.LogTypeKey = Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString();
                objEventLogInfo.LogProperties.Add(new CommonLibrary.Services.Log.EventLog.LogDetailInfo("Install Skin:", SkinName));
                Array arrMessage = strMessage.Split(new string[] { "<br>" }, StringSplitOptions.None);
                foreach (string strRow in arrMessage)
                {
                    objEventLogInfo.LogProperties.Add(new CommonLibrary.Services.Log.EventLog.LogDetailInfo("Info:", HtmlUtils.StripTags(strRow, true)));
                }
                Services.Log.EventLog.EventLogController objEventLog = new Services.Log.EventLog.EventLogController();
                objEventLog.AddLog(objEventLogInfo);
            }
            catch (Exception ex)
            {
                ex.ToString();
            }
            return(strMessage);
        }
Пример #3
0
        public override void Install()
        {
            bool bAdd = Null.NullBoolean;

            try
            {
                TempSkinPackage = SkinController.GetSkinPackage(SkinPackage.PortalID, SkinPackage.SkinName, SkinType);
                if (TempSkinPackage == null)
                {
                    bAdd = true;
                    SkinPackage.PackageID = Package.PackageID;
                }
                else
                {
                    SkinPackage.SkinPackageID = TempSkinPackage.SkinPackageID;
                    if (TempSkinPackage.PackageID != Package.PackageID)
                    {
                        Completed = false;
                        Log.AddFailure(Util.SKIN_Installed);
                        return;
                    }
                    else
                    {
                        SkinPackage.PackageID = TempSkinPackage.PackageID;
                    }
                }
                SkinPackage.SkinType = SkinType;
                if (bAdd)
                {
                    SkinPackage.SkinPackageID = SkinController.AddSkinPackage(SkinPackage);
                }
                else
                {
                    SkinController.UpdateSkinPackage(SkinPackage);
                }
                Log.AddInfo(string.Format(Util.SKIN_Registered, SkinPackage.SkinName));
                base.Install();
                if (SkinFiles.Count > 0)
                {
                    Log.StartJob(Util.SKIN_BeginProcessing);
                    string strMessage = Null.NullString;
                    UI.Skins.SkinFileProcessor NewSkin = new UI.Skins.SkinFileProcessor(RootPath, SkinRoot, SkinPackage.SkinName);
                    foreach (string skinFile in SkinFiles)
                    {
                        strMessage += NewSkin.ProcessFile(skinFile, SkinParser.Portable);
                        skinFile.Replace(Globals.HostMapPath + "\\", "[G]");
                        switch (Path.GetExtension(skinFile))
                        {
                        case ".htm":
                            SkinController.AddSkin(SkinPackage.SkinPackageID, skinFile.Replace("htm", "ascx"));
                            break;

                        case ".html":
                            SkinController.AddSkin(SkinPackage.SkinPackageID, skinFile.Replace("html", "ascx"));
                            break;

                        case ".ascx":
                            SkinController.AddSkin(SkinPackage.SkinPackageID, skinFile);
                            break;
                        }
                    }
                    Array arrMessage = strMessage.Split(new string[] { "<br>" }, StringSplitOptions.None);
                    foreach (string strRow in arrMessage)
                    {
                        Log.AddInfo(HtmlUtils.StripTags(strRow, true));
                    }
                    Log.EndJob(Util.SKIN_EndProcessing);
                }
                Completed = true;
            }
            catch (Exception ex)
            {
                Log.AddFailure(ex);
            }
        }
Пример #4
0
 public override void Install()
 {
     bool bAdd = Null.NullBoolean;
     try
     {
         TempSkinPackage = SkinController.GetSkinPackage(SkinPackage.PortalID, SkinPackage.SkinName, SkinType);
         if (TempSkinPackage == null)
         {
             bAdd = true;
             SkinPackage.PackageID = Package.PackageID;
         }
         else
         {
             SkinPackage.SkinPackageID = TempSkinPackage.SkinPackageID;
             if (TempSkinPackage.PackageID != Package.PackageID)
             {
                 Completed = false;
                 Log.AddFailure(Util.SKIN_Installed);
                 return;
             }
             else
             {
                 SkinPackage.PackageID = TempSkinPackage.PackageID;
             }
         }
         SkinPackage.SkinType = SkinType;
         if (bAdd)
         {
             SkinPackage.SkinPackageID = SkinController.AddSkinPackage(SkinPackage);
         }
         else
         {
             SkinController.UpdateSkinPackage(SkinPackage);
         }
         Log.AddInfo(string.Format(Util.SKIN_Registered, SkinPackage.SkinName));
         base.Install();
         if (SkinFiles.Count > 0)
         {
             Log.StartJob(Util.SKIN_BeginProcessing);
             string strMessage = Null.NullString;
             UI.Skins.SkinFileProcessor NewSkin = new UI.Skins.SkinFileProcessor(RootPath, SkinRoot, SkinPackage.SkinName);
             foreach (string skinFile in SkinFiles)
             {
                 strMessage += NewSkin.ProcessFile(skinFile, SkinParser.Portable);
                 skinFile.Replace(Globals.HostMapPath + "\\", "[G]");
                 switch (Path.GetExtension(skinFile))
                 {
                     case ".htm":
                         SkinController.AddSkin(SkinPackage.SkinPackageID, skinFile.Replace("htm", "ascx"));
                         break;
                     case ".html":
                         SkinController.AddSkin(SkinPackage.SkinPackageID, skinFile.Replace("html", "ascx"));
                         break;
                     case ".ascx":
                         SkinController.AddSkin(SkinPackage.SkinPackageID, skinFile);
                         break;
                 }
             }
             Array arrMessage = strMessage.Split(new string[] { "<br>" }, StringSplitOptions.None);
             foreach (string strRow in arrMessage)
             {
                 Log.AddInfo(HtmlUtils.StripTags(strRow, true));
             }
             Log.EndJob(Util.SKIN_EndProcessing);
         }
         Completed = true;
     }
     catch (Exception ex)
     {
         Log.AddFailure(ex);
     }
 }