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; }
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]); }
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; }
/// <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; }
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()); }
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; }
public static string GetIgnoreHKCUValueKeyName(OSPlatformEnum osPlatform = OSPlatformEnum.x86) { string rootkey = string.Format("{0}\\IgnoredUserOverrides", GetOptionLocation(osPlatform)); return rootkey; }
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; }
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; }
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; }
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; }