Exemple #1
0
        public User saveUser(User u)
        {
            if (u == null)
            {
                throw new Exception("User must be given...");
            }
            dc.Users.InsertOnSubmit(u);
            dc.SubmitChanges();

            return u;
        }
Exemple #2
0
 /**
  * --------------------------------------SELECT ------------------------------------------*
  * select query's:
  ** joins worden nog niet gedaan... gewoon elke functie in volgorde oproepen werkt ook... **
  **/
 public List<Quiz> getAllQuizzes(User u)
 {
     if (u == null)
     {
         throw new Exception("User must be given...");
     }
     var result = (from q in dc.Quizs
                   where q.FK_Users == u.User_Id
                   select q).ToList<Quiz>();
     return result;
 }
        public ActionResult Manage()
        {
            GymGameModelDataContext dc = new GymGameModelDataContext();
            // user komt normaal gezien uit de sessievar.
            User u = new User();
            u.User_Id = 1;
            QuizMasterModel qmm = new QuizMasterModel();
            List<Quiz> Allquizzes = qmm.getAllQuizzes(u);

            ViewBag.quizzes = Allquizzes;
            return View();
        }
Exemple #4
0
 public List<Result> getResultsByUserAndQuiz(User u, Quiz q)
 {
     if (u == null)
     {
         throw new Exception("User must be given...");
     }
     else if (q == null)
     {
         throw new Exception("Quiz must be given...");
     }
     var result = (from r in dc.Results
                   where r.FK_Quiz == q.Quiz_Id && r.FK_User == u.User_Id
                   select r).ToList<Result>();
     return result;
 }
        public ActionResult New(FormCollection f)
        {
            GymGameModelDataContext dc = new GymGameModelDataContext();
            // uit post halen: gameName, question, a1, a2, a3
            var gamename = f["gameName"];
            var question = f["question"];
            var answer1 = f["a1"];
            var answer2 = f["a2"];
            var answer3 = f["a3"];
            // wegschrijven

            //  Quiz q = new Quiz();
            User u = new User();
            return View();
        }
Exemple #6
0
 public User logIn(User user)
 {
     if (user.FB_UserId == null)
     {
         throw new Exception("Facebook ID must be given...");
     }
     var result = (from u in dc.Users
                   where u.FB_UserId.Equals(user.FB_UserId)
                   select u).Single();
     //check if username has changed:
     if (result.Firstname.Equals(user.Firstname) && result.Lastname.Equals(user.Lastname))
     {
         return result;
     }
     else
     {
         return saveUser(user);
     }
 }
