/// <summary> /// /// </summary> /// <returns></returns> public BizTalkBaseObjectCollectionEx GetRuleSets() { TraceManager.SmartTrace.TraceIn(); BizTalkBaseObjectCollectionEx ruleSets = new BizTalkBaseObjectCollectionEx(); try { RuleSetDeploymentDriver rsdd = new RuleSetDeploymentDriver(this.server, this.database); RuleStore rs = rsdd.GetRuleStore(); RuleSetInfoCollection rsic = rs.GetRuleSets(Microsoft.RuleEngine.RuleStore.Filter.All); foreach (RuleSetInfo rsi in rsic) { RuleArtifact ra = new RuleArtifact(); ra.Name = rsi.Name; ra.MajorVersion = rsi.MajorRevision; ra.MinorVersion = rsi.MinorRevision; ra.QualifiedName = ra.Name + "," + ra.MajorVersion + "," + ra.MinorVersion; ruleSets.Add(ra); } } catch (Exception ex) { TraceManager.SmartTrace.TraceError(ex); } TraceManager.SmartTrace.TraceOut(); return(ruleSets); }
/// <summary> /// /// </summary> /// <param name="filterXml"></param> /// <returns></returns> internal static BizTalkBaseObjectCollectionEx CreateFilterGroups(string filterXml) { BizTalkBaseObjectCollectionEx groups = new BizTalkBaseObjectCollectionEx(); XmlDocument filterDoc = new XmlDocument(); filterDoc.LoadXml(filterXml); foreach (XmlNode groupNode in filterDoc.SelectNodes("./Filter/Group")) { FilterGroup fg = new FilterGroup(); foreach (XmlNode statementNode in groupNode.SelectNodes("./Statement")) { Filter f = new Filter(); f.Property = statementNode.Attributes.GetNamedItem("Property").Value.ToString(); f.FilterOperator = (FilterOperator)Enum.Parse(typeof(FilterOperator), statementNode.Attributes.GetNamedItem("Operator").Value.ToString()); XmlNode valueNode = statementNode.Attributes.GetNamedItem("Value"); if (valueNode != null) { f.Value = valueNode.Value.ToString(); } fg.Filter.Add(f); } groups.Add(fg); } return(groups); }
/// <summary> /// /// </summary> /// <param name="filterXml"></param> /// <returns></returns> internal static BizTalkBaseObjectCollectionEx CreateFilterGroups(string filterXml) { BizTalkBaseObjectCollectionEx groups = new BizTalkBaseObjectCollectionEx(); XmlDocument filterDoc = new XmlDocument(); //CD 20140407 try { filterDoc.LoadXml(filterXml); } catch (Exception ex) { throw new ApplicationException(string.Format( @"The Filter XML is malformed (quite often caused by the binding being reformatted and putting whitespace in front of the filter XML): XML='{0}' ", filterXml)); } foreach (XmlNode groupNode in filterDoc.SelectNodes("./Filter/Group")) { FilterGroup fg = new FilterGroup(); // Added so that it actually adds it to the list - CD 20140408 fg.Name = "Filter Group"; foreach (XmlNode statementNode in groupNode.SelectNodes("./Statement")) { Filter f = new Filter(); f.Property = statementNode.Attributes.GetNamedItem("Property").Value.ToString(); f.FilterOperator = (FilterOperator)Enum.Parse(typeof(FilterOperator), statementNode.Attributes.GetNamedItem("Operator").Value.ToString()); // Added so that it actually adds it to the list - CD 20140408 f.Name = "Filter"; XmlNode valueNode = statementNode.Attributes.GetNamedItem("Value"); if (valueNode != null) { f.Value = valueNode.Value.ToString(); } // Changed to ignore duplicate name - CD 20140408 fg.Filter.Add(f, true); } // Changed to ignore duplicate name - CD 20140408 groups.Add(fg, true); } return(groups); }