Beispiel #1
0
        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));
        }
Beispiel #2
0
        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."));
        }