From d7573d64a56e5317f1ac79c38399ed829ecb8f1e Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Thu, 5 Sep 2019 21:01:44 +0100 Subject: [PATCH] simplify deletion --- .../Blogspot/FileSystemApiController.cs | 32 +++---------------- src/Yavsc/Helpers/FileSystemHelpers.cs | 19 +++++++---- 2 files changed, 18 insertions(+), 33 deletions(-) diff --git a/src/Yavsc/ApiControllers/Blogspot/FileSystemApiController.cs b/src/Yavsc/ApiControllers/Blogspot/FileSystemApiController.cs index 8cc1676f..e4f4e5cb 100644 --- a/src/Yavsc/ApiControllers/Blogspot/FileSystemApiController.cs +++ b/src/Yavsc/ApiControllers/Blogspot/FileSystemApiController.cs @@ -141,43 +141,21 @@ namespace Yavsc.ApiControllers return Ok(); } - - [HttpDelete] - [Route("/api/fsc/rm/{*id}")] - public async Task Delete ([ValidRemoteUserFilePath] string id) + [HttpDelete("{*id}")] + public IActionResult RemoveDirOrFile ([ValidRemoteUserFilePath] string id) { if (!ModelState.IsValid) return new BadRequestObjectResult(ModelState); - var user = dbContext.Users.Single( - u => u.Id == User.GetUserId() - ); - try { - user.DeleteUserFile(id); - await dbContext.SaveChangesAsync(User.GetUserId()); - } - catch (Exception ex) - { - return new BadRequestObjectResult( - new FsOperationInfo { - Done = false, - Error = ex.Message - }); - } - return Ok(new { deleted=id }); - } - [HttpDelete] - [Route("/api/fsc/rmdir/{*id}")] - public IActionResult RemoveDir ([ValidRemoteUserFilePath] string id) - { - if (!ModelState.IsValid) return new BadRequestObjectResult(ModelState); var user = dbContext.Users.Single( u => u.Id == User.GetUserId() ); + try { - var result = user.DeleteUserDir(id); + var result = user.DeleteUserDirOrFile(id); if (!result.Done) return new BadRequestObjectResult(result); } + catch (Exception ex) { return new BadRequestObjectResult( diff --git a/src/Yavsc/Helpers/FileSystemHelpers.cs b/src/Yavsc/Helpers/FileSystemHelpers.cs index c78a6312..cf0a9815 100644 --- a/src/Yavsc/Helpers/FileSystemHelpers.cs +++ b/src/Yavsc/Helpers/FileSystemHelpers.cs @@ -104,17 +104,24 @@ namespace Yavsc.Helpers user.DiskUsage -= fi.Length; } - public static FsOperationInfo DeleteUserDir(this ApplicationUser user, string dirName) + public static FsOperationInfo DeleteUserDirOrFile(this ApplicationUser user, string dirName) { var root = Path.Combine(AbstractFileSystemHelpers.UserFilesDirName, user.UserName); if (string.IsNullOrEmpty(dirName)) - return new FsOperationInfo { Done = false, Error = "specify a dir name"} ; + return new FsOperationInfo { Done = false, Error = "specify a directory or file name"} ; var di = new DirectoryInfo(Path.Combine(root, dirName)); - if (!di.Exists) return new FsOperationInfo { Done = false, Error = "non existent"} ; - if (di.GetDirectories().Length>0 || di.GetFiles().Length>0) - return new FsOperationInfo { Done = false, Error = "not eñpty"} ; - di.Delete(); + if (!di.Exists) { + var fi = new FileInfo(Path.Combine(root, dirName)); + if (!fi.Exists) return new FsOperationInfo { Done = false, Error = "non existent"} ; + fi.Delete(); + user.DiskUsage -= fi.Length; + } + else { + if (di.GetDirectories().Length>0 || di.GetFiles().Length>0) + return new FsOperationInfo { Done = false, Error = "not eñpty"} ; + di.Delete(); + } return new FsOperationInfo { Done = true }; }