public static XElement Serialize(this RuleAction action) { if (action is SqlRuleAction sqlRuleAction) { XElement parameterElement = new XElement( XName.Get( "Parameters", AdministrationClientConstants.ServiceBusNamespace)); foreach (var param in sqlRuleAction.Parameters) { parameterElement.Add( new XElement(XName.Get("KeyValueOfstringanyType", AdministrationClientConstants.ServiceBusNamespace), new XElement(XName.Get("Key", AdministrationClientConstants.ServiceBusNamespace), param.Key), XmlObjectConvertor.SerializeObject(param.Value))); } return(new XElement( XName.Get("Action", AdministrationClientConstants.ServiceBusNamespace), new XAttribute(XName.Get("type", AdministrationClientConstants.XmlSchemaInstanceNamespace), nameof(SqlRuleAction)), new XElement(XName.Get("SqlExpression", AdministrationClientConstants.ServiceBusNamespace), sqlRuleAction.SqlExpression), parameterElement)); } else { throw new NotImplementedException($"Rule action of type {action.GetType().Name} is not implemented"); } }
public static XElement Serialize(this SqlRuleFilter filter, string filterName) { XElement parameterElement = null; if (filter.Parameters != null) { parameterElement = new XElement(XName.Get("Parameters", AdministrationClientConstants.ServiceBusNamespace)); foreach (var param in filter.Parameters) { parameterElement.Add( new XElement(XName.Get("KeyValueOfstringanyType", AdministrationClientConstants.ServiceBusNamespace), new XElement(XName.Get("Key", AdministrationClientConstants.ServiceBusNamespace), param.Key), XmlObjectConvertor.SerializeObject(param.Value))); } } return(new XElement( XName.Get("Filter", AdministrationClientConstants.ServiceBusNamespace), new XAttribute(XName.Get("type", AdministrationClientConstants.XmlSchemaInstanceNamespace), filterName), new XElement(XName.Get("SqlExpression", AdministrationClientConstants.ServiceBusNamespace), filter.SqlExpression), parameterElement)); }
public static XElement Serialize(this CorrelationRuleFilter filter, string filterName) { XElement parameterElement = new XElement( XName.Get( "Properties", AdministrationClientConstants.ServiceBusNamespace)); foreach (KeyValuePair <string, object> param in filter.ApplicationProperties) { parameterElement.Add( new XElement(XName.Get("KeyValueOfstringanyType", AdministrationClientConstants.ServiceBusNamespace), new XElement(XName.Get("Key", AdministrationClientConstants.ServiceBusNamespace), param.Key), XmlObjectConvertor.SerializeObject(param.Value))); } return(new XElement( XName.Get("Filter", AdministrationClientConstants.ServiceBusNamespace), new XAttribute(XName.Get("type", AdministrationClientConstants.XmlSchemaInstanceNamespace), filterName), string.IsNullOrWhiteSpace(filter.CorrelationId) ? null : new XElement(XName.Get("CorrelationId", AdministrationClientConstants.ServiceBusNamespace), filter.CorrelationId), string.IsNullOrWhiteSpace(filter.MessageId) ? null : new XElement(XName.Get("MessageId", AdministrationClientConstants.ServiceBusNamespace), filter.MessageId), string.IsNullOrWhiteSpace(filter.To) ? null : new XElement(XName.Get("To", AdministrationClientConstants.ServiceBusNamespace), filter.To), string.IsNullOrWhiteSpace(filter.ReplyTo) ? null : new XElement(XName.Get("ReplyTo", AdministrationClientConstants.ServiceBusNamespace), filter.ReplyTo), string.IsNullOrWhiteSpace(filter.Subject) ? null : new XElement(XName.Get("Label", AdministrationClientConstants.ServiceBusNamespace), filter.Subject), string.IsNullOrWhiteSpace(filter.SessionId) ? null : new XElement(XName.Get("SessionId", AdministrationClientConstants.ServiceBusNamespace), filter.SessionId), string.IsNullOrWhiteSpace(filter.ReplyToSessionId) ? null : new XElement(XName.Get("ReplyToSessionId", AdministrationClientConstants.ServiceBusNamespace), filter.ReplyToSessionId), string.IsNullOrWhiteSpace(filter.ContentType) ? null : new XElement(XName.Get("ContentType", AdministrationClientConstants.ServiceBusNamespace), filter.ContentType), parameterElement)); }