예제 #1
0
        public IHttpActionResult Post(UsuarioDto usuarioDto)
        {
            if (UserService.ValidateEmail(usuarioDto.Correo) != null)
            {
                return(BadRequest("Esta email ya esta registrado"));
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(Strings.ENTIDAD_INVALIDA));
            }

            var password = UserService.GenerateRandomPassword();

            usuarioDto.Password = PasswordEncryptService.passwordEncrypt(password);

            var userModel = usuarioDto.ToModel();

            _usersRepository.Add(userModel);

            EmailService.SendPasswordForNewUser(userModel.Correo, $"Bienvenido {userModel.Nombre} {userModel.Apellido}, aquí tienes tu contraseña de acceso: {password}");

            usuarioDto.Id = userModel.Id;
            return(Created(
                       Url.Link("DefaultApi", new { controller = "Users", id = usuarioDto.Id }),
                       usuarioDto
                       )); // 201
        }
예제 #2
0
        public Usuario ValidateUser(string correo, string password)
        {
            var _password = PasswordEncryptService.passwordEncrypt(password);

            using (var context = new Context())
            {
                Usuario user = context.Usuarios.FirstOrDefault(u => u.Correo.ToLower() == correo.ToLower() && u.Password == _password);
                return(user);
            }
        }
예제 #3
0
        public IHttpActionResult Post(EmailService email)
        {
            Usuario user = UserService.ValidateEmail(email.mailTo);

            if (user != null)
            {
                var password = UserService.GenerateRandomPassword();
                user.Password = PasswordEncryptService.passwordEncrypt(password);
                _usersRepository.Update(user);
                EmailService.SendPasswordRecoveryMail(email.mailTo, $"Se ha generado una nueva contraseña: {password}");
                return(Ok());
            }
            return(NotFound());
        }
예제 #4
0
        public IHttpActionResult Put(int id, UsuarioDto usuarioDto)
        {
            var usuario = _usersRepository.Get(id);

            if (usuario == null)
            {
                return(BadRequest("Usuario inexistente"));
            }
            if (UserService.ValidateEmail(usuarioDto.Correo) != null)          // if email exists
            {
                if (UserService.OtherUserHaveSameEmail(id, usuarioDto.Correo)) // if other user have same email
                {
                    return(BadRequest("Correo ya en uso"));
                }
            }


            usuario.Nombre   = (usuarioDto.Nombre != null && usuarioDto.Nombre.Length > 0)        ? usuarioDto.Nombre     :  usuario.Nombre;
            usuario.Apellido = (usuarioDto.Apellido != null && usuarioDto.Apellido.Length > 0)      ? usuarioDto.Apellido   : usuario.Apellido;
            usuario.Rfc      = (usuarioDto.Rfc != null && usuarioDto.Rfc.Length > 0)           ? usuarioDto.Rfc        : usuario.Rfc;
            usuario.Correo   = (usuarioDto.Correo != null && usuarioDto.Correo.Length > 0)         ? usuarioDto.Correo     : usuario.Correo;
            usuario.Password = (usuarioDto.Password != null && usuarioDto.Password.Length > 0)     ? PasswordEncryptService.passwordEncrypt(usuarioDto.Password) : usuario.Password;
            usuario.Rol      = (usuarioDto.Rol != null && usuarioDto.Rol.ToString().Length > 0)? usuarioDto.Rol.Value  : usuario.Rol;


            _usersRepository.Update(usuario);

            return(StatusCode(System.Net.HttpStatusCode.NoContent));
        }