public static void SaveToZipFile(string fileName) { ClientManager.InvalidateContent(); var folderName = AppDataFolderHelper.GetTempFolder(); if (!Directory.Exists(folderName)) Directory.CreateDirectory(folderName); if (File.Exists(fileName)) File.Delete(fileName); TempZipConfigurationItemsCollection = new ZipConfigurationItemsCollection(); AddConfiguration(folderName, "PlansConfiguration.xml", ClientManager.PlansConfiguration); AddConfiguration(folderName, "SystemConfiguration.xml", ClientManager.SystemConfiguration); AddConfiguration(folderName, "GKDeviceConfiguration.xml", GKManager.DeviceConfiguration); AddConfiguration(folderName, "LayoutsConfiguration.xml", ClientManager.LayoutsConfiguration); AddConfiguration(folderName, "ZipConfigurationItemsCollection.xml", TempZipConfigurationItemsCollection); var destinationImagesDirectory = AppDataFolderHelper.GetFolder(Path.Combine(folderName, "Content")); if (Directory.Exists(ServiceFactory.ContentService.ContentFolder)) { if (Directory.Exists(destinationImagesDirectory)) Directory.Delete(destinationImagesDirectory); if (!Directory.Exists(destinationImagesDirectory)) Directory.CreateDirectory(destinationImagesDirectory); var sourceImagesDirectoryInfo = new DirectoryInfo(ServiceFactory.ContentService.ContentFolder); foreach (var fileInfo in sourceImagesDirectoryInfo.GetFiles()) { fileInfo.CopyTo(Path.Combine(destinationImagesDirectory, fileInfo.Name)); } } var zipFile = new ZipFile(fileName); zipFile.AddDirectory(folderName); zipFile.Save(fileName); zipFile.Dispose(); if (Directory.Exists(folderName)) Directory.Delete(folderName, true); }
static string SaveConfigToFile(bool isLocal) { try { ClientManager.InvalidateContent(); var tempFolderName = ""; if (isLocal) { tempFolderName = AppDataFolderHelper.GetServerAppDataPath("Config"); } else { tempFolderName = AppDataFolderHelper.GetTempFolder(); } if (!Directory.Exists(tempFolderName)) Directory.CreateDirectory(tempFolderName); TempZipConfigurationItemsCollection = new ZipConfigurationItemsCollection(); if (ServiceFactory.SaveService.PlansChanged) AddConfiguration(tempFolderName, "PlansConfiguration.xml", ClientManager.PlansConfiguration); if (ServiceFactory.SaveService.SoundsChanged || ServiceFactory.SaveService.FilterChanged || ServiceFactory.SaveService.CamerasChanged || ServiceFactory.SaveService.EmailsChanged || ServiceFactory.SaveService.AutomationChanged) AddConfiguration(tempFolderName, "SystemConfiguration.xml", ClientManager.SystemConfiguration); if (ServiceFactory.SaveService.GKChanged) AddConfiguration(tempFolderName, "GKDeviceConfiguration.xml", GKManager.DeviceConfiguration); if (ServiceFactory.SaveService.GKLibraryChanged) AddConfiguration(tempFolderName, "GKDeviceLibraryConfiguration.xml", GKManager.DeviceLibraryConfiguration); if (ServiceFactory.SaveService.LayoutsChanged) AddConfiguration(tempFolderName, "LayoutsConfiguration.xml", ClientManager.LayoutsConfiguration); if (!isLocal) { AddConfiguration(tempFolderName, "ZipConfigurationItemsCollection.xml", TempZipConfigurationItemsCollection); } var destinationImagesDirectory = AppDataFolderHelper.GetFolder(Path.Combine(tempFolderName, "Content")); if (Directory.Exists(ServiceFactory.ContentService.ContentFolder)) { if (Directory.Exists(destinationImagesDirectory)) Directory.Delete(destinationImagesDirectory, true); if (!Directory.Exists(destinationImagesDirectory)) Directory.CreateDirectory(destinationImagesDirectory); var sourceImagesDirectoryInfo = new DirectoryInfo(ServiceFactory.ContentService.ContentFolder); foreach (var fileInfo in sourceImagesDirectoryInfo.GetFiles()) { fileInfo.CopyTo(Path.Combine(destinationImagesDirectory, fileInfo.Name)); } } if (!isLocal) { var tempFileName = AppDataFolderHelper.GetTempFileName(); if (File.Exists(tempFileName)) File.Delete(tempFileName); var zipFile = new ZipFile(tempFileName); zipFile.AddDirectory(tempFolderName); zipFile.Save(tempFileName); zipFile.Dispose(); if (Directory.Exists(tempFolderName)) Directory.Delete(tempFolderName, true); return tempFileName; } return null; } catch (Exception e) { Logger.Error(e, "ConfigManager.SaveAllConfigToFile"); } return null; }