private CodeThrowExceptionStatement GenerateExceptionStatement(GenerateErrorActivity activity) { var parameters = AbstractActivityBuilder.GenerateParameters( new List <string> { @"""Message : {0}\nMessage code : {1} """ }, activity); var stringFormatCall = new CodeMethodInvokeExpression(); stringFormatCall.Parameters.AddRange(parameters); var formatMethod = new CodeMethodReferenceExpression { MethodName = "Format" }; var stringObject = new CodeVariableReferenceExpression { VariableName = "String" }; formatMethod.TargetObject = stringObject; stringFormatCall.Method = formatMethod; var throwException = new CodeThrowExceptionStatement( new CodeObjectCreateExpression(new CodeTypeReference(typeof(System.Exception)), stringFormatCall)); return(throwException); }
public CodeStatementCollection GenerateInvocationCode(Activity activity, Dictionary <string, string> variables) { var errorActivity = (GenerateErrorActivity)activity; var invocationCodeCollection = new CodeStatementCollection(); // add log invocationCodeCollection.AddRange(AbstractActivityBuilder.LogActivity(errorActivity)); //add the input invocationCodeCollection.AddRange(this.xslBuilder.Build(activity.InputBindings)); // Add the exception Call invocationCodeCollection.Add(this.GenerateExceptionStatement(errorActivity)); return(invocationCodeCollection); }