// this method renames the desired file public bool RenameFile(string newName, string fileId) { DAL.Entities.File file = _database.GetRepository <DAL.Entities.File>().Get(fileId); if (file == null) { throw new StatusCodeException($"The file with ID = {fileId} doesn't exists.", StatusCodes.Status404NotFound); } string oldPath = file.Path; string extension = ElementHelperClass.DefineFileExtension(oldPath); string newPath = oldPath.Substring(0, oldPath.LastIndexOf('\\') + 1) + newName + extension; file.Path = newPath; if (!System.IO.File.Exists(newPath)) { System.IO.File.Move(oldPath, newPath); _database.GetRepository <DAL.Entities.File>().Update(file); _database.Save(); return(true); } else { return(false); } }
// this method upload files on the hard drive and saves them in the database public async Task <ICollection <ElementVM> > UploadFiles(IFormFileCollection files, FolderVM parentFolder) { List <ElementVM> elements = new List <ElementVM>(); foreach (var uploadedFile in files) { string path = parentFolder.Path + '\\' + uploadedFile.FileName; if (!System.IO.File.Exists(path)) { DAL.Entities.File file = new DAL.Entities.File { Id = Guid.NewGuid().ToString(), Path = path, IsShared = parentFolder.IsShared, FolderId = parentFolder.Id }; _database.GetRepository <DAL.Entities.File>().Create(file); ElementVM elem = new ElementVM { Id = file.Id, IsFolder = false, ElemName = uploadedFile.FileName, LastModified = DateTime.Now.ToShortDateString(), Type = ElementHelperClass.DefineFileType(ElementHelperClass.DefineFileExtension(uploadedFile.FileName)), Size = ElementHelperClass.Recount(new Tuple <double, ElementVM.Unit>(uploadedFile.Length, ElementVM.Unit.B)), IsShared = file.IsShared }; elements.Add(elem); } using (var fileStream = new FileStream(path, FileMode.Create)) { await uploadedFile.CopyToAsync(fileStream); } } _database.Save(); return(elements); }