BSky.Statistics.R.RService.EvaluateToObject C# (CSharp) Method

EvaluateToObject() public method

public EvaluateToObject ( string commandString, bool hasReturn ) : object
commandString string
hasReturn bool
return object
        public object EvaluateToObject(string commandString, bool hasReturn)// read.spss("", "" )
        {
            object returnValue;

            try
            {
                this._RServer.Evaluate("tmp<-" + commandString); // tmp <-  read.spss("", "" )
            }
            catch (Exception e)
            {
                logService.WriteToLogLevel("Could not execute: < " + commandString + " >", LogLevelEnum.Error);
            }
            if (false)//this._RServer.GetErrorText() != RCommandReturn.Success)
            {
                returnValue = "Error: " + "R.Net's error not impl";//this._RServer.GetErrorText();
            }
            else if (!Conversions.ToBoolean(this._RServer.Evaluate("is.null(tmp)").AsLogical()[0]))
            {
                SymbolicExpression se = this._RServer.Evaluate("tmp");//.AsList();// list("","" ....)
                switch (se.Type.ToString())
                {
                    case "CharacterVector":
                        CharacterVector cv = se.AsCharacter();
                        if (cv.Length == 0)
                        {
                            returnValue = null;
                        }
                        else if (cv.Length == 1)
                        {
                            returnValue = cv[0];
                        }
                        else
                        {
                            returnValue =  cv.ToArray();
                        }
                        break;
                    case "IntegerVector":
                        IntegerVector iv = se.AsInteger();
                        if (iv.Length == 0)
                        {
                            returnValue = null;
                        }
                        else if (iv.Length == 1)
                        {
                            returnValue = iv[0];
                        }
                        else
                        {
                            returnValue =  iv.ToArray();
                        }
                        break;
                    case "NumericVector":
                        NumericVector nv = se.AsNumeric();
                        if (nv.Length == 0)
                        {
                            returnValue = null;
                        }
                        else if (nv.Length == 1)
                        {
                            returnValue = nv[0];
                        }
                        else
                        {
                            returnValue = nv.ToArray();
                        }
                        break;
                    case "LogicalVector":
                        LogicalVector lv = se.AsLogical();
                        if (lv.Length == 0)
                        {
                            returnValue = null;
                        }
                        else if (lv.Length == 1)
                        {
                            returnValue = lv[0];
                        }
                        else
                        {
                            returnValue = lv.ToArray();
                        }
                        break;
                    default:
                        returnValue = null;
                        break;
                }
            }
            else
            {
                returnValue = "No Result - Check Command";
            }

            return returnValue;
        }