예제 #1
0
        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);
        }
예제 #2
0
        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)
            });
        }
예제 #3
0
        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);
        }