public async Task <bool> UpdateAsync(FileUpdateViewModel model, CancellationToken cancellationToken = default) { if (model is null) { throw new ArgumentNullException(nameof(model)); } var sql = @"UPDATE [dbo].[File] SET [Title] = @title, [Description] = @description, [ModifiedBy] = @modifiedBy, [ModifiedAtUtc] = GETUTCDATE() WHERE [Id] = @fileId"; var commandDefinition = new CommandDefinition(sql, new { fileId = model.FileId, title = model.Name, description = model.Description, modifiedBy = model.ModifiedBy }, cancellationToken: cancellationToken); using (var conn = _connectionFactory.CreateWriteOnlyConnection()) { if (await conn.ExecuteAsync(commandDefinition) == 1) { return(true); } return(false); } }
public void Setup() { _fileCommand = new Mock <IFileCommand>(); _fileRepository = new Mock <IFileRepository>(); _fileUploadValidationService = new Mock <IFileUploadValidationService>(); _configurationProvider = new Mock <IConfigurationProvider>(); _memoryCache = new Mock <IMemoryCache>(); _postedFile = new Mock <HttpPostedFileBase>(); _fileService = new FileService(_fileCommand.Object, _fileRepository.Object, _fileUploadValidationService.Object, _configurationProvider.Object, _memoryCache.Object); _fileWriteViewModel = new Mock <FileWriteViewModel>(); _fileUpdateViewModel = new FileUpdateViewModel(); _fileCommand.Setup(x => x.Create(_fileWriteViewModel.Object)).Returns(_fileId); _fileCommand.Setup(x => x.Update(_fileWriteViewModel.Object)).Returns(_fileId); _fileReadViewModel = new FileReadViewModel() { Id = _fileId }; _validateBlobResult = new ValidateBlobResult(); _fileUploadValidationService.Setup(x => x.ValidateUploadedFile(It.IsAny <HttpPostedFileBase>())).Returns(_validateBlobResult); }
public async Task <ActionResult> UpdateAsync(Guid id, string slug, CancellationToken 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 update for supplied Id"); } if (!(await UserHasFileUpdateAccessAsync(file.Id, cancellationToken))) { return(RedirectToAction("Index", "Home")); } var viewModel = new FileUpdateViewModel { FileId = file.Id, Name = file.Title, Description = file.Description, FolderId = file.ParentFolder, GroupSlug = slug, Breadcrumbs = GetBreadcrumbs(file.ParentFolder, slug, "Edit file"), }; return(View(viewModel)); }
/// <summary> /// Method to update a <see cref="FileReadViewModel"/> in the database. /// </summary> /// <param name="file">The file to create.</param> /// <returns>Bool - success/fail.</returns> public async Task <bool> UpdateAsync(FileUpdateViewModel file, CancellationToken cancellationToken = default) { if (file is null) { throw new ArgumentNullException(nameof(file)); } return(await _fileCommand.UpdateAsync(file, cancellationToken)); }
public async Task <ActionResult> UpdateAsync(Guid id, string slug, FileUpdateViewModel file, CancellationToken cancellationToken = default(CancellationToken)) { if (Guid.Empty == id) { throw new ArgumentOutOfRangeException(nameof(id)); } if (string.IsNullOrWhiteSpace(slug)) { throw new ArgumentNullException(nameof(slug)); } if (file is null) { throw new ArgumentNullException(nameof(file)); } var fileFromDb = await _fileService.GetFileAsync(id, cancellationToken); if (fileFromDb is null) { throw new ApplicationException("No file found for update for supplied Id"); } if (ModelState.IsValid) { if (!(await UserHasFileUpdateAccessAsync(id, cancellationToken))) { return(RedirectToAction("Index", "Home")); } file.FileId = id; file.ModifiedBy = _membershipService.GetUser(System.Web.HttpContext.Current.User.Identity.Name, true).Id; if (await _fileService.UpdateAsync(file, cancellationToken)) { return(RedirectToRoute("GroupFileUrls", new { slug = slug, tab = Constants.GroupFilesTab, id = id })); } } file.GroupSlug = slug; file.Breadcrumbs = GetBreadcrumbs(fileFromDb.ParentFolder, slug, "Edit file"); return(View(file)); }
public async Task <IActionResult> UpdateFile([FromRoute] string sub, [FromRoute] int fileId, FileUpdateViewModel model) { if (sub != User.FindFirst("sub").Value) { return(Forbid()); } var fileEntity = await _context.Files.Include(x => x.OwnerProfile) .Where(f => f.OwnerSub == sub && f.Id == fileId).SingleOrDefaultAsync(); fileEntity.Name = model.Name; fileEntity.MimeType = model.MimeType; await _context.SaveChangesAsync(); return(Ok(fileEntity.ToFileViewModel())); }