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; }
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); }
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); } }