private string InterpretReturn(object objRtr, string Command)
{
int num;
object instance = null;
string str2;
try
{
this._RServer.Evaluate("tmp<-names(" + Command + ")");
if (!(bool)this._RServer.Evaluate("is.null(tmp)").AsLogical()[0])
{
instance = (this._RServer.Evaluate("tmp").AsList());
}
}
catch (Exception exception1)
{
logService.WriteToLogLevel("Could not execute : < " + Command + " >", LogLevelEnum.Error);
LastException = exception1;
}
switch (objRtr.GetType().ToString())
{
case "System.String":
return objRtr.ToString();
case "System.Double":
return Conversions.ToDouble(objRtr).ToString();
case "System.Int32":
return Conversions.ToInteger(objRtr).ToString();
case "System.Int32[]":
{
str2 = "<table border=1 cellspacing=1>";
if ((instance != null) && (instance.GetType().ToString() == "System.String[]"))
{
str2 = str2 + "<tr>";
int num7 = ((Array)instance).Length - 1;
for (num = 0; num <= num7; num++)
{
str2 = str2 + "<th>" + NewLateBinding.LateIndexGet(instance, new object[] { num }, null).ToString() + "</th>";
}
str2 = str2 + "</tr>";
}
str2 = str2 + "<tr>";
int num8 = ((int[])objRtr).Length - 1;
for (num = 0; num <= num8; num++)
{
str2 = str2 + "<td align='right'>" + NewLateBinding.LateIndexGet(objRtr, new object[] { num }, null).ToString() + "</td>";
}
return (str2 + "</tr></table>");
}
case "System.Int32[,]":
{
Array array = (Array)objRtr;
str2 = "<table border=1 cellspacing=1>";
int upperBound = array.GetUpperBound(0);
for (num = 0; num <= upperBound; num++)
{
str2 = str2 + "<tr>";
int num10 = array.GetUpperBound(1);
for (int i = 0; i <= num10; i++)
{
str2 = Conversions.ToString(Operators.ConcatenateObject(Operators.ConcatenateObject(str2 + "<td>", NewLateBinding.LateIndexGet(objRtr, new object[] { num, i }, null)), "</td>"));
}
str2 = str2 + "</tr>";
}
return (str2 + "</table>");
}
case "System.Double[]":
{
str2 = "<table border=1 cellspacing=1>";
if ((instance != null) && (instance.GetType().ToString() == "System.String[]"))
{
str2 = str2 + "<tr>";
int num11 = ((Array)instance).Length - 1;
for (num = 0; num <= num11; num++)
{
str2 = str2 + "<th>" + NewLateBinding.LateIndexGet(instance, new object[] { num }, null).ToString() + "</th>";
}
str2 = str2 + "</tr>";
}
str2 = str2 + "<tr>";
int num12 = ((double[])objRtr).Length - 1;
for (num = 0; num <= num12; num++)
{
str2 = str2 + "<td align='right'>" + NewLateBinding.LateIndexGet(objRtr, new object[] { num }, null).ToString() + "</td>";
}
return (str2 + "</tr></table>");
}
case "System.Double[,]":
{
Array array2 = (Array)objRtr;
str2 = "<table border=1 cellspacing=1>";
int num13 = array2.GetUpperBound(0);
for (num = 0; num <= num13; num++)
{
str2 = str2 + "<tr>";
int num14 = array2.GetUpperBound(1);
for (int j = 0; j <= num14; j++)
{
str2 = Conversions.ToString(Operators.ConcatenateObject(Operators.ConcatenateObject(str2 + "<td align='right'>", NewLateBinding.LateIndexGet(objRtr, new object[] { num, j }, null)), "</td>"));
}
str2 = str2 + "</tr>";
}
return (str2 + "</table>");
}
case "System.String[]":
{
str2 = "<table border=1 cellspacing=1>";
if ((instance != null) && (instance.GetType().ToString() == "System.String[]"))
{
str2 = str2 + "<tr>";
int num15 = ((Array)instance).Length - 1;
for (num = 0; num <= num15; num++)
{
str2 = str2 + "<th>" + NewLateBinding.LateIndexGet(instance, new object[] { num }, null).ToString() + "</th>";
}
str2 = str2 + "</tr>";
}
str2 = str2 + "<tr>";
int num16 = ((string[])objRtr).Length - 1;
for (num = 0; num <= num16; num++)
{
str2 = str2 + "<td>" + NewLateBinding.LateIndexGet(objRtr, new object[] { num }, null).ToString() + "</td>";
}
return (str2 + "</tr></table>");
}
case "System.String[,]":
{
Array array3 = (Array)objRtr;
str2 = "<table border=1 cellspacing=1>";
int num17 = array3.GetUpperBound(0);
for (num = 0; num <= num17; num++)
{
str2 = str2 + "<tr>";
int num18 = array3.GetUpperBound(1);
for (int k = 0; k <= num18; k++)
{
str2 = Conversions.ToString(Operators.ConcatenateObject(Operators.ConcatenateObject(str2 + "<td>", NewLateBinding.LateIndexGet(objRtr, new object[] { num, k }, null)), "</td>"));
}
str2 = str2 + "</tr>";
}
return (str2 + "</table>");
}
case "System.Object[]":
{
object objectValue = (this._RServer.Evaluate("names(" + Command + ")").AsCharacter());
str2 = "<table border=1 cellspacing=1>";
if (objectValue.GetType().ToString() == "System.String[]")
{
str2 = str2 + "<tr>";
int num19 = ((Array)objectValue).Length - 1;
for (num = 0; num <= num19; num++)
{
str2 = str2 + "<th>" + NewLateBinding.LateIndexGet(objectValue, new object[] { num }, null).ToString() + "</th>";
}
str2 = str2 + "</tr>";
}
str2 = str2 + "<tr>";
int num20 = ((object[])objRtr).Length - 1;
for (num = 0; num <= num20; num++)
{
str2 = str2 + "<td>" + NewLateBinding.LateIndexGet(objRtr, new object[] { num }, null).ToString() + "</td>";
}
return (str2 + "</tr></table>");
}
}
return objRtr.ToString();
}