예제 #1
0
        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"));
            }
        }
예제 #2
0
        public ProyectoRegistro mostrarDatosLogin(string usuario)
        {
            ProyectoRegistro registro = new ProyectoRegistro();

            registro.Usuario = usuario;
            return(new DaoProyecto().mostrarDatosLogin(usuario));
        }
예제 #3
0
        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());
        }
예제 #5
0
        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);
     }
 }
예제 #7
0
        public ProyectoRegistro mostrarDatosRecuperar(string correo) //S
        {
            ProyectoRegistro usuario = new ProyectoRegistro();

            usuario.Correo = correo;

            return(new DaoProyecto().mostrarDatosRecuperar(usuario));
        }
예제 #8
0
        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);
            }
        }
예제 #10
0
 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();
     }
 }
예제 #12
0
        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();
            }
        }
예제 #14
0
        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"));
            }
        }
예제 #15
0
        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();
            }
        }
예제 #18
0
        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);
        }
예제 #19
0
 public async Task eliminarRegistro(ProyectoRegistro proyecto) //S
 {
     await new DaoProyecto().eliminarRegistro(proyecto);
 }
예제 #20
0
 //  (S)
 public async Task recuperar(ProyectoRegistro proyecto)
 {
     await new DaoProyecto().updateClave(proyecto);
 }
예제 #21
0
 public async Task modificar(ProyectoRegistro usuario)
 {
     await new DaoProyecto().modificarUsuario(usuario);
 }
예제 #22
0
 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());
 }