public Response RenameFile(RenameFileRequest request) { var fileTransferResponse = CheckFileRequest(request); if (fileTransferResponse.ResponseStatus != true) { return(fileTransferResponse); } var path = GetFullFilePath(request.FileName); var newPath = GetFullFilePath(request.NewFileName); try { Logger.Logger.Log($"About to rename {path} to {newPath}"); _fileService.Rename(path, newPath); return(CreateResponse(request.FileName, $"File {path} was renamed to {newPath}", true)); } catch (Exception ex) { Logger.Logger.Log( $"Exception while removing {path}, exception is {ex.Message}, inner exception is {ex.InnerException}"); return(CreateResponse(request.FileName, ex.Message, false)); } }
public override async Task <WopiResponse> RenameFile(RenameFileRequest renameFileRequest) { var userId = WopiSecurity.GetIdentityNameFromToken(renameFileRequest.AccessToken); var wopiFileRepository = new WopiFileRepository(); var response = await wopiFileRepository.RenameFile(renameFileRequest.ResourceId, userId, renameFileRequest.Lock, renameFileRequest.RequestedName); if (response.Item1 == HttpStatusCode.NotFound) { return(renameFileRequest.ResponseNotFound()); } else if (response.Item1 == HttpStatusCode.Conflict) { return(renameFileRequest.ResponseLockConflict(response.Item2)); } else if (response.Item1 == HttpStatusCode.BadRequest) { return(renameFileRequest.ResponseBadRequest(response.Item2)); } else if (response.Item1 == HttpStatusCode.OK) { return(renameFileRequest.ResponseOK(response.Item2)); } else { return(renameFileRequest.ResponseServerError(string.Format("Unknown HTTPStatusCode from WopiFileRepository.RenameFile: {0}", response.Item1))); } }
public Response RenameFile(RenameFileRequest renameFileRequest) { var service = CreateChanel(); var response = service.RenameFile(renameFileRequest); return(response); }
/// <summary> /// Rename the given file /// </summary> /// <param name="libraryId">The id of the library the file is in</param> /// <param name="filePath">The full path of the file</param> /// <param name="newName">The new name of the file</param> /// <returns>A value which indicates if the action was successful</returns> public async Task <bool> RenameFile(string libraryId, string filePath, string newName) { libraryId.ThrowOnNull(nameof(libraryId)); filePath.ThrowOnNull(nameof(filePath)); newName.ThrowOnNull(nameof(newName)); var request = new RenameFileRequest(AuthToken, libraryId, filePath, newName); return(await _webConnection.SendRequestAsync(ServerUri, request)); }
private void SendFileData(FileActionData data) { Logger.Logger.Log($"About to send FileData = {data}"); try { Response response; switch (data.FileActionType) { case FileActionType.Create: { var createRequest = GetCreateFileRequest(data); response = _receiverService.CreateFile(createRequest); break; } case FileActionType.Update: { var updateRequest = GetCreateFileRequest(data); response = _receiverService.UpdateFile(updateRequest); break; } case FileActionType.Delete: { var deleteRequest = new FileRequestBase { FileName = data.FileName, }; response = _receiverService.DeleteFile(deleteRequest); break; } case FileActionType.ChangeName: { var renameRequest = new RenameFileRequest { FileName = data.FileName, NewFileName = data.NewFileName }; response = _receiverService.RenameFile(renameRequest); break; } default: return; } Logger.Logger.Log($"FileData = {data} has been sent with response = {response}"); } catch (Exception ex) { Logger.Logger.Log( $"Exception with FileData = {data}, exception is {ex.Message}, inner exception is {ex.InnerException}"); } }
public HttpResponseMessage RenameFile(RenameFileRequest request) { try { var itemViewModel = DigitalAssetsController.RenameFile(request.FileId, request.NewFileName); return(Request.CreateResponse(HttpStatusCode.OK, itemViewModel)); } catch (FileAlreadyExistsException ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex)); } }
public override async Task <WopiResponse> RenameFile(RenameFileRequest renameFileRequest) { WopiResponse wopiResponse = null; var file = DocumentDBRepository <DetailedFileModel> .GetItem("Files", i => i.id.ToString() == renameFileRequest.ResourceId); // Check for null file if (file != null) { // Make sure the X-WOPI-RequestedName header is included if (renameFileRequest.RequestedName != null) { // Ensure the file isn't locked if (String.IsNullOrEmpty(file.LockValue) || (file.LockExpires != null && file.LockExpires < DateTime.Now)) { // Update the file with a LockValue and LockExpiration file.LockValue = renameFileRequest.Lock; file.LockExpires = DateTime.Now.AddMinutes(30); file.BaseFileName = renameFileRequest.RequestedName; await DocumentDBRepository <FileModel> .UpdateItemAsync("Files", file.id.ToString(), (FileModel)file); // Return success 200 wopiResponse = renameFileRequest.ResponseOK(renameFileRequest.RequestedName); } else if (file.LockValue == renameFileRequest.Lock) { // File lock matches existing lock, so we can change the name file.LockExpires = DateTime.Now.AddMinutes(30); file.BaseFileName = renameFileRequest.RequestedName; await DocumentDBRepository <FileModel> .UpdateItemAsync("Files", file.id.ToString(), (FileModel)file); // Return success 200 wopiResponse = renameFileRequest.ResponseOK(renameFileRequest.RequestedName); } else { // The file is locked by someone else...return mismatch wopiResponse = renameFileRequest.ResponseLockConflict(file.LockValue, String.Format("File locked by {0}", file.LockValue)); } } else { // X-WOPI-RequestedName header wasn't included wopiResponse = renameFileRequest.ResponseBadRequest("X-WOPI-RequestedName header wasn't included in request"); } } else { wopiResponse = renameFileRequest.ResponseNotFound(); } return(wopiResponse); }
private static Response CheckFileRequest(RenameFileRequest file) { var baseStatus = CheckFileRequest((FileRequestBase)file); if (baseStatus.ResponseStatus == false) { return(baseStatus); } return(!string.IsNullOrWhiteSpace(file.NewFileName) ? CreateResponse(file.FileName, "File Is Valid", true) : CreateResponse(file.FileName, "New file name can not be null", false)); }
public JsonResult RenameFile(RenameFileRequest body) { _log.WriteInfo("开始请求接口【file/rename】,请求参数:" + JsonConvert.SerializeObject(body)); WPSBaseModel result = new WPSBaseModel(); try { var request = GetFilterRequest.GetParams(HttpContext.ApplicationInstance.Request); if (!request.Status) { result.code = request.code; result.message = request.message; result.details = request.details; result.hint = request.hint; } else { #region 在测试环境暂时不要将此块房开,由于上面获取文件名是固定的,成功更改文件成功后,不能打开文件 //var fileName = request.FileId == "1000" ? "TestFile.docx" : (request.FileId == "1001" ? "TestFile_v1.docx" : "TestFile_v2.docx"); ////原文件的物理路径 //string filePath = Server.MapPath($"/Files/{fileName}"); //// 移动到的新位置的物理路径(如果还是当前文件夹, 则会重命名文件) //string fileTargetPath = Server.MapPath($"/Files/{body.name}"); ////判断到的新地址是否存在重命名文件 //if (System.IO.File.Exists(fileTargetPath)) //{ // result.code = (int)Enumerator.ErrorCode.文件已存在; // result.message = EnumExtension.GetDescription(Enumerator.ErrorCode.文件已存在); //} //System.IO.File.Move(filePath, fileTargetPath);//2个文件在不同目录则是移动,如果在相同目录下则是重命名 #endregion result.code = (int)Enumerator.ErrorCode.OK; } } catch (Exception ex) { _log.WriteError("【系统异常】-【" + ex.Message + "】", ex); result.code = (int)Enumerator.ErrorCode.ServerError; result.message = Enumerator.ErrorCode.ServerError.ToString(); result.details = result.hint = EnumExtension.GetDescription(Enumerator.ErrorCode.ServerError); } _log.WriteInfo("请求接口【file/rename】完成,返回数据:" + JsonConvert.SerializeObject(result)); return(Json(result)); }
public Task <WPSBaseModel> RenameFile(RenameFileRequest body) { return(Task.Run(() => { var request = FilterRequestForWPS(Request); if (!request.Status) { return new WPSBaseModel { code = request.code, msg = request.msg }; } var result = new WPSBaseModel { code = 200, msg = "success" }; return result; })); }
public abstract Task <WopiResponse> RenameFile(RenameFileRequest renameFileRequest);
public HttpResponseMessage RenameFile(RenameFileRequest request) { var itemViewModel = DigitalAssetsController.RenameFile(request.FileId, request.NewFileName); return(Request.CreateResponse(HttpStatusCode.OK, itemViewModel)); }
/// <summary> /// Rename a file or folder /// </summary> public async Task RenameFile(RenameFileRequest request) { await _apiClient.ExecutePostAsync("files/rename", request); }