Beispiel #1
0
        // 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);
            }
        }
Beispiel #2
0
        // 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);
        }