Example #1
0
		void IVisitorWithContext.Visit(UIOptionSubCategoryType subCategory, object context)
		{
			XmlNode subCategoryNode = (XmlNode) context;
			subCategory.Name = subCategoryNode.Name;
			subCategory.DisplayText = subCategoryNode.Attributes["DisplayText"].Value;			
			
			foreach (XmlNode node in subCategoryNode.ChildNodes)
			{
				// group nodes can only have one child if the child is just the template default, but the child will not be text
				// for all other nodes the single child will be text
				if (node.ChildNodes.Count > 1 || node.ChildNodes.Count == 1 && !(node.FirstChild is XmlText))	// Group Option Type
				{
					UIOptionGroupType groupOption = new UIOptionGroupType();
					subCategory.Options.Add(groupOption);

					groupOption.CategoryRef = subCategoryNode.ParentNode.Name;
					groupOption.SubCategoryRef = subCategoryNode.Name;
					groupOption.Accept(this, node);
				}
				else
				{
					UIOptionType option = new UIOptionType();					
					subCategory.Options.Add(option);

					option.CategoryRef = subCategoryNode.ParentNode.Name;
					option.SubCategoryRef = subCategoryNode.Name;
					option.Accept(this, node);
				}
			}
		}
Example #2
0
		void IVisitor.Visit(UIOptionGroupType optionGroup)
		{
			using (OptionGroupInstanceReadVisitor ogivisitor = new OptionGroupInstanceReadVisitor(false))
			{
				optionGroup.Accept(ogivisitor);
			}
		}
Example #3
0
 void IVisitor.Visit(UIOptionGroupType optionGroup)
 {
     throw new NotImplementedException();
 }
		private void AddNewGroupInstance(UIOptionGroupType grpType, IEnumerable<OptionGroupInstance> vwInsts, out bool bAnyAdded)
        {
            Dictionary<string, OptionInfo> groupDefs = OptionApi.GetGroupDefinitions(grpType.Name);

			// Initially false until something is added.
			bAnyAdded = false;

			foreach (OptionGroupInstance vwInst in vwInsts)
            {
				if (_bDeploymentIconOnly && !vwInst.Deploy)
				{
					// The user has chosen "Deployment icons only" but this option
					// doesn't have a deployment icon.
					continue;
				}

				// By arriving at this point we know that something has been added.
				bAnyAdded = true;

                var groupInstType = new UIOptionGroupInstanceType()
                {
                    Name = vwInst.Name,
                    DisplayText = vwInst.DisplayName,
					Deploy = vwInst.Deploy
                };

                List<OptionDefType> optDefs = new List<OptionDefType>();
                foreach (IOption opt in vwInst.SubOptions)
                {
                    var optdef = new OptionDefType()
                    {
                        Name = opt.Name,
                        DisplayText = opt.DisplayName,
                    };


                    optdef.DataType = ConvertDataType(opt.DataType);

                    if (optdef.Name == "Password")
                    {
                        optdef.Encrypted = true;
						optdef.EncryptedSpecified = true;
						optdef.DataType = OptionDataTypeEnum.String;
						optdef.DataTypeSpecified = true;
					}

                    optdef.Text = new string[] { opt.StringValue };

                    OptionInfo optInfo = (from oi in groupDefs.Values
                                          where oi.Name.Equals(optdef.Name, StringComparison.InvariantCultureIgnoreCase)
                                          select oi).FirstOrDefault();
                    if (optInfo != null)
                    {
                        optDefs.Add(optdef);
                    }
                }
                groupInstType.OptionDef = optDefs.ToArray();
                grpType.OptionGroupInstances.Add(groupInstType);
            }
        }
        public void Visit(UIOptionGroupType optionGroup, object context)
		{
        }
        public void Visit(UIOptionGroupType optionGroup)
        {
            if (_bAdmin)
            {
                return;
            }
            /// Go through registry and construct group instances
            ReadOnlyCollection<string> groupInstArray = OptionApi.GetOptionGroups(optionGroup.Name);
     
            Dictionary<string, OptionInfo> groupDefs = OptionApi.GetGroupDefinitions(optionGroup.Name);
            foreach (string groupInstName in groupInstArray)
            {   
                Dictionary<string, OptionInfo> groupInstData = OptionApi.GetOptionGroupData(optionGroup.Name, groupInstName);

                UIOptionGroupInstanceType groupInst = new UIOptionGroupInstanceType() { Name = groupInstName };
                List<OptionDefType> deftypes = new List<OptionDefType>();

                foreach (OptionInfo optinfo in groupDefs.Values)
                {
                    var op = new OptionDefType
                    {
                        Name = optinfo.Name,                        
                        DisplayText = optinfo.DisplayText,
                    };

                    op.IsPrimaryKey = Boolean.Parse(optinfo.GetAttribute("IsPrimaryKey"));

                    OptionDataTypeEnum dt;

                    if (Enum.TryParse(optinfo.DataType, true, out dt))
                    {
                        op.DataType = dt;
                        op.DataTypeSpecified = true;    /// This is required to be set :(, as we are checking this attributes :(, don't like it.
                    }

                    if (op.Name == "Password")
                    {
						op = InitialiseEncryptedOptionPrivately(op, optionGroup.Name, groupInstName);
                    }
                    else
                    {
                        OptionInfo datainfo;
                        if (groupInstData.TryGetValue(optinfo.Name, out datainfo))
                        {
                            op.Text = new string[] { datainfo.Value };
                            op.IsOverrideAllowed = datainfo.CanOverride;
                        }
                        else
                        {
                            op.Text = new string[] { optinfo.Value };   // default value
                            op.IsOverrideAllowed = optinfo.CanOverride;
                        }
                    }

                    deftypes.Add(op);
                }

                groupInst.OptionDef = deftypes.ToArray();
                optionGroup.OptionGroupInstances.Add(groupInst);
            }
        }
		void IVisitorWithContext.Visit(UIOptionSubCategoryType subCategory, object context)
		{
			XmlNode subCategoryNode = (XmlNode) context;
			XmlNode categoryNode = subCategoryNode.ParentNode;
			XmlNode rootNode = categoryNode.ParentNode;

			subCategory.Name = subCategoryNode.Attributes["ID"].Value;
			subCategory.DisplayText = subCategoryNode.Attributes["DisplayText"].Value;

			string xpath = "ws:Option[@SubCategoryRef='" + subCategory.Name + "']";
			XmlNamespaceManager nsmgr = new XmlNamespaceManager(rootNode.OwnerDocument.NameTable);
			nsmgr.AddNamespace("ws", "http://schemas.workshare.com/Workshare.OptionMap.xsd");
			XmlNodeList options = rootNode.SelectNodes(xpath, nsmgr);

			foreach (XmlNode node in options)
			{
				UIOptionType option = new UIOptionType();
				subCategory.Options.Add(option);
				option.Accept(this, node);
			}

			xpath = "ws:OptionGroupType[@SubCategoryRef='" + subCategory.Name + "']";
			options = rootNode.SelectNodes(xpath, nsmgr);

			foreach (XmlNode node in options)
			{
				UIOptionGroupType option = new UIOptionGroupType();
				subCategory.Options.Add(option);
				option.Accept(this, node);
			}
		}
		void IVisitorWithContext.Visit(UIOptionGroupType optionGroup, object context)
		{
			XmlNode optionGroupNode = (XmlNode) context;

			VisitOptionBaseType(optionGroup, context);

			//Default XML just contains 1 child node for option Groups. Create a dummy instance and put the option group defs in it to give the user a template of what it will look like

			UIOptionGroupInstanceType instance = new UIOptionGroupInstanceType();
			instance.Name = "InstanceTemplate";
			optionGroup.OptionGroupInstances.Add(instance);
			instance.Accept(this, optionGroupNode);
		}
