public IActionResult Restore([FromBody] FileManagerDirectoryContent[] files) { this.operation.RootFolder(this.baseLocation); string jsonPath = this.basePath + "\\wwwroot\\User\\trash.json"; string jsonData = System.IO.File.ReadAllText(jsonPath); string responseString = ""; List <TrashContents> DeletedFiles = JsonConvert.DeserializeObject <List <TrashContents> >(jsonData) ?? new List <TrashContents>(); foreach (FileManagerDirectoryContent file in files) { TrashContents trashFile = DeletedFiles.Find(x => (x.Container.Equals(file.Id))); string fileLocation = "/Files" + trashFile.Path; string trashPath = "/Trash/" + trashFile.Container; FileManagerResponse response = this.operation.Move(trashPath, fileLocation, new string[] { trashFile.Name }, new string[] { trashFile.Name }, null, null); if ((response.Error == null)) { DeleteDirectory(this.baseLocation + trashPath); DeletedFiles.Remove(trashFile); responseString = "Restored"; } else { responseString = "Restore Failed"; } } jsonData = JsonConvert.SerializeObject(DeletedFiles); System.IO.File.WriteAllText(jsonPath, jsonData); return(Content(responseString)); }
public FileManagerResponse MoveToTrash(FileManagerDirectoryContent[] dataArray) { string jsonPath = this.basePath + "\\wwwroot\\User\\trash.json"; string jsonData = System.IO.File.ReadAllText(jsonPath); List <TrashContents> DeletedFiles = JsonConvert.DeserializeObject <List <TrashContents> >(jsonData) ?? new List <TrashContents>(); PhysicalFileProvider trashOperation = new PhysicalFileProvider(); string root = this.basePath + "\\wwwroot"; trashOperation.RootFolder(root); List <FileManagerDirectoryContent> deletedFiles = new List <FileManagerDirectoryContent>(); foreach (FileManagerDirectoryContent data in dataArray) { string fileLocation = "/Files" + data.FilterPath; DateTime deleteTime = DateTime.Now; string container = deleteTime.ToFileTimeUtc().ToString(); string trashPath = "/Trash/" + container; Directory.CreateDirectory(root + trashPath); FileManagerResponse response = trashOperation.Move(fileLocation, trashPath, new string[] { data.Name }, null, null, null); if ((response.Error == null)) { TrashContents deletedFile = new TrashContents() { Container = container, Data = data, DateDeleted = deleteTime, Name = data.Name, Path = data.FilterPath }; deletedFile.Data.DateModified = deletedFile.DateDeleted; deletedFile.Data.Id = deletedFile.Container; DeletedFiles.Add(deletedFile); deletedFiles.Add(response.Files.First()); } } jsonData = JsonConvert.SerializeObject(DeletedFiles); System.IO.File.WriteAllText(jsonPath, jsonData); return(new FileManagerResponse() { Files = deletedFiles }); }
public FileManagerResponse DeleteFiles(FileManagerDirectoryContent[] files) { this.operation.RootFolder(this.baseLocation); string jsonPath = this.basePath + "\\wwwroot\\User\\trash.json"; string jsonData = System.IO.File.ReadAllText(jsonPath); List <FileManagerDirectoryContent> responseFiles = new List <FileManagerDirectoryContent>(); List <TrashContents> DeletedFiles = JsonConvert.DeserializeObject <List <TrashContents> >(jsonData) ?? new List <TrashContents>(); foreach (FileManagerDirectoryContent file in files) { TrashContents trashFile = DeletedFiles.Find(x => (x.Container.Equals(file.Id))); string trashPath = "/Trash/" + trashFile.Container; DeleteDirectory(this.baseLocation + trashPath); responseFiles.Add(trashFile.Data); DeletedFiles.Remove(trashFile); } jsonData = JsonConvert.SerializeObject(DeletedFiles); System.IO.File.WriteAllText(jsonPath, jsonData); return(new FileManagerResponse() { Files = responseFiles }); }