public Activity Parse(XElement inputElement) { var callProcessActivity = new CallProcessActivity (); callProcessActivity.Name = inputElement.Attribute ("name").Value; callProcessActivity.Type = (ActivityType) inputElement.Element (XmlnsConstant.tibcoProcessNameSpace + "type").Value; var configElement = inputElement.Element ("config"); callProcessActivity.ProcessName = XElementParserUtils.GetStringValue(configElement.Element("processName")); if (inputElement.Element(XmlnsConstant.tibcoProcessNameSpace + "inputBindings") != null) { callProcessActivity.InputBindings = inputElement.Element(XmlnsConstant.tibcoProcessNameSpace + "inputBindings").Nodes(); callProcessActivity.Parameters = new XslParser().Build(callProcessActivity.InputBindings); } return callProcessActivity; }
public void SetUp() { this.xmlParseActivityBuilder = new CallProcessActivityBuilder(new XslBuilder(new XpathBuilder())); this.activity = new CallProcessActivity ( "My Call Process Activity",ActivityType.callProcessActivityType); this.activity.ProcessName = "Process/DAI/PNO/process.To.Call.process"; var xml = @"<pd:inputBindings xmlns:pd=""http://xmlns.tibco.com/bw/process/2003"" xmlns:xsl=""http://w3.org/1999/XSL/Transform""> <xmlString> <xsl:value-of select=""'TestString'""/> </xmlString> </pd:inputBindings> "; XElement doc = XElement.Parse(xml); this.activity.InputBindings = doc.Nodes(); this.activity.Parameters = new List<ClassParameter>{ new ClassParameter{ Name = "xmlString", Type= "string"} }; }
public CodeStatementCollection GenerateCodeInvocation(CallProcessActivity callProcessActivity) { var invocationCodeCollection = new CodeStatementCollection(); // Add the Log invocationCodeCollection.AddRange(DefaultActivityBuilder.LogActivity(callProcessActivity)); // Add the mapping invocationCodeCollection.AddRange(this.xslBuilder.Build(callProcessActivity.InputBindings)); // Add the invocation var processToCallReference = new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), VariableHelper.ToVariableName(callProcessActivity.TibcoProcessToCall.ProcessName)); var parameters = DefaultActivityBuilder.GenerateParameters(callProcessActivity); // TODO : WARNING not sure the start method ProcessName is indeed START var methodInvocation = new CodeMethodInvokeExpression(processToCallReference, "Start", parameters); var code = new CodeVariableDeclarationStatement("var", VariableHelper.ToVariableName(callProcessActivity.Name), methodInvocation); invocationCodeCollection.Add(code); return invocationCodeCollection; }