public IHttpActionResult generar(ProyectoRegistro proyecto) { try { ProyectoRegistro proyectoE = new ProyectoRegistro(); Cascaron cascaron = new Cascaron(); ProyectoToken token = new ProyectoToken(); proyectoE = new LProyecto().validar(proyecto); if (proyectoE != null) { if (new LProyecto().getTokenByUser(proyectoE.IdUsuario) == null) { new LProyecto().generarToken(proyectoE.Correo); cascaron.Token1 = token; cascaron.Mensaje = "Recibira un correo con el enlace para continuar con el proceso"; } else if (token.Vigencia < DateTime.Now) { return(BadRequest("Token Vencido")); } } else { return(BadRequest("El usuario no existe, por favor verifique")); } return(Ok(cascaron.Mensaje)); }catch (Exception ex) { return(BadRequest("error de conexion")); } }
public ProyectoRegistro mostrarDatosLogin(string usuario) { ProyectoRegistro registro = new ProyectoRegistro(); registro.Usuario = usuario; return(new DaoProyecto().mostrarDatosLogin(usuario)); }
public async Task <IHttpActionResult> login(LoginProyectoRequest login) { if (!ModelState.IsValid) { string error = "Entradas incorrectas"; foreach (var state in ModelState) { foreach (var item in state.Value.Errors) { error += $" {item.ErrorMessage}"; } } return(BadRequest(error)); } ProyectoRegistro usuario = await new LProyecto().login(login); if (usuario == null) { string mensaje = "Correo y/o contraseña incorrecta"; return(BadRequest(mensaje)); } else { var token = TokenGeneratorProyecto.GenerateTokenJwt(usuario); return(Ok(token)); } }
//Validar existencia correo para registro (S) public ProyectoRegistro validarExistenciaCorreos(ProyectoRegistroRequest usuarioER) { ProyectoRegistro registroE = new ProyectoRegistro(); registroE.Correo = usuarioER.correo; return(new MapeoProyecto().registro.Where(x => x.Correo.Equals(usuarioER.correo)).FirstOrDefault()); }
public async Task <IHttpActionResult> putActulizarPerfil([FromBody] JObject usuarioInformacion, int idUsuario) { try { ProyectoRegistro registroU = new ProyectoRegistro(); registroU.IdUsuario = idUsuario; registroU.Nombre = usuarioInformacion["nombre"].ToString(); registroU.Apellido = usuarioInformacion["apellido"].ToString(); registroU.Celular = usuarioInformacion["celular"].ToString(); registroU.Correo = usuarioInformacion["correo"].ToString(); registroU.Usuario = usuarioInformacion["usuario"].ToString(); registroU.Contrasena = usuarioInformacion["contrasena"].ToString(); registroU.FechaNacimiento = DateTime.Parse(usuarioInformacion["fechaNacimiento"].ToString()); registroU.Direccion = usuarioInformacion["direccion"].ToString(); registroU.Cedula = usuarioInformacion["cedula"].ToString(); await new LProyecto().modificar(registroU); return(Ok("Sus datos han sido actualizados")); }catch (Exception ex) { return(BadRequest("revise las entradas")); } }
//Trae el usuario (S) public ProyectoRegistro mostrarDatosRecuperar(ProyectoRegistro usuario) { using (var bd = new MapeoProyecto()) { ProyectoRegistro usuario1 = new MapeoProyecto().registro.Where(x => x.Correo.ToUpper().Equals(usuario.Correo.ToUpper())).FirstOrDefault(); return(usuario1); } }
public ProyectoRegistro mostrarDatosRecuperar(string correo) //S { ProyectoRegistro usuario = new ProyectoRegistro(); usuario.Correo = correo; return(new DaoProyecto().mostrarDatosRecuperar(usuario)); }
public ProyectoRegistro mostrarDatos(string correo, string usuario1) //S { ProyectoRegistro usuario = new ProyectoRegistro(); usuario.Correo = correo; usuario.Usuario = usuario1; return(new DaoProyecto().mostrarDatos(usuario)); }
//Validacion de login usuario (S) public async Task <ProyectoRegistro> login(LoginProyectoRequest usuarioR) { using (var db = new MapeoProyecto()) { ProyectoRegistro usuario = await db.registro.Where(x => x.Correo.ToUpper().Equals(usuarioR.correo.ToUpper()) && x.Contrasena.Equals(usuarioR.contrasena)) .FirstOrDefaultAsync(); return(usuario); } }
public async Task <IHttpActionResult> getMostrarDatos(int idUsuario) { try { ProyectoRegistro proyecto = await new LProyecto().mostrarRegistro(idUsuario); return(Ok(proyecto)); }catch (Exception ex) { return(BadRequest("el usuario no existe")); } }
//Eliminacion de registro (S) public async Task eliminarRegistro(ProyectoRegistro proyecto) { using (var db = new MapeoProyecto()) { ProyectoRegistro usuarioAnterior = db.registro.Where(x => x.IdUsuario == proyecto.IdUsuario).FirstOrDefault(); usuarioAnterior.Sesion = "inactivo"; db.registro.Attach(usuarioAnterior); var entry = db.Entry(usuarioAnterior); entry.State = EntityState.Modified; await db.SaveChangesAsync(); } }
public IHttpActionResult getMostrarDatos(ProyectoRegistro usuario) { var proyecto = new LProyecto().mostrarDatos(usuario.Correo, usuario.Usuario); if (proyecto == null) { string mensaje = "Correo y/o usuario incorrecta"; return(BadRequest(mensaje)); } else { return(Ok(proyecto)); } }
//Modifica contraseña (recuperar) public async Task updateClave(ProyectoRegistro proyecto) { using (var db = new MapeoProyecto()) { ProyectoRegistro usuarioAnterior = db.registro.Where(x => x.IdUsuario == proyecto.IdUsuario).First(); usuarioAnterior.Contrasena = proyecto.Contrasena; db.registro.Attach(usuarioAnterior); var entry = db.Entry(usuarioAnterior); entry.State = EntityState.Modified; await db.SaveChangesAsync(); } }
public async Task <IHttpActionResult> putActulizarSesion(int idUsuario) { try { ProyectoRegistro proyecto = new ProyectoRegistro(); proyecto.IdUsuario = idUsuario; await new LProyecto().eliminarRegistro(proyecto); return(Ok("tu cuenta a sido eliminada")); }catch (Exception ex) { return(BadRequest("el usuario no existe")); } }
public async Task <IHttpActionResult> recuperar([FromBody] JObject contrasena) { try { ProyectoRegistro proyecto = new ProyectoRegistro(); ProyectoToken token = new ProyectoToken(); string tokenRecibido = contrasena["tokenRecibido"].ToString(); proyecto.Contrasena = contrasena["Contrasena"].ToString(); token = new LProyecto().validarToken(tokenRecibido); proyecto.IdUsuario = token.Id_usuario; await new LProyecto().recuperar(proyecto); return(Ok("'Su contraseña fue actualizada")); }catch (Exception ex) { return(BadRequest("su token no es valido")); } }
//Inserta registro Usuario (S) public async Task insertarUsuario(ProyectoRegistroRequest usuarioR) { using (var db = new MapeoProyecto()) { ProyectoRegistro registro = new ProyectoRegistro(); registro.Nombre = usuarioR.nombre; registro.Apellido = usuarioR.apellido; registro.Celular = usuarioR.celular; registro.Correo = usuarioR.correo; registro.Usuario = usuarioR.usuario; registro.Contrasena = usuarioR.contrasena; registro.FechaNacimiento = usuarioR.fechaNacimiento; registro.Direccion = usuarioR.direccion; registro.Cedula = usuarioR.cedula; registro.Sesion = "activo"; db.registro.Add(registro); await db.SaveChangesAsync(); } }
//Modifica registro (S) public async Task modificarUsuario(ProyectoRegistro usuario) { using (var db = new MapeoProyecto()) { ProyectoRegistro usuarioAnterior = db.registro.Where(x => x.IdUsuario == usuario.IdUsuario).FirstOrDefault(); usuarioAnterior.Nombre = usuario.Nombre; usuarioAnterior.Apellido = usuario.Apellido; usuarioAnterior.Celular = usuario.Celular; usuarioAnterior.Correo = usuario.Correo; usuarioAnterior.Usuario = usuario.Usuario; usuarioAnterior.Contrasena = usuario.Contrasena; usuarioAnterior.FechaNacimiento = usuario.FechaNacimiento; usuarioAnterior.Direccion = usuario.Direccion; usuarioAnterior.Cedula = usuario.Cedula; db.registro.Attach(usuarioAnterior); var entry = db.Entry(usuarioAnterior); entry.State = EntityState.Modified; await db.SaveChangesAsync(); } }
public static string GenerateTokenJwt(ProyectoRegistro usuario) { //TODO: appsetting for Demo JWT - protect correctly this settings //Llaves para permitir manipulación o cambios var secretKey = ConfigurationManager.AppSettings["JWT_SECRET_KEY"]; var audienceToken = ConfigurationManager.AppSettings["JWT_AUDIENCE_TOKEN"]; var issuerToken = ConfigurationManager.AppSettings["JWT_ISSUER_TOKEN"]; var expireTime = ConfigurationManager.AppSettings["JWT_EXPIRE_MINUTES"]; var securityKey = new SymmetricSecurityKey(System.Text.Encoding.Default.GetBytes(secretKey)); var signingCredentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256Signature); // create a claimsIdentity ClaimsIdentity claimsIdentity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, usuario.Usuario), new Claim(ClaimTypes.Email, usuario.Correo) }); // create token to the user var tokenHandler = new System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler(); //Se crea objeto que tiene el estandar JWT var jwtSecurityToken = tokenHandler.CreateJwtSecurityToken( audience: audienceToken, issuer: issuerToken, subject: claimsIdentity, notBefore: DateTime.Now, //fecha de creación del token expires: DateTime.Now.AddMinutes(Convert.ToInt32(expireTime)), //fecha de expiración de token signingCredentials: signingCredentials); var jwtTokenString = tokenHandler.WriteToken(jwtSecurityToken); ProyectoTokenLogin token = new ProyectoTokenLogin(); token.FechaGenerado = DateTime.Now; token.FechaVigencia = DateTime.Now.AddMinutes(Convert.ToInt32(expireTime)); token.IdUsuario = usuario.IdUsuario; token.Token = jwtTokenString; new LProyecto().guardarToken(token); return(jwtTokenString); }
public async Task eliminarRegistro(ProyectoRegistro proyecto) //S { await new DaoProyecto().eliminarRegistro(proyecto); }
// (S) public async Task recuperar(ProyectoRegistro proyecto) { await new DaoProyecto().updateClave(proyecto); }
public async Task modificar(ProyectoRegistro usuario) { await new DaoProyecto().modificarUsuario(usuario); }
public ProyectoRegistro validar(ProyectoRegistro proyecto) { return(new DaoProyecto().validarExistencia(proyecto)); }
//Validar existencia del correo public ProyectoRegistro validarExistencia(ProyectoRegistro proyectoE) { return(new MapeoProyecto().registro.Where(x => x.Correo.Equals(proyectoE.Correo) && x.Sesion.Equals("activo")).FirstOrDefault()); }