Пример #1
0
        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");
            }
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }