public static async Task <IEnumerable <T> > ExecuteOnPool <T>(TraversalQuery <GraphQuery, T> query) { if (Pool is null) { throw new InvalidOperationException("Client pool has not been created"); } return(await Pool.Execute(query)); }
public static async Task <IEnumerable <T> > Execute <T>(this IGraphClient client, TraversalQuery <GraphQuery, T> query) { var results = await client.Execute(query.ToString()); var resultList = new List <T>(); var objList = new List <object>(); foreach (var item in results) { objList.Add(item); } if (objList.Count == 0) { return(resultList); } if (objList[0].GetType().FullName == typeof(Newtonsoft.Json.Linq.JArray).FullName) { foreach (dynamic item in objList) { // item is Newtonsoft.Json.Linq.JArray resultList.Add(item.ToObject <T>()); } } else if (objList[0].GetType().FullName == typeof(Newtonsoft.Json.Linq.JObject).FullName) { foreach (dynamic item in objList) { // item is Newtonsoft.Json.Linq.JObject resultList.Add(item.ToObject <T>()); } } else { foreach (T item in objList) { resultList.Add(item); } } return(resultList); }