Exemplo n.º 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;
		}
Exemplo n.º 2
0
		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;
		}
Exemplo n.º 3
0
		/// <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;
		}
Exemplo n.º 4
0
		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());
		}
Exemplo n.º 5
0
		void IVisitor.Visit(UIOptionRootType optionsRoot)
		{
			if (this._registryTarget == RegistryTargetEnum.HKLM || this._registryTarget == RegistryTargetEnum.Both)
			{
				_localRegistryTarget = RegistryTargetEnum.HKLM;
				VisitRootInternal(optionsRoot);
			}

			if (this._registryTarget == RegistryTargetEnum.HKCU || this._registryTarget == RegistryTargetEnum.Both)
			{
				_localRegistryTarget = RegistryTargetEnum.HKCU;
				VisitRootInternal(optionsRoot);
			}

			this._regFileWriter.Flush();
		}
Exemplo n.º 6
0
		void IVisitor.Visit(UIOptionRootType optionsRoot)
		{
			if (this._registryTarget == RegistryTargetEnum.HKLM || this._registryTarget == RegistryTargetEnum.Both)
			{
				this._localRegistryTarget = RegistryTargetEnum.HKLM;
				_admFileWriter.WriteHKLMHeader();
				VisitRootInternal(optionsRoot);
			}

			if (this._registryTarget == RegistryTargetEnum.HKCU || this._registryTarget == RegistryTargetEnum.Both)
			{
				this._localRegistryTarget = RegistryTargetEnum.HKCU;
				_admFileWriter.WriteHKCUHeader();
				VisitRootInternal(optionsRoot);
			}

			this._admFileWriter.Flush();
			//this._admFileWriter.Dispose();
		}
Exemplo n.º 7
0
		private void GenerateOptionGroupTemplates(ADMFileWriter admWriter, RegistryTargetEnum localRegTarget)
		{
			// Create Section : Document Management			
			admWriter.StartCategory("Document Management");

			// Create OptionGroup : Interwoven Servers
			GenerateInterwovenTemplate(admWriter, localRegTarget);

			// Create OptionGroup : SharepointSites
			GenerateSharepointTemplate(admWriter, localRegTarget);

			admWriter.EndCategory();
		}
Exemplo n.º 8
0
		private void GenerateSharepointTemplate(ADMFileWriter admWriter, RegistryTargetEnum localRegTarget)
		{
			admWriter.StartCategory("SharePointSiteCollection");

			for (int i = 1; i < 6; i++)
			{
				string instanceName = string.Format("Site{0}", i);
				WriteSharepointSiteInstance(admWriter, instanceName, localRegTarget);
			}

			admWriter.EndCategory();
		}
Exemplo n.º 9
0
		private void GenerateInterwovenTemplate(ADMFileWriter admWriter, RegistryTargetEnum localRegTarget)
		{
			admWriter.StartCategory("InterwovenServers");

			for (int i = 1; i < 6; i++)
			{
				string instanceName = string.Format("Server{0}", i);
				WriteInterwovenServerInstance(admWriter, instanceName, localRegTarget);
			}

			admWriter.EndCategory();
		}
Exemplo n.º 10
0
		private void WriteInterwovenServerInstance(ADMFileWriter admWriter, string instanceName, RegistryTargetEnum localRegTarget)
		{
			// Document Management\InterwovenServers\Server1
			WriteDocumentManagementInstance(admWriter, _interwovenServersOptionDefs, "InterwovenServers", instanceName, localRegTarget);
		}
Exemplo n.º 11
0
		private void WriteSharepointSiteInstance(ADMFileWriter admWriter, string instanceName, RegistryTargetEnum localRegTarget)
		{
			// Document Management\SharePointSiteCollection\Site1
			WriteDocumentManagementInstance(admWriter, _sharepointSiteCollectionOptionDefs, "SharePointSiteCollection", instanceName, localRegTarget);
		}
