public UAReturn LoadPackage(string packagename, bool AddToUserPackageList)
{
string command = string.Format("library({0})", packagename);
UAReturn result = new UAReturn() { Success = false };
if (!isPackageInstalled(packagename))
{
result.Error = "Error loading R package: " + packagename + " (package not installed)";
}
else
{
//Load Package
if (!_dispatcher.IsLoaded(packagename))
{
string errm = _dispatcher.EvaluateNoReturn("options('warn'=1)"); // for removing old error messages by consuming them immediately
string errmsg = _dispatcher.EvaluateNoReturn(command);// "Load Package";
if (errmsg != null && !(errmsg.ToLower().Contains("error") || errmsg.ToLower().Contains("warning")))
result.Success = true;
if (AddToUserPackageList)//Also add this package to user package list
AddUserSessionPackage(packagename); //creates an entry in user session package list.
if (errmsg != null && errmsg.Trim().Length > 1) //error occurred
{
result.Error = errmsg;
}
result.CommandString = command;
}
else
{
result.Success = true;
result.CommandString = command + " : Already loaded";
}
}
return result;
}