public async Task <IActionResult> Crear(string idUsuario, int idAnuncio, [FromForm] CreacionImagenRequest request) { try { var responseUser = await ValidarPropietario(idUsuario); if (!responseUser.Success) { return(StatusCode(StatusCodes.Status403Forbidden, responseUser.Message)); } var response = await _imagenService.CrearImagenAsync(idAnuncio, request); if (!response.Success) { return(StatusCode(StatusCodes.Status400BadRequest, response.Message)); } return(Created("", response)); } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } }
private ImagenEntity UploadingToCloudinary(CreacionImagenRequest request) { var file = request.Imagen; var uploadResult = new ImageUploadResult(); if (file.Length > 0) { using (var stream = file.OpenReadStream()) { var uploadParams = new ImageUploadParams() { File = new FileDescription(file.Name, stream), Transformation = new Transformation().Width(500).Height(500).Crop("fill").Gravity("face") }; uploadResult = _cloudinary.Upload(uploadParams); } } var imagenEntity = _mapper.Map <ImagenEntity>(request); imagenEntity.ImagenUrl = uploadResult.Uri.ToString(); imagenEntity.IdPublico = uploadResult.PublicId; return(imagenEntity); }
public async Task <BaseServiceResponse <int> > CrearImagenAsync(int idAnuncio, CreacionImagenRequest request) { BaseServiceResponse <int> response = new BaseServiceResponse <int>(); var imagenEntity = UploadingToCloudinary(request); if (string.IsNullOrEmpty(imagenEntity.ImagenUrl)) { response.Message = "La imagen no se pudo subir a la nube."; return(response); } imagenEntity.IdAnuncio = idAnuncio; var idImagen = await _imagenRepository.CrearImagenAsync(imagenEntity); if (idImagen == default) { response.Message = "La imagen no se pudo registrar."; return(response); } response.Message = "La imagen se registró exitosamente."; response.Success = true; response.Data = idImagen; return(response); }