BSky.Statistics.R.RPackageManager.InstallReqPackageFromCRAN C# (CSharp) Method

InstallReqPackageFromCRAN() public method

public InstallReqPackageFromCRAN ( string packagename ) : UAReturn
packagename string
return BSky.Statistics.Common.UAReturn
        public UAReturn InstallReqPackageFromCRAN(string packagename)
        {
            UAReturn result = new UAReturn() { Success = false };
            string command = string.Empty;
            string retmsg = string.Empty;
            string[] pkgs = packagename.Split(',');
            string packagenames = GetCommaSeparatedWithSingleQuotes(pkgs);
            if (packagenames == null)//bad string
            {
                result.CommandString = packagename;
                retmsg = " Mulitple packages must be comma separated and no quotes should be used.";
            }
            else
            {
                StringBuilder sbmsgs = new StringBuilder();
                //
                foreach (string pkgnam in pkgs)//uninstall package(s)
                {
                    //UAReturn result = new UAReturn() { Success = false };
                    if (!_dispatcher.IsLoaded(pkgnam) && !isPackageInstalled(pkgnam)) // if package is not already loaded and installed. then install it.
                    {
                        command = string.Format("BSkyInstallPkg('{0}')", pkgnam); //string.Format("install.packages(c({0}))", packagenames);
                        string retstr = _dispatcher.EvaluateToString(command);
                        if (retstr != null && retstr.Trim().Length > 0)
                            sbmsgs.Append(retstr);
                        else
                            sbmsgs.Append(pkgnam + " installed successfully.");
                    }
                    else //if you wish, you can unload andi nstall and then reinstall the R pacakge from CRAN
                    {
                        //UnLoadPackage(pkgnam);
                        //UninstallPackage(pkgnam);
                        //command = string.Format("BSkyInstallPkg({0})", pkgnam); //string.Format("install.packages(c({0}))", packagenames);
                        //sbmsgs.Append(_dispatcher.EvaluateToString(command));
                        sbmsgs.Append("Warning: "+pkgnam + " is already present.");
                    }
                }
                //command = string.Format("BSkyInstallPkg({0})", packagenames); //string.Format("install.packages(c({0}))", packagenames);
                retmsg = sbmsgs.ToString();// _dispatcher.EvaluateToString(command);
            }

            _journal.WriteLine(command);
            result.CommandString = command;
            result.Error = retmsg;
            if (retmsg.Contains("Check Command.") || retmsg.ToLower().Contains("error") || retmsg.ToLower().Contains("warning"))
                result.Success = false;
            else
                result.Success = true;

            //LoadPackage(packagename); // Normally, when we install package, it should also be loaded. Can also be done outside.
            return result;
        }