internal static async Task <RemoteObject> GetRemoteObjectAsync(string path) { if (gObjectsByPath.TryGetValue(path, out RemoteObject obj)) { return(obj); } var response = await mRequestManager.RequestAsync(new string[] { "Get-Item", path }); var responseObj = response["item"]; return(RegisterObject(responseObj)); }
public async Task <IEnumerable <RemoteObject> > LoadChildrenAsync(RequestManager requestManager) { if (mChildren == null) { var response = await requestManager.RequestAsync(new string[] { "Get-ChildItem", this.Path }); var children = (JsonArray)response["children"]; if (children.Count == 0) { return(null); } mChildren = new Dictionary <string, RemoteObject>(); foreach (var item in children) { var obj = RemoteObjectManager.LoadObject(item); mChildren.Add(obj.Name, obj); } } return(mChildren.Select(x => x.Value)); }