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

GenerateSlicenameAndRowColHeaders() private method

private GenerateSlicenameAndRowColHeaders ( string objectName, XmlNode thisNode ) : void
objectName string
thisNode System.Xml.XmlNode
return void
        private void GenerateSlicenameAndRowColHeaders(string objectName, XmlNode thisNode)
        {
            //Creating row col headers if any present on R side object
            string[] objcolheaders = null;
            string[] objrowheaders = null;
            string objslicetitlecommand = string.Empty;
            string objslicetitle = string.Empty;
            //finding slice name, is exists
            if (objectName.Contains("$datatable")) // only for return structures those contain $datatable (BSky stat results )
            {
                objslicetitlecommand = objectName.Replace("$datatable", "$cartlevel");
                if (!this._RServer.Evaluate("is.null(" + objslicetitlecommand + ")").AsLogical()[0])
                    objslicetitle = this._RServer.Evaluate(objslicetitlecommand).AsCharacter()[0];
                XmlElement sliceTitletag = thisNode.OwnerDocument.CreateElement("slicename");
                sliceTitletag.InnerText = objslicetitle.Replace("<", "&lt;").Replace(">", "&gt;").Replace("<=", "&le;").Replace(">=", "&ge;");
                thisNode.AppendChild(sliceTitletag);

            }
            if (!this._RServer.Evaluate("is.null(colnames(" + objectName + "))").AsLogical()[0])
            {
                CharacterVector cv = this._RServer.Evaluate("colnames(" + objectName + ")").AsCharacter();
                int siz = cv.Count();
                objcolheaders = new string[siz];
                for (int ic = 0; ic < siz; ic++)
                {
                    objcolheaders[ic] = cv[ic];
                }
            }
            if (!this._RServer.Evaluate("is.null(rownames(" + objectName + "))").AsLogical()[0])
            {
                CharacterVector cv = this._RServer.Evaluate("rownames(" + objectName + ")").AsCharacter();
                int siz = cv.Count();
                objrowheaders = new string[siz];
                for (int ic = 0; ic < siz; ic++)
                {
                    objrowheaders[ic] = cv[ic];
                }
            }

            //01May2014 table header
            XmlElement strtableheader = thisNode.OwnerDocument.CreateElement("tableheader");
            if (tableheader != null && tableheader.Length > 0)
                strtableheader.InnerText = tableheader;//Table header assigned
            thisNode.AppendChild(strtableheader);

            XmlElement objcolnames = thisNode.OwnerDocument.CreateElement("colheaders");
            if (objcolheaders != null)
            {
                string innertxt = string.Join(",", objcolheaders);//Array to comma separated string
                objcolnames.InnerText = innertxt.Replace("<", "&lt;").Replace(">", "&gt;").Replace("<=", "&le;").Replace(">=", "&ge;");
            }
            XmlElement objrownames = thisNode.OwnerDocument.CreateElement("rowheaders");
            if (objrowheaders != null)
            {
                string innertxt = string.Join(",", objrowheaders);//Array to comma separated string
                objrownames.InnerText = innertxt.Replace("<", "&lt;").Replace(">", "&gt;").Replace("<=", "&le;").Replace(">=", "&ge;");
            }
            thisNode.AppendChild(objcolnames);
            thisNode.AppendChild(objrownames);
        }