public void Push(GoogleDriveFile item)
 {
     lock (_lock)
     {
         _stack.Push(item);
     }
 }
        public bool TryPop(out GoogleDriveFile item)
        {
            lock (_lock)
            {
                if (_stack.Count == 0)
                {
                    item = null;

                    return false;
                }

                item = _stack.Pop();

                return true;
            }
        }
Beispiel #3
0
 public bool TryPeek(out GoogleDriveFile item)
 {
     return _breadcrumbs.TryPeek(out item);
 }
Beispiel #4
0
 public void Push(GoogleDriveFile item)
 {
     _breadcrumbs.Push(item);
 }
        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);
            }
        }
Beispiel #6
0
        public bool IsChildOf(GoogleDriveFile file)
        {
            if (Parents == null)
            {
                return false;
            }

            if (file == null)
            {
                return Parents
                    .Any(y => y.IsRoot);
            }
            else
            {
                var currentFolderId = file.Id;

                return Parents
                    .Any(x => x.Id == currentFolderId);
            }
        }
 public GoogleFileViewModel(GoogleDriveFile fileModel)
 {
     FileModel = fileModel;
 }