private string SavePackage(NippsPackage nippsPackage, Site site) { NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); logger.Debug(nippsPackage); //decode zip-file byte[] packageZipBuffer = Convert.FromBase64String(nippsPackage.PackageZIP); //calculate physical-path of the / -default- app&virtualpath string basePath = site.Applications .Where(a => a.Path.Equals("/")) .Single() .VirtualDirectories .Where(v => v.Path.Equals("/")) .Single() .PhysicalPath; basePath += "\\"; basePath = ServerManagerHelper.PutEnvVarValue(basePath); logger.Debug(basePath); NippsZipHelper.Unzip(basePath, packageZipBuffer); return(basePath); }
private static string ZipFileName(NippsPackage np, bool timeBased = true) { StringBuilder sb = new StringBuilder(np.HostName.Replace(" ", "").Replace(":", "")); DateTime backupTime = DateTime.Now; if (!String.IsNullOrEmpty(np.SiteName)) { sb.AppendFormat("_{0}", np.SiteName.Replace(" ", "")); } if (!String.IsNullOrEmpty(np.ApplicationName)) { sb.AppendFormat("_{0}", np.ApplicationName.Replace(" ", "").Replace("/", "")); } if (timeBased) { sb.AppendFormat("_{0}", backupTime.ToString("yyyyMMdd_HHmm")); } sb.Append(".zip"); return(sb.ToString()); }
private static string ApplicationRestore(NippsPackage np) { string currentAppFolder = AppDomain.CurrentDomain.BaseDirectory; string applicationFolder = ServerManagerHelper.PutEnvVarValue( ServerManagerHelper.GetApplicationPhysicalPath( np.SiteName, np.ApplicationName )); string BackupTargetPath = GetBackupTargetPath(); string zipName = BackupTargetPath + np.PackageZIP; _Logger.Debug("{0}, {1}, {2}", currentAppFolder, applicationFolder, zipName); if (applicationFolder.StartsWith(currentAppFolder) || currentAppFolder.StartsWith(applicationFolder)) { return("[ErrorCode: RESTORE_COULD_NOT_EXTRACT_OVER_SELF]"); } applicationFolder = applicationFolder.EndsWith("\\") ? applicationFolder : applicationFolder + "\\"; NippsZipHelper.Unzip(applicationFolder, zipName); return(zipName.Substring(BackupTargetPath.Length)); }
private static string ApplicationBackup(NippsPackage np) { string applicationFolder = ServerManagerHelper.PutEnvVarValue( ServerManagerHelper.GetApplicationPhysicalPath( np.SiteName, np.ApplicationName )); string BackupTargetPath = GetBackupTargetPath(); string zipName = BackupTargetPath + (np.ApplicationName.Equals("/") ? "Site_" : "Appl_") + ZipFileName(np); _Logger.Debug("{0}, {1}", applicationFolder, zipName); NippsZipHelper.ZipFolder(applicationFolder, zipName); return(zipName.Substring(BackupTargetPath.Length)); }