예제 #1
0
		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);
		}
예제 #2
0
		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;
		}