Example #1
0
        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));
        }
Example #2
0
        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
            });
        }
Example #3
0
        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
            });
        }