Пример #1
0
        public override async Task <bool> MoveFolderIntoAnotherDirectory(MoveFolderContentFolderRequestModel model)
        {
            WebRequest.DefaultRequestHeaders.Clear();
            WebRequest.DefaultRequestHeaders.Add("Authorization", "Bearer " + model.AccessToken);

            var fromUri = ApiRoot + model.OldPath;

            #region GetDestinationJson
            var toUri           = ApiRoot + model.NewPath;
            var responseMessage = await WebRequest.GetAsync(toUri);

            var destinationMetadata = await responseMessage.Content.ReadAsStringAsync();

            var destination = JsonConvert.DeserializeObject <CloudMetaData>(destinationMetadata);
            #endregion
            var request = new HttpMethod("PATCH");

            var httpRequest = new HttpRequestMessage(request, fromUri)
            {
                Content = new StringContent($"{{\"parentReference\": {{\"id\":\"{destination.Id}\" }},\"name\": \"{model.FolderName}\"}}", Encoding.UTF8, "application/json")
            };

            var moveFolderToFolderResponse = await WebRequest.SendAsync(httpRequest);

            return(moveFolderToFolderResponse.IsSuccessStatusCode);
        }
Пример #2
0
        public override async Task <bool> MoveFolderContentIntoAnotherDirectory(MoveFolderContentFolderRequestModel model)
        {
            var files = await GetChildren(new CloudStorageApiRequestModel
            {
                AccessToken = model.AccessToken,
                Path        = $"{model.OldPath}",
                FolderName  = model.FolderName
            });

            if (files.Count == 0)
            {
                return(true);
            }

            var addFolderResult = await AddFolder(new CloudStorageApiRequestModel
            {
                AccessToken = model.AccessToken,
                FolderName  = model.FolderName,
                Path        = $"{model.NewPath}/P{model.ProjectNumber}"
            });

            if (!addFolderResult.IsSuccessStatusCode)
            {
                return(false);
            }

            var folder = JsonConvert.DeserializeObject <CreateFolderResponseModel>(await addFolderResult.Content.ReadAsStringAsync());

            foreach (var file in files)
            {
                var moveFileToFolderResult = await MoveFileToFolder(new MoveFileRequestModel(folder.Id, file.Name));

                if (!moveFileToFolderResult.IsSuccessStatusCode)
                {
                    return(false);
                }
            }

            foreach (var file in files)
            {
                var deleteOldFolderResult = await DeleteElement(new CloudStorageApiRequestModel
                {
                    AccessToken = model.AccessToken,
                    Path        = model.OldPath,
                    ElementName = file.Name
                });

                if (!deleteOldFolderResult.IsSuccessStatusCode)
                {
                    return(false);
                }
            }

            var result = await DeleteElement(new CloudStorageApiRequestModel
            {
                AccessToken = model.AccessToken,
                Path        = model.OldPath,
                ElementName = string.Empty
            });

            return(result.IsSuccessStatusCode);
        }
Пример #3
0
 public virtual Task <bool> MoveFolderIntoAnotherDirectory(MoveFolderContentFolderRequestModel model)
 {
     throw new System.NotImplementedException();
 }