Exemple #7
0
        public CompleteResult(Result res)
        {
            //set the result
            result = res;

            try
            {
                //get the question
                question.Question_Id = res.FK_Question;
                question = gm.getQuestion(question);

                //get the answer
                answer.Answer_Id = res.FK_Answer;
                answer = gm.getAnswer(answer);
                isRight = (answer.Answer_value == 1);

                //if needed, get the right answer
                if (!isRight)
                {
                    Question q = new Question();
                    q.Question_Id = answer.FK_Question;
                    rightAnswer = gm.getRightAnswer(q);
                }

                //get the quiz
                quiz.Quiz_Id = res.FK_Quiz;
                quiz = gm.getQuiz(quiz);

                //get the user
                user.User_Id = res.FK_User;
                user = um.getUser(user.User_Id);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Exemple #8
0
        public int InsertResultByValues(User user, Question question, Answer answer, Quiz quiz)
        {
            /**
             * User komt van Sessie,
             * Question ook (of uit controller)
             * Answer komt van controller (ajax post)
             * Quiz komt van sessie (of controller)
             **/

            //result aanmaken
            Result r = new Result();
            r.FK_User = user.User_Id;
            r.FK_Question = question.Question_Id;
            r.FK_Answer = answer.Answer_Id;
            r.FK_Quiz = quiz.Quiz_Id;

            //posten naar database
            dc.Results.InsertOnSubmit(r);
            dc.SubmitChanges();

            return r.Result_Id;
        }
Exemple #9
0
        public ActionResult Login(FormCollection f)
        {
            var accessToken = f["accessToken"];

            //get name and id from facebookClient
            var client = new Facebook.FacebookClient(accessToken);
            dynamic result = client.Get("me", new { fields = "first_name, last_name, id, username" });

            //access the user model
            UserModel um = new UserModel();

            //check if user exists, if exists: login, if not exists: create
            User u = new User();
            u.Firstname = result.first_name;
            u.Lastname = result.last_name;
            u.FK_Role = 1;
            u.FB_UserId = result.id;
            u.FB_UserName = result.username;

            //important! fb id is now int 64,
            //but cannot convert dynamic result to int, so we use string (for now)
            Boolean exists = um.userExists(u.FB_UserId);
            if (!exists)
            {
                //user does not exist yet, create and log in
                try
                {
                    u = um.saveUser(u);
                    //if the user's id has been set: success
                    if (u.User_Id == 0)
                    {
                        throw new Exception("User wasn't saved into database");
                    }

                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    ViewBag.status = "error";
                    return View();
                }
            }
            else{
                //login the user
                try
                {
                    u = um.logIn(u);
                    //if the user's id has been set: success
                    if (u.User_Id == 0)
                    {
                        throw new Exception("User couldn't be logged in");
                    }

                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    ViewBag.status = "error";
                    return View();
                }
            }

            //set the facebook id in the session: set that the user is logged in
            Session["firstname"] = u.Firstname;
            Session["lastname"] = u.Lastname;
            Session["fbUserId"] = result.id;
            Session["userId"] = u.User_Id;
            Session["fbUserId"] = result.id;
            Session["userLevel"] = u.FK_Role;
            ViewBag.status = "loggedIn";

            return View();
        }
Exemple #10
0
 public List<Result> getResultsByUser(User u)
 {
     if (u == null)
     {
         throw new Exception("User must be given...");
     }
     var result = (from r in dc.Results
                   where r.FK_User == u.User_Id
                   select r).ToList<Result>();
     return result;
 }
Exemple #11
0
 public List<Result> getResultsByUserAndQuiz(User u, Quiz q)
 {
     var result = (from r in dc.Results
                   where r.FK_Quiz == q.Quiz_Id && r.FK_User == u.User_Id
                   select r).ToList<Result>();
     return result;
 }
 partial void InsertUser(User instance);
Exemple #13
0
        public ActionResult Results(String id)
        {
            // checken of de gebruiker al is ingelogd. Indien niet -> /login ->
            if (Session["userId"] == null)
            {
                //gebruiker is niet ingelogd: doorverwijzen naar account/login
                Response.Redirect("~/account/login");
            }

            GameModel gm = new GameModel();
            List<CompleteResult> results = new List<CompleteResult>();

            //kijk of de quiz gegeven is, anders gaan we de status aanpassen naar "no quiz given"
            User u = new User();
            u.User_Id = (int)Session["userId"];

            try
            {
                int quizId = int.Parse(id);
                try
                {
                    //haal resultaten op
                    Quiz q = new Quiz();
                    q.Quiz_Id = quizId;
                    List<Result> res = gm.getResultsByUserAndQuiz(u, q);
                    foreach (Result r in res)
                    {
                        results.Add(new CompleteResult(r));
                    }
                    ViewBag.status = "success";
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    ViewBag.status = "no quiz given";
                }
            }
            catch (Exception e)
            {
                //als we hier terechtkomen is de id een textuele string (bv. "abc")
                try
                {
                    //haal resultaten op
                    Quiz q = new Quiz();
                    q.code = id;
                    q = gm.getQuizByCode(q);
                    List<Result> res = gm.getResultsByUserAndQuiz(u, q);
                    foreach (Result r in res)
                    {
                        results.Add(new CompleteResult(r));
                    }

                    ViewBag.status = "success";
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                    //probeer op naam te zoeken (kleine kans, maar vergroot UX)
                    try
                    {
                        //haal resultaten op
                        Quiz q = new Quiz();
                        q.name = id;
                        q = gm.getQuizByName(q);
                        List<Result> res = gm.getResultsByUserAndQuiz(u, q);
                        foreach (Result r in res)
                        {
                            results.Add(new CompleteResult(r));
                        }

                        ViewBag.status = "success";
                    }
                    catch (Exception exc)
                    {
                        Console.WriteLine(exc);

                        ViewBag.status = "no quiz given";
                    }
                }
            }

            //viewbag data:
            //the number of questions
            int questions = results.Count();
            ViewBag.questions = questions;

            //count the right answers
            int rightAnswers = 0;
            foreach (CompleteResult cr in results)
            {
                if (cr.answer.Answer_value == 1) rightAnswers++;
            }
            ViewBag.rightAnswers = rightAnswers;
            ViewBag.percentage = Math.Round(((double)rightAnswers / questions) * 100);

            return View(results);
        }
 partial void UpdateUser(User instance);
 partial void DeleteUser(User instance);
Exemple #16
0
        public ActionResult Index(String id)
        {
            // Op basis van wat er werd ingegeven achter Game/... wordt er een bepaalde quiz geselecteerd.
            // checken of de gebruiker al is ingelogd. Indien niet -> /login ->
            if (Session["userId"] == null)
            {
                //gebruiker is niet ingelogd: doorverwijzen naar account/login
                Response.Redirect("~/account/login");
            }

            GameModel gm = new GameModel();
            PlayableQuiz playQuiz = new PlayableQuiz();
            //kijk of de quiz gegeven is, anders gaan we de status aanpassen naar "no quiz given"
            int quizId;
            try
            {
                quizId = int.Parse(id);
                try
                {
                    playQuiz = gm.getPlayableQuiz(quizId);
                    ViewBag.status = "success";
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    ViewBag.status = "no quiz given";
                }
            }
            catch (Exception e)
            {
                //als we hier terechtkomen is de id een textuele string (bv. "abc")
                try
                {
                    playQuiz = gm.getPlayableQuizByCode(id);
                    ViewBag.status = "success";
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                    //probeer op naam te zoeken (kleine kans, maar vergroot UX)
                    try
                    {
                        playQuiz = gm.getPlayableQuizByName(id);
                        ViewBag.status = "success";
                    }
                    catch (Exception exc)
                    {
                        Console.WriteLine(exc);
                        ViewBag.status = "no quiz given";
                    }
                }
            }

            //check if the user already played the quiz
            User u = new User();
            if (Session["userId"] != null)
            {
                u.User_Id = (int)Session["userId"];
            }
            List<Result> resultsByUser = gm.getResultsByUser(u);
            foreach (Result r in resultsByUser)
            {
                if (r.FK_Quiz == playQuiz.quiz.Quiz_Id)
                {
                    playQuiz.userPlayed = true;
                }
            }

            return View(playQuiz);
        }
		private void attach_Users(User entity)
		{
			this.SendPropertyChanging();
			entity.Role = this;
		}
		private void detach_Users(User entity)
		{
			this.SendPropertyChanging();
			entity.Role = null;
		}