public async Task InitFileList() { string requestUri = FilesApi + "?list" + "&spaces=appDataFolder" + "&q=" + Uri.EscapeDataString("trashed=false"); bool bHasValidResponse = false; Reply reply = await HandleRequest("GET", requestUri); if (reply.bIsSuccessful) { JsonParser.ObjectValue jsonOb = JsonParser.ParseJson(reply.contentBody); if (jsonOb != null) { JsonParser.ArrayValue fileArr = (JsonParser.ArrayValue)jsonOb["files"]; foreach (JsonParser.Value entry in fileArr.entries) { JsonParser.ObjectValue entryOb = (JsonParser.ObjectValue)entry; string mapKey = entryOb["name"]; mapFileIds.Remove(mapKey); mapFileIds.Add(mapKey, entryOb["id"]); } bHasValidResponse = true; } } UpdateCurrentState(bHasValidResponse); }
private static Token CreateToken(string jsonStr) { JsonParser.ObjectValue jsonOb = JsonParser.ParseJson(jsonStr); int validForSec = (JsonParser.IntValue)jsonOb["expires_in"]; return(new Token { accessToken = jsonOb["access_token"], refreshToken = jsonOb["refresh_token", JsonParser.StringValue.Empty], expirationDate = DateTime.Now.AddSeconds(validForSec) }); }
public async Task <bool> UploadTextFile(string fileName, string fileContent) { bool bResult = false; if (!mapFileIds.ContainsKey(fileName)) { string uploadRequestUri = UploadApi + "?uploadType=multipart"; string uploadMeta = "{\"name\":\"" + fileName + "\",parents:[\"appDataFolder\"]}"; Reply reply = await HandleRequest("POST", uploadRequestUri, uploadMeta, fileContent); if (reply.bIsSuccessful) { JsonParser.ObjectValue jsonOb = JsonParser.ParseJson(reply.contentBody); if (jsonOb != null) { string fileId = jsonOb["id"]; mapFileIds.Remove(fileName); mapFileIds.Add(fileName, fileId); bResult = true; } } } else { string patchRequestUri = UploadApi + "/" + mapFileIds[fileName] + "?uploadType=media"; Reply reply = await HandleRequest("PATCH", patchRequestUri, fileContent); bResult = reply.bIsSuccessful; } UpdateCurrentState(bResult); return(bResult); }