public async Task <bool> ExpiracionId([FromBody] CambioPasswordDto cambioPasswordDto) { //1. Buscar el usuario. //2. Validar Id expiración. var validarId = await cambioPasswordRepository.Find(x => x.Id == cambioPasswordDto.Id && x.Activo, x => x.Usuario); if (validarId == null) { return(false); } TimeSpan span = DateTime.Now - validarId.FechaCreacion; if (validarId.MinutosExpiracion < span.TotalMinutes) { // Activo = false. validarId.Activo = false; await cambioPasswordRepository.Edit(validarId); //Enviar nuevo correo. SendEmailUtils.SendEmail(validarId.Usuario.Correo, $"({validarId.Usuario.Nombres} {validarId.Usuario.Apellidos})", validarId.Id.ToString()); return(false); } return(true); }
public async Task <IActionResult> Create([FromBody] UserDto user) { var validar = await userRepository.Find(x => x.Correo == user.Correo); if (validar != null) { return(BadRequest("El correo ya existe")); } user.Password = user.NroIdentificacion.ToString(); byte[] passwordHash, passwordSalt; Utils.CreatePasswordHash(user.Password, out passwordHash, out passwordSalt); var usuario = new User { Id = Guid.NewGuid(), NroIdentificacion = user.NroIdentificacion, Nombres = user.Nombres, Apellidos = user.Apellidos, Correo = user.Correo, Telefono = user.Telefono, FechaCreacion = DateTime.Now, FechaModificacion = DateTime.Now, PasswordHash = passwordHash, PasswordSalt = passwordSalt, Activo = user.Activo, CambioPassword = false }; usuario = await userRepository.Add(usuario); var objCambioPassword = await cambioPasswordRepository.Add(new CambioPassword { Id = Guid.NewGuid(), MinutosExpiracion = 60, Usuario = usuario, Activo = true, FechaCreacion = DateTime.Now, FechaModificacion = DateTime.Now }); SendEmailUtils.SendEmail(usuario.Correo, $"({usuario.Nombres} {usuario.Apellidos})", objCambioPassword.Id.ToString()); return(Ok()); }