Exemple #1
0
        public List <SlimUser> OnlineUsers()
        {
            List <User>     OnlineUsersDB = _context.users.Where(u => u.ConnectionID != "").Include(u => u.QuizResults).ToList();
            List <SlimUser> OnlineUsers   = new List <SlimUser>();

            foreach (var user in OnlineUsersDB)
            {
                List <SlimQuizResult> SlimQuizResults = new List <SlimQuizResult>();
                foreach (var OneSlimQuizResult in user.QuizResults)
                {
                    SlimQuizResult SlimQuizResult = new SlimQuizResult {
                        QuizResultID = OneSlimQuizResult.QuizResultID,
                        ResultString = OneSlimQuizResult.ResultString,
                        QuizID       = OneSlimQuizResult.QuizID,
                        UserID       = OneSlimQuizResult.UserID
                    };
                    SlimQuizResults.Add(SlimQuizResult);
                }
                SlimUser NewSlimUser = new SlimUser {
                    FirstName    = user.FirstName,
                    LastName     = user.LastName,
                    ConnectionID = user.ConnectionID,
                    UserID       = user.UserID,
                    QuizResults  = SlimQuizResults,
                };
                OnlineUsers.Add(NewSlimUser);
            }
            ;
            return(OnlineUsers);
        }
Exemple #2
0
        public Object SumbitResults([FromBody] QuizResultSubmitModel ResultModel)
        {
            System.Console.WriteLine(ResultModel);
            SlimUser   currentUser    = HttpContext.Session.GetObjectFromJson <SlimUser> ("currentUser");
            int        LoggedUserID   = currentUser.UserID;
            QuizResult ExistingResult = _context.quiz_results.SingleOrDefault(quiz_result => quiz_result.UserID == LoggedUserID && quiz_result.QuizID == ResultModel.QuizID);

            if (ExistingResult == null)
            {
                QuizResult QuizResult = new QuizResult {
                    ResultString = ResultModel.ResultString,
                    QuizID       = ResultModel.QuizID,
                    UserID       = LoggedUserID
                };
                _context.quiz_results.Add(QuizResult);
                _context.SaveChanges();
                QuizResult SavedNewResult = _context.quiz_results.SingleOrDefault(quiz_result => quiz_result.UserID == QuizResult.UserID && quiz_result.QuizID == QuizResult.QuizID);
                if (SavedNewResult != null)
                {
                    SlimQuizResult SlimQuizResult = new SlimQuizResult {
                        QuizResultID = SavedNewResult.QuizResultID,
                        ResultString = SavedNewResult.ResultString,
                        QuizID       = SavedNewResult.QuizID,
                        UserID       = SavedNewResult.UserID
                    };
                    currentUser.QuizResults.Add(SlimQuizResult);
                    HttpContext.Session.SetObjectAsJson("currentUser", currentUser);
                    return(SavedNewResult);
                }
                return(BadRequest("Your quiz failed for some reason"));
            }
            ExistingResult.ResultString = ResultModel.ResultString;
            _context.SaveChanges();
            QuizResult SavedResult = _context.quiz_results.SingleOrDefault(quiz_result => quiz_result.UserID == ExistingResult.UserID && quiz_result.QuizID == ExistingResult.QuizID);

            if (SavedResult != null)
            {
                SlimQuizResult SlimQuizResult = new SlimQuizResult {
                    QuizResultID = ExistingResult.QuizResultID,
                    ResultString = ExistingResult.ResultString,
                    QuizID       = ExistingResult.QuizID,
                    UserID       = ExistingResult.UserID
                };
                //HARDCODED QUIZ RESULT!!! WILL NEED FORLOOP
                currentUser.QuizResults[0] = SlimQuizResult;
                //HARDCODED QUIZ RESULT!!! WILL NEED FORLOOP

                HttpContext.Session.SetObjectAsJson("currentUser", currentUser);

                return(SavedResult);
            }
            return(BadRequest("Your quiz failed for some reason"));
        }
        public Object LoginUser([FromBody] LoginUserModel logUser)
        {
            var currentUser = _context.users.Include(user => user.QuizResults).SingleOrDefault(user => user.Email == logUser.Email);

            if (currentUser == null)
            {
                //SOME ERROR MESSAGE FOR FRONT END
                return(BadRequest("User email does not exist"));
            }
            List <SlimQuizResult> SlimQuizResults = new List <SlimQuizResult>();

            foreach (var OneSlimQuizResult in currentUser.QuizResults)
            {
                SlimQuizResult SlimQuizResult = new SlimQuizResult {
                    QuizResultID = OneSlimQuizResult.QuizResultID,
                    ResultString = OneSlimQuizResult.ResultString,
                    QuizID       = OneSlimQuizResult.QuizID,
                    UserID       = OneSlimQuizResult.UserID
                };
                SlimQuizResults.Add(SlimQuizResult);
            }
            SlimUser NewSlimUser = new SlimUser {
                FirstName    = currentUser.FirstName,
                LastName     = currentUser.LastName,
                ConnectionID = currentUser.ConnectionID,
                UserID       = currentUser.UserID,
                QuizResults  = SlimQuizResults
            };

            //Compare passwords
            // byte[] Salt = Convert.FromBase64String (currentUser.Salt);
            // string HashSaltedPswd = CreatePasswordHash(currentUser.Password, Salt);

            // if (HashSaltedPswd == currentUser.Password){
            if (logUser.Password == currentUser.Password)
            {
                HttpContext.Session.SetObjectAsJson("currentUser", NewSlimUser);
                HttpContext.Session.SetInt32("UserID", currentUser.UserID);
                return(NewSlimUser);
            }
            else
            {
                return(BadRequest("Password does not match!"));
            };
        }