Saturday, January 8, 2011

SAMPLE Microsoft.RuleEngine.TypedXmlDocument

This is for testing purpose and ref http://www.biztalkgurus.com/forums/t/1351.aspx

using System;
namespace CallBusinessRules
{
class CallBusinessRules
{
const string defaultPolicyName = \"Policy1\";
const string defaultConnectionString =
\"Server=(local);Integrated Security=SSPI;database=Northwind\";
const string defaultDataConnectionName = \"Northwind\";
const string defaultDataTableName = \"ItemThreshold\";
static int Main(string[] args)
{
if (args.Length < 1)
return usage(-1);
string xmlFilePath = null,
policyName = defaultPolicyName,
sqlConnectionString = defaultConnectionString,
dataConnectionName = defaultDataConnectionName,
dataTableName = defaultDataTableName;
for (int i = 0; i < args.Length; i++)
{
if (args[i][0] == '-' || args[i][0] == '/')
{
if (i == args.Length - 1)
return usage(-2);
if (string.Compare(args[i].Substring(1),
\"policyName\", true) == 0)
{
policyName = args[++i];
}
else if (string.Compare(args[i].Substring(1),
\"sqlConnection\", true) == 0)
{
sqlConnectionString = args[++i];
}
else if (string.Compare(args[i].Substring(1),
\"datasetName\", true) == 0)
{
dataConnectionName = args[++i];
}
else if (string.Compare(args[i].Substring(1),
\"dataTableName\", true) == 0)
{
dataTableName = args[++i];
}}
else
{
if (xmlFilePath != null)
return usage(-3);
xmlFilePath = args[i];
}
}
Microsoft.RuleEngine.TypedXmlDocument document = null;
try
{
xmlReader = new System.Xml.XmlTextReader(xmlFilePath);
document = new Microsoft.RuleEngine.TypedXmlDocument(
\"ReplenishmentSchemas.RequestStatus\", xmlReader);
}

catch (Exception ex)

{ Console.WriteLine(ex.Message);
}
finally
{
if (xmlReader != null)
xmlReader.Close();
}



try

{
using (Microsoft.RuleEngine.Policy policy = new
Microsoft.RuleEngine.Policy(policyName))
{
object[] facts = new object[2];
facts[0] = document;
using (System.Data.SqlClient.SqlConnection
sqlConnection = new System.Data.SqlClient.SqlConnection(sqlConnectionString))
{
Microsoft.RuleEngine.DataConnection dataConnection = new Microsoft.RuleEngine.DataConnection(dataConnectionName, dataTableName, sqlConnection);
facts[1] = dataConnection;
policy.Execute(facts);
System.Xml.XmlDocument doc =
document.Document as System.Xml.XmlDocument;
doc.Save(System.Console.Out);
sqlConnection.Close();
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return 0;
}
static int usage(int retval)
{
Console.WriteLine(@\"
Use:
{0}
xmlDocumentPath
[-policyName \"\"\"\"]
[-sqlConnection \"\"\"\"]
[-datasetName \"\"\"\"]
[-dataTable \"\"\"\"]
xmlDocumentPath must point to RefillmentSchemas.RequestStatus XML document instance
defaults:
policyName - \"\"{1}\"\"
connectionString - \"\"{2}\"\"
dataConnectionName - \"\"{3}\"\"
leName - \"\"{4}\"\"
dataTab\", Environment.GetCommandLineArgs()[0], defaultPolicyName, defaultConnectionString, defaultDataConnectionName, defaultDataTableName);
return retval;
}
}
}



I build the above code and i get the following error.

C:\\Labs\\CallBusinessRules\\Class1.cs(58): The name 'xmlReader' does not exist in the class or namespace 'CallBusinessRules.CallBusinessRules'
C:\\Labs\\CallBusinessRules\\Class1.cs(67): The type or namespace name 'xmlReader' could not be found (are you missing a using directive or an assembly reference?)


Any help greatly appreciated!!!!!!!!!!!

No comments:

Post a Comment