protected override bool IsValidPath(string path) { bool isValidPath = false; string[] pathArray = ChunkPath(path); if (pathArray.Length == 0) { return(true); } else { // Send cmd to DRP broker string drpURL = pathArray[0]; string[] remainingPath = pathArray.Skip(1).ToArray(); DRP_Client myDRPClient = new DRP_Client(drpURLHash[drpURL]); while (myDRPClient.wsConn.ReadyState != WebSocketSharp.WebSocketState.Open) { System.Threading.Thread.Sleep(100); } JObject returnedData = myDRPClient.SendCmd("cliGetItem", remainingPath); if (returnedData["item"].Value <string>() != null) { isValidPath = true; } myDRPClient.CloseSession(); } return(isValidPath); }
protected override void GetItem(string path) { string[] pathArray = ChunkPath(path); if (pathArray.Length == 0) { // Do nothing } else { string drpAlias = pathArray[0]; string[] remainingPath = pathArray.Skip(1).ToArray(); DRP_Client myDRPClient = new DRP_Client(drpURLHash[drpAlias]); if (!myDRPClient.Open().GetAwaiter().GetResult()) { return; } //Console.WriteLine("Connected to DRP Broker, sending pathCmd"); JObject returnedData = myDRPClient.SendCmd_Async("DRP", "pathCmd", new Dictionary <string, object>() { { "method", "cliGetPath" }, { "pathList", remainingPath }, { "listOnly", false } }).GetAwaiter().GetResult(); if (returnedData != null && returnedData["pathItem"] != null) { string returnJSONString; string itemType = returnedData["pathItem"].GetType().ToString(); object returnObj; if (itemType.Equals("Newtonsoft.Json.Linq.JValue")) { returnObj = returnedData["pathItem"].Value <string>(); returnJSONString = returnedData["pathItem"].Value <string>(); } else { returnObj = returnedData["pathItem"]; returnJSONString = returnedData["pathItem"].ToString(); } if (returnObj != null) { WriteItemObject(returnJSONString, this.ProviderInfo + "::" + path, false); } else { Console.WriteLine("Returned value is null!"); } } //WriteItemObject(returnedData, this.ProviderInfo + "::" + path, true); myDRPClient.CloseSession(); } }
private string GetItemReturnJSONString(string path) { string returnJSONString = null; string[] pathArray = ChunkPath(path); if (pathArray.Length == 0) { // Do nothing } else { string drpURL = pathArray[0]; string[] remainingPath = pathArray.Skip(1).ToArray(); DRP_Client myDRPClient = new DRP_Client(drpURLHash[drpURL]); while (myDRPClient.wsConn.ReadyState != WebSocketSharp.WebSocketState.Open) { System.Threading.Thread.Sleep(100); } //Console.WriteLine("Connected to DRP Broker!"); JObject returnedData = myDRPClient.SendCmd("pathCmd", new Dictionary <string, object>() { { "method", "cliGetPath" }, { "pathList", remainingPath }, { "listOnly", false } }); if (returnedData != null && returnedData["pathItem"] != null) { //string itemType = returnedData["pathItem"].GetType().ToString(); returnJSONString = returnedData["pathItem"].ToString(); /* * switch (itemType) { * case "Newtonsoft.Json.Linq.JObject": * returnJSONString = * break; * case "Newtonsoft.Json.Linq.JArray": * break; * case "Newtonsoft.Json.Linq.JValue": * break; * default: * break; * } */ } //WriteItemObject(returnedData, this.ProviderInfo + "::" + path, true); myDRPClient.CloseSession(); } return(returnJSONString); }
protected override void SetItem(string path, object value) { string[] pathArray = ChunkPath(path); if (pathArray.Length == 0) { // Do nothing } else { //base.SetItem(path, value); string drpAlias = pathArray[0]; string[] remainingPath = pathArray.Skip(1).ToArray(); DRP_Client myDRPClient = new DRP_Client(drpURLHash[drpAlias]); while (myDRPClient.wsConn.ReadyState != WebSocketSharp.WebSocketState.Open && !myDRPClient.clientConnected) { System.Threading.Thread.Sleep(100); } //JObject returnedData = myDRPClient.SendDRPCmd("cliSetItem", new List<Object> { ChunkPath(path), value }); JObject returnedData = myDRPClient.SendCmd("pathCmd", new Dictionary <string, object>() { { "method", "cliSetPath" }, { "pathList", remainingPath }, { "objData", value } }); if (returnedData["success"] != null) { object returnObj; string itemType = returnedData["pathItem"].GetType().ToString(); if (itemType.Equals("Newtonsoft.Json.Linq.JValue")) { returnObj = returnedData["pathItem"].Value <string>(); } else { returnObj = returnedData["pathItem"]; } if (returnObj != null) { Console.WriteLine("cliSetPath returned status = [" + returnObj + "]"); //WriteItemObject(returnObj, this.ProviderInfo + "::" + path, false); } else { Console.WriteLine("cliSetPath returned status is null!"); } } //WriteItemObject(returnedData, this.ProviderInfo + "::" + path, true); myDRPClient.CloseSession(); } }
protected override void GetChildItems(string path, bool recurse) { string[] pathArray = ChunkPath(path); if (pathArray.Length == 0) { // Return base Objects DataTable returnTable = new DataTable(); returnTable.Columns.Add(new DataColumn("Alias", typeof(string))); returnTable.Columns.Add(new DataColumn("URL", typeof(string))); returnTable.Columns.Add(new DataColumn("User", typeof(string))); returnTable.Columns.Add(new DataColumn("ProxyAddress", typeof(string))); //returnTable.Columns.Add(new DataColumn("ProxyUser", typeof(string))); foreach (string key in drpURLHash.Keys) { DataRow newRow = returnTable.NewRow(); newRow.SetField("Alias", key); newRow.SetField("URL", drpURLHash[key].URL); newRow.SetField("User", drpURLHash[key].User); newRow.SetField("ProxyAddress", drpURLHash[key].ProxyAddress); //newRow.SetField("ProxyUser", drpURLHash[key].ProxyUser); returnTable.Rows.Add(newRow); } if (returnTable != null) { WriteItemObject(returnTable, this.ProviderInfo + "::" + path, true); } } else { string drpAlias = pathArray[0]; string[] remainingPath = pathArray.Skip(1).ToArray(); DRP_Client myDRPClient = new DRP_Client(drpURLHash[drpAlias]); if (!myDRPClient.Open().GetAwaiter().GetResult()) { return; } //Console.WriteLine("Connected to DRP Broker, sending pathCmd"); JObject returnedData = myDRPClient.SendCmd_Async("DRP", "pathCmd", new Dictionary <string, object>() { { "method", "cliGetPath" }, { "pathList", remainingPath }, { "listOnly", true } }).GetAwaiter().GetResult(); if (returnedData != null && returnedData.ContainsKey("pathItemList")) { // Return base Objects DataTable returnTable = null; foreach (JObject objData in (JArray)returnedData["pathItemList"]) { var fields = new List <Field>(); // Create table if null if (returnTable == null) { returnTable = ReturnTable(objData); } DataRow newRow = returnTable.NewRow(); foreach (JProperty thisProperty in objData.Properties()) { newRow.SetField(thisProperty.Name, thisProperty.Value.ToString()); } returnTable.Rows.Add(newRow); } if (returnTable != null) { WriteItemObject(returnTable, this.ProviderInfo + "::" + path, true); } } myDRPClient.CloseSession(); } }