コード例 #1
0
		public static bool SaveOptions(OptionsFileType fileType, string filePath, MainViewModel viewmodel, OSPlatformEnum osPlatform, RegistryTargetEnum registryTarget, DeploymentTypeEnum deploymentType)
		{
			bool result = false;
			switch (fileType)
			{
			case OptionsFileType.ADM:
				if (deploymentType == DeploymentTypeEnum.New)
				{
					result = SaveCleanADMFile(filePath, viewmodel, osPlatform, registryTarget);
				}
				else
				{
					result = SaveADMFile(filePath, viewmodel, osPlatform, registryTarget);
				}
				break;
			case OptionsFileType.REG:
				if (deploymentType == DeploymentTypeEnum.New)
				{
					result = SaveCleanREGFile(filePath, viewmodel, osPlatform, registryTarget);
				}
				else
				{
					result = SaveREGFile(filePath, viewmodel, osPlatform, registryTarget);
				}
				break;
			case OptionsFileType.WSO:
				result = SaveWSOFile(filePath, viewmodel);
				break;
			}
			return result;
		}
コード例 #2
0
 public OSPlatform FromOsPlatformEnum(OSPlatformEnum platformEnum)
 {
     return(new Dictionary <OSPlatformEnum, OSPlatform>()
     {
         { OSPlatformEnum.MAC, OSPlatform.OSX },
         { OSPlatformEnum.LINUX, OSPlatform.Linux },
         { OSPlatformEnum.WINDOWS, OSPlatform.Windows },
         { OSPlatformEnum.FREEBSD, OSPlatform.FreeBSD }
     }[platformEnum]);
 }
コード例 #3
0
ファイル: REGVisitor.cs プロジェクト: killbug2004/WSProf
		public REGVisitor(
			string regFilePath,
			OSPlatformEnum osPlatform = OSPlatformEnum.x86,
			RegistryTargetEnum registryTarget = RegistryTargetEnum.HKCU,
			bool appendFile = true)
		{
			this._regFileWriter = new REGFileWriter(regFilePath, appendFile);
			this._osPlatform = osPlatform;
			this._registryTarget = registryTarget;
		}
コード例 #4
0
ファイル: ADMVisitor.cs プロジェクト: killbug2004/WSProf
		/// <summary>
		/// Defaults are: OS Platform x86; Registry target HKCU; Append to file.
		/// </summary>
		public ADMVisitor(
			string admFilePath,
			OSPlatformEnum osPlatform = OSPlatformEnum.x86,
			RegistryTargetEnum registryTarget = RegistryTargetEnum.HKCU,
			bool appendFile = true, Predicate<string> namePredicate = null)
		{
			_namePred = namePredicate;
			this._admFileWriter = new ADMFileWriter(admFilePath, appendFile);
			this._osPlatform = osPlatform;
			this._registryTarget = registryTarget;
		}
コード例 #5
0
ファイル: Utils.cs プロジェクト: killbug2004/WSProf
		private static string GetOptionLocation(OSPlatformEnum osPlatform = OSPlatformEnum.x86, RegistryTargetEnum registryTarget = RegistryTargetEnum.HKLM)
		{
			string optionLocation;
			if (osPlatform == OSPlatformEnum.x86 || registryTarget == RegistryTargetEnum.HKCU)
			{
				optionLocation = @"SOFTWARE\Workshare\Options";
			}
			else
			{
				optionLocation = @"SOFTWARE\Wow6432Node\Workshare\Options";
			}

			return string.Format("{0}\\{1}", optionLocation, GetFileVersionInfo());
		}
コード例 #6
0
ファイル: ADMConverter.cs プロジェクト: killbug2004/WSProf
		private bool WriteADMFiles()
		{			
			string admFileName		= System.IO.Path.GetFileNameWithoutExtension(_destinationADMPath);
			string admFileExtension = System.IO.Path.GetExtension(_destinationADMPath);
			string directory		= System.IO.Path.GetDirectoryName(_destinationADMPath);

			string admFileName_x86 = string.Format("{0}_x86{1}", admFileName, admFileExtension);
			string admFileName_x64 = string.Format("{0}_x64{1}", admFileName, admFileExtension);

			admFileName_x86 = System.IO.Path.Combine(directory, admFileName_x86);
			admFileName_x64 = System.IO.Path.Combine(directory, admFileName_x64);

			this._osPlatform = OSPlatformEnum.x86;
			bool retval = GenerateADMFile(admFileName_x86);

			this._osPlatform = OSPlatformEnum.x64;
			retval &= GenerateADMFile(admFileName_x64);

			return retval;
		}
