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); } } }
void IVisitor.Visit(UIOptionGroupType optionGroup) { using (OptionGroupInstanceReadVisitor ogivisitor = new OptionGroupInstanceReadVisitor(false)) { optionGroup.Accept(ogivisitor); } }
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); }
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; } }
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); } }
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; } }
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; } }