Beispiel #1
0
        public async Task <ActionResult> DeleteAsync(Guid id, string slug, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (id == Guid.Empty)
            {
                throw new ArgumentOutOfRangeException(nameof(id));
            }

            var file = await _fileService.GetFileAsync(id, cancellationToken);

            if (file is null)
            {
                throw new ApplicationException("No file found for delete for supplied Id");
            }

            if (!UserHasFileWriteAccess(file.ParentFolder))
            {
                return(RedirectToAction("Index", "Home"));
            }

            var viewModel = new FileWriteViewModel
            {
                FileId      = file.Id,
                Name        = file.Title,
                Description = file.Description,
                FolderId    = file.ParentFolder,
                Slug        = slug
            };

            return(View(viewModel));
        }
Beispiel #2
0
        public void Delete(FileWriteViewModel file)
        {
            var dbFile = _context.Files.Find(file.FileId);

            dbFile.FileStatus = (int)Status.Recycled;
            _context.SaveChanges();
        }
Beispiel #3
0
        /// <summary>
        /// Method to create a new <see cref="FileReadViewModel"/> in the database.
        /// </summary>
        /// <param name="file">The file to create.</param>
        /// <returns>The file id.</returns>
        public Guid Create(FileWriteViewModel file)
        {
            if (file is null)
            {
                throw new ArgumentNullException(nameof(file));
            }

            return(_fileCommand.Create(file));
        }
Beispiel #4
0
        /// <summary>
        /// Method set the soft delete flag on a file.
        /// </summary>
        /// <param name="id">The id of the file.</param>
        public void Delete(FileWriteViewModel file)
        {
            if (file is null)
            {
                throw new ArgumentNullException(nameof(file));
            }

            _fileCommand.Delete(file);
        }
Beispiel #5
0
        public ActionResult Delete(FileWriteViewModel file)
        {
            if (file is null)
            {
                throw new ArgumentNullException(nameof(file));
            }

            if (!UserHasFileWriteAccess(file.FolderId))
            {
                return(RedirectToAction("Index", "Home"));
            }

            _fileService.Delete(file);
            return(RedirectToRoute("GroupUrls", new { slug = file.Slug, tab = Constants.GroupFilesTab, folder = file.FolderId }));
        }
Beispiel #6
0
        /// <summary>
        /// Method to add a <see cref="File"/> to the database.
        /// </summary>
        /// <param name="file">The <see cref="File"/> to add.</param>
        /// <returns>The file Id.</returns>
        public Guid Create(FileWriteViewModel file)
        {
            var fileCreate = new File
            {
                FileName     = file.Name,
                Title        = file.Name,
                Description  = file.Description,
                CreatedBy    = (Guid)file.CreatedBy,
                CreatedAtUtc = DateTime.UtcNow,
                ParentFolder = file.FolderId,
                FileStatus   = (int)Status.Uploading,
            };

            var createdFile = _context.Files.Add(fileCreate);

            _context.SaveChanges();
            return(createdFile.Id);
        }
Beispiel #7
0
        /// <summary>
        /// Method to update a <see cref="File"/>.
        /// </summary>
        /// <param name="file"></param>
        /// <returns></returns>
        public Guid Update(FileWriteViewModel file)
        {
            var dbFile = _context.Files.Find(file.FileId);

            if (dbFile != null)
            {
                dbFile.Title         = file.Name;
                dbFile.Description   = file.Description;
                dbFile.ModifiedBy    = file.ModifiedBy;
                dbFile.ModifiedAtUtc = DateTime.UtcNow;
                dbFile.FileStatus    = file.UploadStatus;
                dbFile.FileName      = file.FileName;
                dbFile.FileExtension = file.FileExtension;
                dbFile.FileSizeBytes = file.FileSize;
                dbFile.BlobName      = file.FileUrl;
                dbFile.BlobHash      = file.BlobHash;
            }

            _context.SaveChanges();
            return(file.FileId);
        }