コード例 #7
0
ファイル: Utils.cs プロジェクト: killbug2004/WSProf
		public static string GetIgnoreHKCUValueKeyName(OSPlatformEnum osPlatform = OSPlatformEnum.x86)
		{
			string rootkey = string.Format("{0}\\IgnoredUserOverrides", GetOptionLocation(osPlatform));

			return rootkey;
		}
コード例 #8
0
ファイル: Utils.cs プロジェクト: killbug2004/WSProf
		public static string GetOptionKeyName(string categoryName, string subCategoryName, OSPlatformEnum osPlatform = OSPlatformEnum.x86, RegistryTargetEnum registryTarget = RegistryTargetEnum.HKLM)
		{
			string rootkey = string.Format("{0}\\{1}\\{2}", GetOptionLocation(osPlatform, registryTarget), categoryName, subCategoryName);

			return rootkey;
		}
コード例 #9
0
		private static bool SaveCleanREGFile(string filePath, MainViewModel viewModel, OSPlatformEnum osPlatform = OSPlatformEnum.x86, RegistryTargetEnum registryTarget = RegistryTargetEnum.HKCU)
		{
			UIOptionRootType defaultXMLOptionRoot = OptionMapper.DefaultXmlToOptionModel();
			UIOptionRootType dirtyOptionRoot = OptionMapper.DefaultXmlToOptionModel();
			OptionMapper.UIModelToOptionModel(dirtyOptionRoot, viewModel, true, false);

			MakeOptionRootsMutuallyExclusive(defaultXMLOptionRoot, dirtyOptionRoot);

			// Save UIOptionRootType

			using (IVisitor dirtyVisitor = new REGVisitor(filePath, osPlatform, registryTarget, false))
			{
				dirtyOptionRoot.Accept(dirtyVisitor);
			}

			using (IVisitor cleanVisitor = new CleanREGVisitor(filePath, osPlatform, registryTarget, true))
			{
				defaultXMLOptionRoot.Accept(cleanVisitor);
			}

			return true;
		}
コード例 #10
0
		private static bool SaveREGFile(string filePath, MainViewModel viewmodel, OSPlatformEnum osPlatform = OSPlatformEnum.x86, RegistryTargetEnum registryTarget = RegistryTargetEnum.HKCU)
		{
			// Get UIOptionRootType from View Model
			UIOptionRootType rootOptions = OptionMapper.DefaultXmlToOptionModel();
			OptionMapper.UIModelToOptionModel(rootOptions, viewmodel, true, true);
			
			// Save UIOptionRootType

			using (IVisitor visitor = new REGVisitor(filePath, osPlatform, registryTarget, false))
			{
				rootOptions.Accept(visitor);
			}

			return true;
		}
コード例 #11
0
		private static bool SaveCleanADMFile(string filePath, MainViewModel viewmodel, OSPlatformEnum osPlatform = OSPlatformEnum.x86, RegistryTargetEnum registryTarget = RegistryTargetEnum.HKCU)
		{
			// Get UIOptionRootType from View Model
			UIOptionRootType defaultXMLOptionRoot = OptionMapper.DefaultXmlToOptionModel();
			UIOptionRootType rootOptions = OptionMapper.DefaultXmlToOptionModel();
			OptionMapper.UIModelToOptionModel(rootOptions, viewmodel, true, false);

			MakeOptionRootsMutuallyExclusive(defaultXMLOptionRoot, rootOptions);

			// Save UIOptionRootType

			using (IVisitor dirtyVisitor = new ADMVisitor(filePath, osPlatform, registryTarget, false, (x) => true))
			{
				rootOptions.Accept(dirtyVisitor);
			}

			using (IVisitor visitor = new ADMVisitor(filePath, osPlatform, registryTarget, true, (x) => (x != "Internal" && x != "InstanceTemplate")))
			{
				defaultXMLOptionRoot.Accept(visitor);
			}

			return true;
		}