Exemplo n.º 12
0
		private void WriteDocumentManagementInstance(ADMFileWriter admWriter, List<OptionInfo> optionDefs, string subsectionName, string instanceName, RegistryTargetEnum localRegTarget)
		{
			// Document Management\<SubSectionName>\<InstanceName>
			string sectionName = string.Format("Document Management\\{0}\\{1}", subsectionName, instanceName);
			string keyname = Utils.GetOptionKeyName(sectionName, string.Empty, this._osPlatform, localRegTarget);

			admWriter.StartCategory(instanceName);

			foreach (OptionInfo optDef in optionDefs)
			{
				admWriter.StartPolicy(optDef.DisplayText);
				admWriter.StartKeyName(keyname);

				OptionDataTypeEnum optionDataType = (OptionDataTypeEnum) Enum.Parse(typeof(OptionDataTypeEnum), optDef.DataType);

				admWriter.AddPart(optDef.DisplayText, optionDataType, optDef.Name, string.Empty);
				admWriter.EndPolicy();
			}

			admWriter.EndCategory();
		}
Exemplo n.º 13
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;
		}
Exemplo n.º 14
0
		private void GenerateADMEntries(ADMFileWriter admWriter, RegistryTargetEnum localRegTarget)
		{
			var categoryGroups = from opt in _options
								 orderby opt.DisplayText
								 group opt by opt.CategoryRef into optGrp
								 orderby optGrp.Key
								 select new { CategoryName = optGrp.Key, Options = optGrp };


			admWriter.StartWorkshareCategory();

			foreach (var oCat in categoryGroups)
			{
				admWriter.StartCategory(oCat.CategoryName);
				var subCategoryGroups = from opt in oCat.Options
									 orderby opt.DisplayText
									 group opt by opt.CategoryRef into optGrp
									 orderby optGrp.Key
									 select new { SubCategoryName = optGrp.Key, Options = optGrp };

				foreach (var oSubCat in subCategoryGroups)
				{
					admWriter.StartCategory(oSubCat.SubCategoryName);
					foreach (var opt in oSubCat.Options)
					{
						if ((localRegTarget == RegistryTargetEnum.HKLM && opt.ReadLocalMachine == "false") ||
							 (localRegTarget == RegistryTargetEnum.HKCU && opt.ReadCurrentUser == "false"))
						{
							continue;
						}

						admWriter.StartPolicy(opt.DisplayText);
						admWriter.StartKeyName(Utils.GetOptionKeyName(opt.CategoryRef, opt.SubCategoryRef, this._osPlatform, localRegTarget));

						OptionDataTypeEnum optionDataType = (OptionDataTypeEnum) Enum.Parse(typeof(OptionDataTypeEnum), opt.DataType);

						admWriter.AddPart(opt.DisplayText, optionDataType, opt.Name, opt.DefaultValue, opt.ValueRange);
						admWriter.EndPolicy();
					}
					admWriter.EndCategory();	//	SubCategory
				}

				if (localRegTarget == RegistryTargetEnum.HKLM)
				{
					var hklmOptions = from opt in oCat.Options
					                  where (opt.ReadLocalMachine != "false") && (opt.ReadCurrentUser == "true")
									  select opt;

					admWriter.StartCategory("IgnoredUserOverrides");
					foreach (var opt in hklmOptions)
					{
						admWriter.StartPolicy(opt.DisplayText);
						admWriter.StartKeyName(Utils.GetIgnoreHKCUValueKeyName(this._osPlatform));
						admWriter.AddPart(opt.DisplayText, OptionDataTypeEnum.Boolean, opt.Name, "false");
						admWriter.EndPolicy();
					}
					admWriter.EndCategory(); // IgnoredUserOverrides
				}
				admWriter.EndCategory();	//	Category
			}

			GenerateOptionGroupTemplates(admWriter, localRegTarget);

			admWriter.EndWorkshareCategory();
		}
Exemplo n.º 15
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;
		}
Exemplo n.º 16
0
		public ADMConverter(string sourceXMLPath, string destinationADMPath, RegistryTargetEnum target)
		{
			_sourceXMLPath = sourceXMLPath;
			_destinationADMPath = destinationADMPath;
			_registryTarget = target;
		}
Exemplo n.º 17
0
		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;
		}
Exemplo n.º 18
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;
		}