Пример #1
0
        public async Task <IActionResult> ActualizarUsuario(int id, [FromBody] UsuarioActualizarDto usuarioActualizarDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var currentUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            var userFromRepo = await _usuario.ObtenerUsuario(new Usuario { Id = id });

            if (userFromRepo == null)
            {
                return(NotFound($"No se pido encontrar el usuario con el ID {id}"));
            }

            if (currentUserId != userFromRepo.Id)
            {
                return(Unauthorized());
            }

            _mapper.Map(usuarioActualizarDto, userFromRepo);

            if (await _usuario.ActualizarUsuario(userFromRepo))
            {
                return(NoContent());
            }

            throw new Exception($"Actualizacion del usuario {id} Fallo");
        }
Пример #2
0
        public async Task <IActionResult> UpdateUsuario(UsuarioActualizarDto usuarioActualizarDto)
        {
            string  errMsg         = $"{nameof(UpdateUsuario)} un error producido mientras se actualiza el usuario";
            Usuario usuarioUpdated = new Usuario();

            if (ModelState.IsValid)
            {
                try
                {
                    Usuario usuario = new Usuario();
                    usuario = _mapper.Map <Usuario>(usuarioActualizarDto);
                    Usuario usuarioTemporal = await _service.GetUsuarioByGuid(usuario.Guid);

                    if (usuarioTemporal.Email == null)
                    {
                        return(StatusCode(Status.Accepted, new
                        {
                            error = "El correo electronico indicado es nulo."
                        }));
                    }

                    if (!usuarioTemporal.Email.Equals(usuario.Email))
                    {
                        return(StatusCode(Status.Accepted, new
                        {
                            error = "Se ha intentado modificar el correo electronico para el usuario indicado."
                        }));
                    }

                    if (!usuarioActualizarDto.NombreUsuario.validarUserName())
                    {
                        return(StatusCode(Status.Accepted, new
                        {
                            error = "El nombre de usuario debe cumplir con el patron correcto."
                        }));
                    }

                    if (!usuarioActualizarDto.Email.validarEmail())
                    {
                        return(StatusCode(Status.Accepted, new
                        {
                            error = "El correo electronico debe cumplir con el patron correcto."
                        }));
                    }

                    usuarioUpdated = await _service.CreateUpdateUsuario(usuario, usuarioActualizarDto.RolId);
                }

                catch (Exception ex)
                {
                    return(StatusCode(Status.Accepted, new
                    {
                        error = errMsg + ex
                    }));
                }
            }
            return(StatusCode(Status.OK, usuarioUpdated));
        }