Example #9
0
		void IVisitor.Visit(UIOptionGroupType optionGroup)
		{
			try
			{
				// Create option group
				_admFileWriter.StartCategory(optionGroup.DisplayText);

				this._optionGroupType = optionGroup.Name;
				this._optionGroupLocation = string.Format("{0}\\{1}", Utils.GetOptionKeyName(optionGroup.CategoryRef, optionGroup.SubCategoryRef, this._osPlatform, this._localRegistryTarget), optionGroup.Name);
				foreach (UIOptionGroupInstanceType instance in optionGroup.OptionGroupInstances)
				{
					if (_namePred != null && !_namePred(instance.Name))
						continue;

					_optionGroupInstance = instance.Name;
					instance.Accept(this);
				}

				_admFileWriter.EndCategory();
			}
			finally
			{
				_optionGroupType = String.Empty;
				_optionGroupInstance = string.Empty;
			}
		}
Example #10
0
		void IVisitorWithContext.Visit(UIOptionGroupType optionGroup, object context)
		{
			XmlNode optionGroupNode = (XmlNode) context;

			VisitOptionBaseType(optionGroup, context);

			foreach (XmlNode node in optionGroupNode.ChildNodes)
			{
				UIOptionGroupInstanceType instance = new UIOptionGroupInstanceType();
				optionGroup.OptionGroupInstances.Add(instance);
				instance.Accept(this, node);
			}			
		}
Example #11
0
		void IVisitor.Visit(UIOptionGroupType optionGroup)
		{
			try
			{
				_optionGroupType = optionGroup.Name;
				_optionLocation = GetOptionKeyName(optionGroup.CategoryRef, optionGroup.SubCategoryRef);
				_optionLocation += "\\" + optionGroup.Name;

				foreach (UIOptionGroupInstanceType instance in optionGroup.OptionGroupInstances)
				{
					_optionGroupInstance = instance.Name;
					instance.Accept(this);
				}
			}
			finally
			{
				_optionGroupType = String.Empty;
				_optionGroupInstance = string.Empty;
			}
		}
Example #12
0
		void IVisitorWithContext.Visit(UIOptionGroupType optionGroup, object context)
		{
			try
			{
				_optionGroupType = optionGroup.Name;

				XmlNode subCategoryNode = (XmlNode) context;
				XmlNode optionGroupNode = _xmlDoc.CreateNode(XmlNodeType.Element, optionGroup.Name, this._namespaceURI);

				foreach (UIOptionGroupInstanceType instance in optionGroup.OptionGroupInstances)
				{
					_optionGroupInstance = instance.Name;
					instance.Accept(this, optionGroupNode);
				}

				VisitOptionBaseType(optionGroup, optionGroupNode);

				subCategoryNode.AppendChild(optionGroupNode);
			}
			finally
			{
				_optionGroupType = String.Empty;
				_optionGroupInstance = String.Empty;
			}
		}