public async Task <IHttpActionResult> DeleteFile(string id, DateTime?expired = null) { try { await _log.LogVerbose(WebApiConfig.LogSourceFiles, $"DELETE:{id}, {expired}, Deleting file"); var guid = await _filesRepo.DeleteFile(Models.File.ConvertToStoreId(id), expired); if (guid.HasValue) { await _log.LogVerbose(WebApiConfig.LogSourceFiles, $"DELETE:{id}, {expired}, Deleting file success"); return(Ok(Models.File.ConvertFileId(guid.Value))); } return(NotFound()); } catch (FormatException) { await _log.LogError(WebApiConfig.LogSourceFiles, $"DELETE:{id}, bad request"); return(BadRequest()); } catch (Exception ex) { await _log.LogError(WebApiConfig.LogSourceFiles, new Exception($"DELETE:{id}, Exception:{ex.Message}", ex)); return(InternalServerError(ex)); } }
public async Task <Unit> Handle(Command request, CancellationToken cancellationToken) { var user = await _context.Users.Include(x => x.Images).SingleOrDefaultAsync(x => x.UserName == _userAccessor.GetCurrentUsername()); var image = user.Images.FirstOrDefault(x => x.Id == request.Id); if (image == null) { throw new RestException(HttpStatusCode.NotFound, "Image not found"); } if (image.IsMain) { throw new RestException(HttpStatusCode.BadRequest, "You cannot delete your main image"); } var result = _filesRepository.DeleteFile(image.FileName); if (result == null) { throw new Exception("Problem deleting file"); } user.Images.Remove(image); var success = await _context.SaveChangesAsync() > 0; if (success) { return(Unit.Value); } throw new Exception("Problem saving changes"); }
public async Task Delete(string filePath) { var physicalFilePath = PhysicalBasePath + filePath; File.Delete(physicalFilePath); await FilesRepository.DeleteFile(physicalFilePath); }
public async Task DeleteFileAsync(Guid guid) { var file = await _filesRepository.GetFileAsync(guid); if (file != null) { _blobStorage.DeleteFile(file.Name); _filesRepository.DeleteFile(file); } }
public async Task <IActionResult> OnPostAsync(int id) { Materials = await _db.Delete(id); //удаление записи if (Materials.ImagePath != null) { _fileRepository.DeleteFile(Materials.ImagePath, "Materials"); //удаление фото } TempData["SuccessMessage"] = $"Запись \"{Materials.Name}\" успешно удалена"; //сообщение пользователю return(RedirectToPage("./Index")); }
public async Task <IActionResult> OnPostAsync(int id) { Gallery = await _db.Delete(id); //удаляем запись if (Gallery.ImagePath != null) { _filesRepository.DeleteFile(Gallery.ImagePath, "Gallery"); //удаляем фото } TempData["SuccessMessage"] = $"Запись \"{Gallery.Name}\" успешно удалена"; return(RedirectToPage("./Index")); }
public async Task <IActionResult> OnPostAsync(int id) { if (Products.Profile.ImagesName != null) { _fileRepository.DeleteFile(Products.Profile.ImagesName, "Products"); //удаление фото } Products = await _db.Delete(id); //удаление записи TempData["SuccessMessage"] = $"Запись \"{Products.Name}\" успешно удалена"; return(RedirectToPage("./Index")); }
public async Task <IActionResult> DeleteFile(string fileName, string path) { try { return(Ok(await _fileRepository.DeleteFile(fileName, path))); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } //удаление старого фото и загрузка нового на сервер if (Photo != null) { if (!_filesRepository.CheckMIMEType(Photo)) //проверка типа файла { TempData["MIMETypeError"] = "Разрешены только файлы с типом .jpg .jpeg .png .gif"; return(Page()); } if (Gallery.ImagePath != null) { _filesRepository.DeleteFile(Gallery.ImagePath, "Gallery"); } Gallery.ImagePath = await _filesRepository.UploadFile(Photo, "Gallery"); //загрузка файл на сервер и запись имени файла } try { Gallery = await _db.Update(Gallery); //отправляем запрок к БД на изменение } catch (DbUpdateConcurrencyException) { if (!_db.GalleryExists(Gallery.Id)) { return(NotFound()); } else { throw; } } TempData["SuccessMessage"] = $"Запись \"{Gallery.Name}\" успешно обновлена"; return(RedirectToPage("./Index")); }
public async Task <ActionResult <DeleteFileResponse> > DeleteFile(string bucketName, string fileName) { var response = await _filesRepository.DeleteFile(bucketName, fileName); return(Ok(response)); }
public async Task <IActionResult> OnPostAsync(int id) { if (!ModelState.IsValid) { return(Page()); } //удаление старого фото и загрузка нового на сервер if (Photo != null) { if (!_fileRepository.CheckMIMEType(Photo)) //проверка типа файла { TempData["MIMETypeError"] = "Разрешены только файлы с типом .jpg .jpeg .png .gif"; return(Page()); } if (Products.Profile.ImagesName != null) { _fileRepository.DeleteFile(Products.Profile.ImagesName, "Products"); //удаляем старый файл } Products.Profile.ImagesName = await _fileRepository.UploadFile(Photo, "Products"); //загрузка файл на сервер и запись имени файла } //загрузка галереи if (Gallery_img.Count != 0) { foreach (var item in Gallery_img) //проверка типа файла { if (!_fileRepository.CheckMIMEType(item)) { TempData["MIMETypeErrorGal"] = "Разрешены только файлы с типом .jpg .jpeg .png .gif"; return(Page()); } } foreach (var item in Products.Images) //удаление фото из ФС { _fileRepository.DeleteFile(item.ImageName, "Products", "Gallery"); } await _db.DeleteGallery(Products.Id); //удаляем записи из таблицы Products.Images.Clear(); //Очищаем лист с фото foreach (var item in Gallery_img) //Добавление записей в модель { string imageName = await _fileRepository.UploadFile(item, "Products", "Gallery"); ProductImages productImages = new ProductImages() { ProductsId = Products.Id, ImageName = imageName }; Products.Images.Add(productImages); } } var productToUpdate = await _db.GetProduct(id); if (productToUpdate == null) { return(NotFound()); } try { if (await TryUpdateModelAsync <Products>(productToUpdate, "Products")) { await _db.Update(productToUpdate); //отпраляем запрос к БД на изменение } } catch (DbUpdateConcurrencyException) { if (!_db.ProductsExists(Products.Id)) { return(NotFound()); } else { throw; } } TempData["SuccessMessage"] = $"Запись \"{Products.Name}\" успешно обновлена"; return(RedirectToPage("./Index")); }
public async Task <ActionResult <FileDto> > DeleteFile(string userid, string fileid) { if (!ExternalIdPassedGuidValidation(userid)) { return(StatusCode(StatusCodes.Status400BadRequest, $"Invalid {nameof(userid)}.")); } if (!ExternalIdPassedGuidValidation(fileid)) { return(StatusCode(StatusCodes.Status400BadRequest, $"Invalid {nameof(fileid)}.")); } Files.Models.File file; try { file = await databaseRepository.GetFileAsync(fileid); } catch (Exception ex) { return(StatusCode(StatusCodes.Status400BadRequest, ex.Message)); } if (databaseRepository.IsFileDefault(file)) { return(StatusCode(StatusCodes.Status400BadRequest, "The file can't be deleted.")); } try { if (!await UserExists(userid)) { return(StatusCode(StatusCodes.Status400BadRequest, "Unknown user external id.")); } } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } if (!UserHaveAccessToFile(userid, file)) { return(StatusCode(StatusCodes.Status400BadRequest, $"Access denied to file with external id: {fileid}.")); } try { await mediator.Publish <FileDeletedMessage>(new FileDeletedMessage(fileid)); System.IO.FileInfo fileInf = new System.IO.FileInfo(appEnvironment.WebRootPath + file.Path); if (fileInf.Exists) { fileInf.Delete(); } databaseRepository.DeleteFile(file); await databaseRepository.SaveChangesAsync(); } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } FileDto fileDto; try { fileDto = mapper.Map <FileDto>(file); } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } return(Ok(fileDto)); }