public async Task <IActionResult> CrearMensaje(int usuarioId, MensajeACrearDto mensajeACrearDto) { if (usuarioId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } mensajeACrearDto.RemitenteId = usuarioId; var receptor = await _coderos.ObtenerUsuario(mensajeACrearDto.ReceptorId); if (receptor == null) { return(BadRequest("No se pudo encontrar al usuario.")); } var mensaje = _mapper.Map <Mensaje> (mensajeACrearDto); _coderos.Agregar <Mensaje> (mensaje); var mensajeARetornar = _mapper.Map <MensajeACrearDto> (mensaje); if (await _coderos.Guardar()) { return(CreatedAtRoute("ObtenerMensaje", new { id = mensaje.Id }, mensajeARetornar)); } throw new Exception("Error al enviar el mensaje"); }
public async Task <IActionResult> AgregarImagen(int usuarioId, [FromForm] ImagenACrearDto imagenACrearDto) { if (usuarioId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } var usuarioDeRepo = await _repo.ObtenerUsuario(usuarioId); var file = imagenACrearDto.File; var subidaResultados = new ImageUploadResult(); if (file.Length > 0) { using (var stream = file.OpenReadStream()) { var parametrosDeSubida = new ImageUploadParams() { File = new FileDescription(file.Name, stream), Transformation = new Transformation().Width(500).Height(500) .Crop("fill").Gravity("face") }; subidaResultados = cloudinary.Upload(parametrosDeSubida); } } imagenACrearDto.Url = subidaResultados.Uri.ToString(); imagenACrearDto.IdPublica = subidaResultados.PublicId; var imagen = _mapper.Map <Imagen> (imagenACrearDto); if (!usuarioDeRepo.Imagenes.Any(img => img.DePerfil)) { imagen.DePerfil = true; } usuarioDeRepo.Imagenes.Add(imagen); if (await _repo.Guardar()) { var ImagenARetornarDto = _mapper.Map <ImagenARetornarDto> (imagen); return(CreatedAtRoute("ObtenerImagen", new { id = imagen.Id }, ImagenARetornarDto)); } return(BadRequest("No se pudo añadir la imagen")); }
public async Task <IActionResult> ActualizarUsuario(int id, UsuarioEdicionDto usuarioEdicionDto) { if (id != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } var usuarioRepo = await _coderos.ObtenerUsuario(id); _mapper.Map(usuarioEdicionDto, usuarioRepo); if (await _coderos.Guardar()) { return(NoContent()); } throw new Exception($"Error al actualizar usuario {id}"); }