public static UriDescriptor Parse(string uri, Exchange exchange = null) { var parts = new UriDescriptor(); if (exchange != null) { uri = SimpleExpression.ResolveSpecifiedUriPart(uri, exchange); } if (string.IsNullOrEmpty(uri)) { throw new SynapseException("uri data error: cannot be empty"); } var mainParts = uri.Split(new[] { '?' }, 2); var uriPrimaryParts = mainParts[0].Split(new[] { ':' }, 2); parts.ComponentName = uriPrimaryParts.Length >= 1 ? uriPrimaryParts[0] : ""; parts.ComponentPath = uriPrimaryParts.Length >= 2 ? uriPrimaryParts[1] : ""; parts.ComponentQueryPath = mainParts.Length > 1 ? mainParts[1] : ""; parts.FullUri = uri; return(parts); }
public static void Execute(XElement loopTag, Exchange exchange, Route route) { var expressionTag = loopTag.Elements().FirstOrDefault(); if (expressionTag == null || (expressionTag.Name != "count")) { return; } var xpression = expressionTag.Value; var count = SimpleExpression.ResolveSpecifiedUriPart(xpression, exchange); var mCount = Convert.ToInt32(count); for (var i = 0; i < mCount; i++) { var data = loopTag.Elements().Skip(1); foreach (var dataItem in data) { try { RouteStep.ExecuteRouteStep(dataItem, route, exchange); } catch (Exception exception) { } } } }
public static void Execute(string uri, Exchange exchange, Route route) { uri = SimpleExpression.ResolveSpecifiedUriPart(uri, exchange); var leafNodeParts = UriDescriptor.Parse(uri, exchange); EndpointBuilder.HandleFrom(leafNodeParts, route); }
private static void HandleSetHeader(XElement step, Route routeObj, Exchange exchange) { var headerName = step.Attribute(TagConstant.Name).Value; var value = step.Attribute(TagConstant.Value).Value; value = SimpleExpression.ResolveSpecifiedUriPart(value, exchange); exchange.InMessage.SetHeader(headerName, value); }
private static void HandleProperty(XElement step, Route routeObj, Exchange exchange) { var propertyName = step.Attribute(TagConstant.Name).Value; var value = step.Attribute(TagConstant.Value).Value; value = SimpleExpression.ResolveSpecifiedUriPart(value, exchange); exchange.SetProperty(propertyName, value); }
private static List <string> SplitSimple(string value, Exchange exchange) { var listOfParts = new List <String>(); var simpleData = SimpleExpression.ResolveSpecifiedUriPart(value, exchange); return(listOfParts); }
public T GetUriProperty <T>(string key, T defaultResult = default(T), Exchange exchange = null) { var data = GetUriProperty(key); if (string.IsNullOrEmpty(data)) { return(defaultResult); } try { if (exchange != null) { data = SimpleExpression.ResolveSpecifiedUriPart(data, exchange); } var foo = TypeDescriptor.GetConverter(typeof(T)); return((T)(foo.ConvertFromInvariantString(data))); } catch { return(defaultResult); } }
private static void ProcessSimple(XElement transformXml, Route routeObj, Exchange exchange) { var newBody = SimpleExpression.ResolveSpecifiedUriPart(transformXml.Value, exchange); exchange.InMessage.Body = newBody; }