public Task<GoogleDriveAbout> About(GoogleAuthToken authToken, GoogleDriveAboutRequest aboutRequest, CancellationToken cancellationToken) { var request = _googleAuthService.CreateRestRequest(authToken, "about", HttpMethod.Get); if (!string.IsNullOrEmpty(aboutRequest.ETag)) { request.Headers.IfNoneMatch.Add(new EntityTagHeaderValue(aboutRequest.ETag)); } return _client.SendAndDeserialize<GoogleDriveAbout>(request, cancellationToken); }
public async Task<GoogleAuthToken> RefreshToken(GoogleAuthToken authToken, CancellationToken cancellationToken) { var formPostValues = new Dictionary<string, string> { { "client_id", _clientSettings.ClientId }, { "client_secret", _clientSettings.ClientSecret }, { "refresh_token", authToken.RefreshToken }, { "grant_type", "refresh_token" } }; var requestMessage = new HttpRequestMessage { Method = HttpMethod.Post, Content = new FormUrlEncodedContent(formPostValues) }; var result = await _client.SendAndDeserialize<GoogleAuthToken>(requestMessage, cancellationToken); result.RefreshToken = authToken.RefreshToken; result.ExpiresDateTime = DateTime.Now.AddSeconds(result.ExpiresIn - SafeExpirationWindow); return result; }
public Task<GoogleUserInfoResponse> GetUserInfo(GoogleAuthToken authToken, CancellationToken cancellationToken) { var request = _googleAuthService.CreateRestRequest(authToken, "userinfo", HttpMethod.Get); return _client.SendAndDeserialize<GoogleUserInfoResponse>(request, cancellationToken); }
public AccountModel(string name, GoogleAuthToken authToken) { Name = name; AuthToken = authToken; }
public Task<GoogleDriveFile> FilesInsert(GoogleAuthToken authToken, GoogleDriveFilesInsertRequest filesInsertRequest, CancellationToken cancellationToken) { var queryStringValues = new Dictionary<string, string>(); if (filesInsertRequest.Convert.HasValue) { queryStringValues.Add("convert", filesInsertRequest.Convert.ToString()); } if (filesInsertRequest.Ocr.HasValue) { queryStringValues.Add("ocr", filesInsertRequest.Ocr.ToString()); } if (!string.IsNullOrEmpty(filesInsertRequest.Fields)) { queryStringValues.Add("fields", filesInsertRequest.Fields); } var metadata = new GoogleDriveFile() { Title = filesInsertRequest.Filename, MimeType = filesInsertRequest.ContentType, Parents = new[] { new GoogleDriveParent() { Id = filesInsertRequest.FolderId } } }; if (filesInsertRequest.FileContent == null) { var request = _googleAuthService.CreateRestRequest(authToken, "files" + queryStringValues.ToQueryString(), HttpMethod.Post); request.Content = new StringContent(JsonConvert.SerializeObject(metadata), Encoding.UTF8, JsonContentType); return _client.SendAndDeserialize<GoogleDriveFile>(request, cancellationToken); } else { queryStringValues.Add("uploadType", "multipart"); var request = _googleAuthService.CreateRestRequest(authToken, "files" + queryStringValues.ToQueryString(), HttpMethod.Post); var metadataBytes = JsonConvert.SerializeObject(metadata, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore }).GetBytes(); var metadataContent = new ByteArrayContent(metadataBytes); metadataContent.Headers.ContentType = new MediaTypeHeaderValue(JsonContentType); var fileContent = new ByteArrayContent(filesInsertRequest.FileContent); fileContent.Headers.ContentType = new MediaTypeHeaderValue(filesInsertRequest.ContentType); request.Content = new MultipartFormDataContent { metadataContent, fileContent }; return _clientForUploads.SendAndDeserialize<GoogleDriveFile>(request, cancellationToken); } }
public async Task<byte[]> FileDownload(GoogleAuthToken authToken, string downloadUrl, CancellationToken cancellationToken) { var request = _googleAuthService.CreateRestRequest(authToken,downloadUrl, HttpMethod.Get); var response = await _client.SendAsync(request, cancellationToken); response.EnsureSuccessStatusCode(); return await response.Content.ReadAsByteArrayAsync(); }
public Task<GoogleDriveFile> FilesUpdate(GoogleAuthToken authToken, string fileId, GoogleDriveFilesUpdateRequest filesUpdateRequest, CancellationToken cancellationToken) { var queryStringValues = new Dictionary<string, string>(); if (!string.IsNullOrEmpty(filesUpdateRequest.Fields)) { queryStringValues.Add("fields", filesUpdateRequest.Fields); } var request = _googleAuthService.CreateRestRequest(authToken, "files/" + fileId + queryStringValues.ToQueryString(), HttpMethod.Put); request.Content = new StringContent(JsonConvert.SerializeObject(filesUpdateRequest.File), Encoding.UTF8, JsonContentType); return _client.SendAndDeserialize<GoogleDriveFile>(request, cancellationToken); }
public Task<GoogleDriveFile> FilesTrash(GoogleAuthToken authToken, string fileId, CancellationToken cancellationToken) { var request = _googleAuthService.CreateRestRequest(authToken, "files/" + fileId + "/trash", HttpMethod.Post); return _client.SendAndDeserialize<GoogleDriveFile>(request, cancellationToken); }
public Task<GoogleDriveFilesListResponse> FilesList(GoogleAuthToken authToken, GoogleDriveFilesListRequest filesListRequest, CancellationToken cancellationToken) { var queryStringValues = new Dictionary<string, string>(); if (filesListRequest.MaxResults.HasValue) { queryStringValues.Add("maxResults", filesListRequest.MaxResults.Value.ToStringInvariantCulture()); } if (!string.IsNullOrEmpty(filesListRequest.PageToken)) { queryStringValues.Add("pageToken", filesListRequest.PageToken); } if (!string.IsNullOrEmpty(filesListRequest.Projection)) { queryStringValues.Add("projection", filesListRequest.Projection); } if (!string.IsNullOrEmpty(filesListRequest.Query)) { queryStringValues.Add("q", filesListRequest.Query); } if (!string.IsNullOrEmpty(filesListRequest.Fields)) { queryStringValues.Add("fields", filesListRequest.Fields); } var request = _googleAuthService.CreateRestRequest(authToken, "files" + queryStringValues.ToQueryString(), HttpMethod.Get); if (!string.IsNullOrEmpty(filesListRequest.ETag)) { request.Headers.IfNoneMatch.Add(new EntityTagHeaderValue(filesListRequest.ETag)); } return _client.SendAndDeserialize<GoogleDriveFilesListResponse>(request, cancellationToken); }
public Task<GoogleDriveFile> FilesGet(GoogleAuthToken authToken, GoogleDriveFilesGetRequest filesGetRequest, CancellationToken cancellationToken) { var queryStringValues = new Dictionary<string, string>(); if (!string.IsNullOrEmpty(filesGetRequest.Fields)) { queryStringValues.Add("fields", filesGetRequest.Fields); } var request = _googleAuthService.CreateRestRequest(authToken, "files/" + filesGetRequest.FileId + queryStringValues.ToQueryString(), HttpMethod.Get); if (!string.IsNullOrEmpty(filesGetRequest.ETag)) { request.Headers.IfNoneMatch.Add(new EntityTagHeaderValue(filesGetRequest.ETag)); } return _client.SendAndDeserialize<GoogleDriveFile>(request, cancellationToken); }
public HttpRequestMessage CreateRestRequest(GoogleAuthToken authToken, string resource, HttpMethod method) { var request = new HttpRequestMessage(method, resource); request.Headers.Authorization = new AuthenticationHeaderValue(authToken.TokenType, authToken.AccessToken); return request; }