public IActionResult Create([FromForm] CreateResidenceRequest request) { if (ModelState.IsValid == false) { return(BadRequest("Invalid Request")); } var residence = _residencesService.Create(request.Name, request.Address, request.Description); var file = request.File; var uploadFilesPath = _appConfiguration.FileStorageBasePath; if (!Directory.Exists(uploadFilesPath)) { Directory.CreateDirectory(uploadFilesPath); } string fileName; string fileNameThumb; if (file == null || file.Length == 0) { var defaultImage = Path.Combine(Directory.GetCurrentDirectory(), "Resources", "images", "residence.jpg"); var defaultThumbnail = Path.Combine(Directory.GetCurrentDirectory(), "Resources", "images", "residence_thumb.jpg"); fileName = residence.Id + Path.GetExtension(defaultImage); fileNameThumb = residence.Id + "_thumb" + Path.GetExtension(defaultThumbnail); System.IO.File.Copy(defaultImage, Path.Combine(uploadFilesPath, fileName), true); System.IO.File.Copy(defaultThumbnail, Path.Combine(uploadFilesPath, fileNameThumb), true); } else { if (ImagesUtils.IsValid(file.Length) == false) { return(BadRequest("Max file size exceeded.")); } if (ImagesUtils.IsValid(file.FileName) == false) { return(BadRequest("Invalid file type.")); } UploadImages(residence, file, uploadFilesPath, out fileName, out fileNameThumb); } _residencesService.UpdateFileName(residence.Id, fileName, fileNameThumb); Logger.Info("Product created with code: " + request.Name + " -> id: " + residence.Id); return(Ok(residence.Id)); }
public IActionResult Update(int id, [FromForm] EditResidenceRequest request) { if (ModelState.IsValid == false) { return(BadRequest("Invalid Request")); } // map dto to entity and set id var residence = _residencesService.Get(id); if (residence == null) { return(NotFound("Product not found")); } _residencesService.Update(id, request.Name, request.Address, request.Description, request.IsAvailable); var file = request.File; var uploadFilesPath = _appConfiguration.FileStorageBasePath; if (!Directory.Exists(uploadFilesPath)) { Directory.CreateDirectory(uploadFilesPath); } if (file != null && file.Length > 0) { if (ImagesUtils.IsValid(file.Length) == false) { return(BadRequest("Max file size exceeded.")); } if (ImagesUtils.IsValid(file.FileName) == false) { return(BadRequest("Invalid file type.")); } UploadImages(residence, file, uploadFilesPath, out var fileName, out var fileNameThumb); _residencesService.UpdateFileName(id, fileName, fileNameThumb); } Logger.Info("Residence updated with name: " + request.Name + " -> id: " + residence.Id); return(Ok(residence.Id)); }
private void UploadImages(Residence residence, IFormFile file, string uploadFilesPath, out string fileName, out string fileNameThumb) { fileName = residence.Id + Path.GetExtension(file.FileName); fileNameThumb = residence.Id + "_thumb" + Path.GetExtension(file.FileName); var filePath = Path.Combine(uploadFilesPath, fileName); using (var stream = new FileStream(filePath, FileMode.Create)) { file.CopyTo(stream); Logger.Info("Image update and uploaded to: " + filePath); var thumb = ImagesUtils.GetReducedImage(_appConfiguration.ThumbnailMaxWidth, _appConfiguration.ThumbnailMaxHeight, stream); thumb.Save(Path.Combine(uploadFilesPath, fileNameThumb)); Logger.Info("Image thumbnail updated and uploaded to: " + Path.Combine(uploadFilesPath, fileNameThumb)); } }