예제 #1
0
        public IHttpActionResult Postusuario(usuario usuario)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (usuario.productos == null)
            {
            }
            else
            {
                int count = usuario.productos.Count;

                for (int i = 0; i < usuario.productos.Count; i++)
                {
                    producto pproducto = usuario.productos.ElementAt(i);
                    usuario.productos.Remove(pproducto);
                    usuario.productos.Add(db.productos.Find(pproducto.id_producto));
                }
            }
            usuario.password = AES256.encryptPassword(usuario.password);
            db.usuarios.Add(usuario);
            db.SaveChanges();
            historial_contrasennas historial = new historial_contrasennas();

            historial.id_usuario = usuario.id_usuario;
            historial.contraseña = usuario.password;
            db.historial_contrasennas.Add(historial);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = usuario.id_usuario }, usuario));
        }
예제 #2
0
        public IHttpActionResult updateUserAndPassword(int id, usuario usuario)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != usuario.id_usuario)
            {
                return(BadRequest());
            }
            usuario.password        = AES256.encryptPassword(usuario.password);
            usuario.rol             = db.rols.Find(usuario.id_rol);
            db.Entry(usuario).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!usuarioExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
예제 #3
0
        public IHttpActionResult Login(usuario usuario)
        {
            string  result = AES256.encryptPassword(usuario.password);
            usuario user   = db.usuarios.FirstOrDefault(u => u.correo == usuario.correo && u.password == result);

            if (user == null)
            {
                return(NotFound());
            }
            user.rol = db.rols.Find(user.id_rol);
            db.Entry(user.rol).Collection(p => p.permisos).Load();
            sesion sesion = new sesion();

            sesion.fecha      = DateTime.Now;
            sesion.id_usuario = user.id_usuario;
            db.sesions.Add(sesion);
            Bitacora.getInstance().addBitacora(BitacoraActions.SIGN_IN, user.id_usuario);
            db.SaveChanges();
            return(Ok(user));
        }