public async Task <IActionResult> GetUsuario(int id) { var usuario = await Db.GetUsuario(id); //Clase destino //Clase Origen var usuarioADevolver = Mapper.Map <UsuarioDetallesDTO>(usuario); return(Ok(usuarioADevolver)); }
public async Task <IActionResult> AgregarFotoAUsuario(int id, [FromForm] PhotoACrearDTO photoDTO) { if (id != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } var usuario = await repo.GetUsuario(id); var archivo = photoDTO.Archivo; // UTILIZANDO LA LIBRERIA DE CLOUDINARY var resultado = new ImageUploadResult(); if (archivo.Length > 0) { using (var stream = archivo.OpenReadStream()) { // File es el nombre del atributo de la clase ImageUploadParams (Propio de Cloudinary) var parametrosDeSubida = new ImageUploadParams() { File = new FileDescription(archivo.Name, stream), Transformation = new Transformation().Width(500).Height(500).Crop("fill").Gravity("face") }; resultado = cloudinary.Upload(parametrosDeSubida); } } photoDTO.Url = resultado.Uri.ToString(); photoDTO.PublicId = resultado.PublicId; var photo = mapper.Map <Photo>(photoDTO); if (!usuario.FotosPublicas.Any(u => u.EsPrincipal)) { photo.EsPrincipal = true; } usuario.FotosPublicas.Add(photo); if (await repo.GuardarCambios()) { var photoADevolver = mapper.Map <PhotoADevolverDTO>(photo); return(CreatedAtRoute("ObtenerPhoto", new { id = usuario.Id, idPhoto = photo.id }, photoADevolver)); // id es el parametro de id de usuario que requiere la ruta, idPhoto es la que requiere ObtenerPhoto } return(BadRequest("No se pudo agregar la foto.")); }