public override Exchange Execute(Exchange exchange) { Camel.TryLog(exchange, "consumer", _sedaProcessor.UriInformation.ComponentName); _sedaProcessor.Process(exchange); return exchange; }
public static bool Evaluate(Exchange exchange, string expression) { try { var expressionParts = expression.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries); var operatorType = expressionParts[1]; var lhs = expressionParts[0]; var rhs = expressionParts[2]; var lhsResult = ResolveSpecifiedUriPart(lhs, exchange); var rhsResult = ResolveSpecifiedUriPart(rhs, exchange); switch (operatorType) { case "=": return lhsResult == rhsResult; case "!=": return lhsResult != rhsResult; case "<=": return lhsResult != rhsResult; case ">=": return lhsResult != rhsResult; } } catch (Exception exception) { } return false; }
public override void Process(Exchange exchange) { var xE = XElement.Parse(exchange.InMessage.Body.ToString().Replace("\\r\\n", "")); var xElement = xE.Element("claim-type"); if (xElement != null) { exchange.InMessage.SetHeader("response-message", "ola .. in tcp/ip test processor"); var ans = DateTime.Now.Second % 3; var xml = new XElement("payments", new XElement("code", ans != 0 ? "00" : "91"), new XElement("information", new XElement("payment", new XAttribute("ref", "12345")), new XElement("payment", new XAttribute("ref", "34343")), new XElement("payment", new XAttribute("ref", "33411")), new XElement("payment", new XAttribute("ref", "41445")), new XElement("payment", new XAttribute("ref", "55553"))) ).ToString(SaveOptions.DisableFormatting); exchange.InMessage.Body = xml; exchange.InMessage.SetHeader("email_address", "*****@*****.**"); } exchange.Exception.Push(new Exception("Error processing transaction request")); }
public override Exchange Process(Exchange exchange, UriDescriptor endPointDescriptor) { try { var host = endPointDescriptor.GetUriProperty("host"); var isBodyXml = endPointDescriptor.GetUriProperty<bool>("isBodyXml"); var database = endPointDescriptor.GetUriProperty("database"); var collection = endPointDescriptor.GetUriProperty("collection"); var createCollection = endPointDescriptor.GetUriProperty<bool>("createCollection"); var operation = endPointDescriptor.GetUriProperty<OperationType>("operation"); var client = new MongoClient("mongodb://" + host); var db = client.GetServer().GetDatabase(database); if (!db.CollectionExists(collection) && createCollection) db.CreateCollection(collection); var bson = exchange.InMessage.Body.ToString(); if (isBodyXml) { var doc = new XmlDocument(); doc.LoadXml(exchange.InMessage.Body.ToString()); bson = JsonConvert.SerializeXmlNode(doc); } var bsonDoc = BsonDocument.Parse(bson); ServeOperation(db, exchange, endPointDescriptor, bsonDoc, operation, collection); } catch (Exception exception) { Console.WriteLine("{0}-{1}", exception.Message, exception.StackTrace); } return exchange; }
public static void HandleTransform(XElement step, Route routeObj, Exchange exchange) { try { var transformXml = step.Elements().First(); var opName = transformXml.Name.ToString(); switch (opName) { case "simple": ProcessSimple(transformXml, routeObj, exchange); break; case "xpath": break; } } catch (AggregateException aggregateException) { } catch (Exception exception) { } }
public override Exchange Process(Exchange exchange, UriDescriptor endPointDescriptor) { try { var inReverse = endPointDescriptor.GetUriProperty("reverse", false); var useOut = endPointDescriptor.GetUriProperty("useout", false); var body = useOut ? exchange.OutMessage.Body.ToString() : exchange.InMessage.Body.ToString(); if (!inReverse) { var doc = new XmlDocument(); doc.LoadXml(body); var jsonText = JsonConvert.SerializeXmlNode(doc); exchange.InMessage.Body = jsonText; } else { var doc = JsonConvert.DeserializeXmlNode(body); exchange.InMessage.Body = doc.InnerXml; } Camel.TryLog(exchange, "processor", endPointDescriptor.ComponentName); } catch (Exception exception) { } return base.Process(exchange, endPointDescriptor); }
private void ValidateUser(Exchange exchange) { var token = exchange.InMessage.GetHeader<String>("securityToken"); if (!string.IsNullOrWhiteSpace(token)) { try { var secToken = JWT.JsonWebToken.Decode(token, Encoding.ASCII.GetBytes("password")); var userInfo = JsonConvert.DeserializeObject<UserAuth.UserInfo>(secToken); if (userInfo.Name == "adeola") { var data = new UserAuth { SessionToken = "djsdjhj3i9sdhnw3", ResponseCode = ResponseCode.Success }; exchange.InMessage.Body = JsonConvert.SerializeObject(data); }else { var data = new UserAuth { SessionToken = "", ResponseCode = ResponseCode.InCorrectAuthenticationParamaters, ResponseMsg = "Incorrect login details" }; exchange.InMessage.Body = JsonConvert.SerializeObject(data); } } catch (Exception e) { var data = new UserAuth { SessionToken = "", ResponseCode = ResponseCode.AuthenticationUnknownError, ResponseMsg = e.Message }; exchange.InMessage.Body = JsonConvert.SerializeObject(data); } } else { var data = new UserAuth { SessionToken = "", ResponseCode = ResponseCode.Unknown }; exchange.InMessage.Body = JsonConvert.SerializeObject(data); } }
public static void DoWhen(XElement choicElement, Exchange exchange) { var whenElements = choicElement.Elements("when"); foreach (var whenElement in whenElements) { var passed = CheckRequiremnt(whenElement, exchange); if (!passed) continue; var functions = whenElement.Elements().Skip(1); foreach (var xmlStep in functions) { RouteStep.ProcessStep(xmlStep, exchange.Route, exchange); } break; } //handle otherwise var otherwiseXml = choicElement.Element("otherwise"); if (otherwiseXml == null) return; var otherwiseFunctions = otherwiseXml.Elements(); foreach (var xmlStep in otherwiseFunctions) { RouteStep.ProcessStep(xmlStep, exchange.Route, exchange); } }
public override Exchange Process(Exchange exchange, UriDescriptor endPointDescriptor) { try { Camel.TryLog(exchange, "provider", endPointDescriptor.ComponentName); var dbHost = endPointDescriptor.ComponentPath; var port = endPointDescriptor.GetUriProperty<int>("port"); var couchDbDatabase = exchange.InMessage.GetHeader("CouchDbDatabase"); var createDb = endPointDescriptor.GetUriProperty<bool>("createDb"); var document = exchange.InMessage.Body; var dbUrl = string.Format("http://{0}:{1}", dbHost, port); var conn = new Connection(new Uri(dbUrl)); if (createDb && !conn.ListDatabases().Contains(couchDbDatabase)) { conn.CreateDatabase(couchDbDatabase.ToString()); } } catch (Exception exception) { } return base.Process(exchange, endPointDescriptor); }
/// <summary> /// Execute /// </summary> /// <param name="loopTag"></param> /// <param name="exchange"></param> /// <param name="route"></param> public static void Execute(XElement loopTag, Exchange exchange, Route route) { Camel.TryLog(exchange, "processor", "loop"); 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.ProcessStep(dataItem, route, exchange); } catch (Exception exception) { } } } }
private static bool CheckRequiremnt(XElement whenElement, Exchange exchange) { var conditionXml = whenElement.Elements().FirstOrDefault(); if (conditionXml == null) return false; var conditionType = conditionXml.Name.ToString(); switch (conditionType) { case "simple": return ProcessSimple(conditionXml, exchange); break; case "xpath": return ProcessXPath(conditionXml, exchange); break; case "method": return ProcessBean(conditionXml, exchange); break; case "processor-method": return ProcessExchangeBean(conditionXml, exchange); break; default: return false; } return false; }
/// <summary> /// /// </summary> /// <param name="step"></param> /// <param name="exchange"></param> /// <param name="routeObj"></param> public static void Enrich(XElement step, Exchange exchange, Route routeObj) { try { var uri = step.Attribute("uri"); var strategyref = step.Attribute("strategyref"); if (uri == null || strategyref == null) return; var uriInfo = UriDescriptor.Parse(uri.Value, exchange); var clonedExchange = exchange.CloneExchange(); EndPointBuilder.HandleTo(uriInfo, clonedExchange, routeObj); //fetch strategy var stragegyObj = Camel.Registry[strategyref.Value] as AggregationStrategy; if (stragegyObj != null) { stragegyObj.Aggregate(exchange, clonedExchange); } } catch (Exception exc) { } }
public override Exchange Process(Exchange exchange, UriDescriptor endPointDescriptor) { var baseApiUri = endPointDescriptor.ComponentPath; var location = endPointDescriptor.GetUriProperty("location", ""); var resultHeader = endPointDescriptor.GetUriProperty("resultHeader"); var lat = endPointDescriptor.GetUriProperty("lat"); var lon = endPointDescriptor.GetUriProperty("lon"); using (var client = new WebClient()) { if (!string.IsNullOrEmpty(lat)) client.QueryString.Add("lat", lat); if (!string.IsNullOrEmpty(lon)) client.QueryString.Add("lon", lon); var finaUrl = string.Format("{0}?q={1}", baseApiUri, location); var result = client.DownloadString(finaUrl); if (!string.IsNullOrEmpty(resultHeader)) exchange.InMessage.SetHeader("resultHeader", result); else { exchange.InMessage.Body = result; } } return exchange; }
public override Exchange Process(Exchange exchange, UriDescriptor endPointDescriptor) { try { var protocol = endPointDescriptor.GetUriProperty<string>("protocol"); switch (protocol) { case "smtp": Task.Factory.StartNew(() => SendMail(endPointDescriptor, exchange)); break; case "imap": break; } } catch (AggregateException aggregateException) { Console.WriteLine("aggr-error sending mail: {0}", aggregateException.Message); } catch (Exception exception) { Console.WriteLine("error sending mail: {0}", exception.Message); } return base.Process(exchange, endPointDescriptor); }
public override Exchange Process(Exchange exchange, UriDescriptor endPointDescriptor) { try { var method = endPointDescriptor.GetUriProperty("method"); var objectTypePath = endPointDescriptor.ComponentPath; var objectType = Type.GetType(objectTypePath); if (objectType != null) { var objectInstance = Activator.CreateInstance(objectType, null); if (!string.IsNullOrEmpty(method)) { //process normalizer method var methodMember = objectInstance.GetType() .GetMethod(method, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance); methodMember.Invoke(objectInstance, null); } } } catch (Exception exception) { } return base.Process(exchange, endPointDescriptor); }
/// <summary> /// ProcessRouteInformation From Method /// </summary> /// <param name="leafDescriptor"></param> /// <param name="route"></param> public static void HandleFrom(UriDescriptor leafDescriptor, Route route, Exchange exchangeData = null) { try { //init endpoint DefaultEndpoint endPoint; if (Camel.EnPointCollection.TryGetValue(leafDescriptor.FullUri, out endPoint)) { } else { var execAssembly = Assembly.GetExecutingAssembly(); var types = execAssembly.GetTypes(); foreach (var namespaceToCheck in PermissibleNamespaces) { var typeData = types.FirstOrDefault( c => c.FullName.Equals( string.Format("{0}.{1}.{2}", namespaceToCheck, leafDescriptor.ComponentName, leafDescriptor.ComponentName), StringComparison.InvariantCultureIgnoreCase) || c.FullName.Equals( string.Format("{0}.{1}.{2}EndPoint", namespaceToCheck, leafDescriptor.ComponentName, leafDescriptor.ComponentName), StringComparison.InvariantCultureIgnoreCase)); if (typeData == null) continue; endPoint = (DefaultEndpoint) Activator.CreateInstance(typeData, leafDescriptor.FullUri, route); Camel.EnPointCollection.TryAdd(leafDescriptor.FullUri, endPoint); break; } } if (endPoint != null) { if (exchangeData == null) endPoint.Start(); else { endPoint.StartWithExistingExchange(exchangeData); } } else throw new AppCoreException("end-point not found: " + leafDescriptor.ComponentName); } catch (AggregateException exception) { } catch (Exception exception) { throw new AppCoreException("error handling [from-tag] :" + exception.Message, exception); } }
public List<string> Split(Exchange exchange) { if (exchange.InMessage.Body == null) return null; var bodyLines = exchange.InMessage.Body.ToString().Split(new[] {Environment.NewLine}, StringSplitOptions.None); return bodyLines.ToList(); }
public override Exchange Execute() { var exchange = new Exchange(_sedaProcessor.Route); Camel.TryLog(exchange, "consumer", _sedaProcessor.UriInformation.ComponentName); _sedaProcessor.Process(exchange); return exchange; }
private void ProcessResponse(string fileData, Exchange exchange, string fileFolderPath) { exchange.InMessage.SetHeader("fileFolderPath", fileFolderPath); exchange.InMessage.Body = fileData; Camel.TryLog(exchange); _fileProcessor.Process(exchange); exchange.OutMessage.Body = exchange.InMessage.Body; }
public override void Process(Exchange exchange) { var rawMsg = exchange.InMessage.Body.ToString(); var data = JsonConvert.DeserializeObject<UserLogin>(rawMsg); var rsp = JsonConvert.SerializeObject(new UserLogin.UserLoginStatus { ResponseCode = "90000", ResponseMessage = "Success", }); exchange.InMessage.Body = GetBankSummary(); base.Process(exchange); }
public override Exchange Process(Exchange exchange, UriDescriptor endPointDescriptor) { LogStack.Enqueue(new UriExchange { Exchange = exchange, UriDescriptor = endPointDescriptor }); if (LogTask == null) LogTask = System.Threading.Tasks.Task.Factory.StartNew(ProcessLogQueue); return exchange; }
public bool IsHttpGenericRequest(Exchange exchange) { var request = XElement.Parse(exchange.InMessage.Body.ToString()); var xElement = request.Element("routeid"); if (xElement == null) return false; var routeId = xElement.Value; return routeId == "HTTPGENERIC"; }
public override Exchange Process(Exchange exchange, UriDescriptor endPointDescriptor) { var path = endPointDescriptor.ComponentPath; var route = Camel.GetRouteBy(path); if (route != null) route.CurrentRouteStep.ProcessChannel(exchange); return exchange; }
public override Exchange Aggregate(Exchange oldExchange, Exchange newExchange) { var dateTime = XElement.Parse(newExchange.InMessage.Body.ToString()); var result = XmlHelper.GetValue<DateTime>(dateTime, "datetime"); var notifyRes = XElement.Parse(oldExchange.InMessage.Body.ToString()); notifyRes.Add(new XElement("aggregator_date_time", result)); oldExchange.InMessage.Body = notifyRes.ToString(); return oldExchange; }
public void Log(Exchange exchange, string processorType, string componentName, Exception exception = null) { try { System.Threading.Tasks.Task.Factory.StartNew(() => InitLog(exchange, processorType, componentName)); } catch (Exception) { } }
public override void Process(Exchange exchange) { var elem = XElement.Parse(exchange.InMessage.Body.ToString()); elem.Add(new XElement("responsecode","00")); elem.Add(new XElement("responsemessage", "Successful")); elem.Add(new XElement("pin",Guid.NewGuid().ToString())); exchange.OutMessage.Body = elem.ToString(); exchange.InMessage.SetHeader("htt-request-bean", DateTime.Now.ToString()); }
public override Exchange Process(Exchange exchange, UriDescriptor endPointDescriptor) { var fileData = exchange.OutMessage.Body != null ? exchange.OutMessage.Body.ToString() : ""; var fileName = endPointDescriptor.ComponentPath; if (!string.IsNullOrEmpty(fileData) && !string.IsNullOrEmpty(fileName)) File.AppendAllText(fileName, fileData); Camel.TryLog(exchange, "provider", endPointDescriptor.ComponentName); return exchange; }
public override void Process(Exchange exchange) { var body = exchange.InMessage.Body.ToString(); if (body.EndsWith("\\r\\n")) body = body.Replace("\\r\\n", ""); var msg = $"http://{body}"; var xml = XElement.Parse(body); xml.Add(new XElement("response", "00")); exchange.InMessage.Body = xml.ToString(); }
public override Exchange Process(Exchange exchange, UriDescriptor endPointDescriptor) { Route route; if (!Camel.RouteCollection.TryGetValue(endPointDescriptor.ComponentPath, out route)) return exchange; Camel.TryLog(exchange, "producer", endPointDescriptor.ComponentName); exchange.Route = route; SedaDriver.SedaQueue.TryAdd(endPointDescriptor, exchange); return exchange; }
private static void Tap(Exchange exchange, string path, Route route) { try { var leafNodeParts = UriDescriptor.Parse(path, exchange); EndPointBuilder.HandleTo(leafNodeParts, exchange, route); } catch(Exception exception) { Console.WriteLine(exception.Message); } }