Example #1
0
        public MyResults GetDetails()
        {
            var myCookies = new List <MyCookie>();

            for (var i = 0; i < HttpContext.Current.Request.Cookies.Count; i++)
            {
                myCookies.Add(new MyCookie
                {
                    key   = HttpContext.Current.Request.Cookies[i].Name,
                    value = HttpUtility.UrlDecode(HttpContext.Current.Request.Cookies[i].Value)
                });
            }

            var myResults = new MyResults
            {
                MyCookies = myCookies,
                Bar       = HttpContext.Current.Request.Cookies["bar"]?.Value,
                Foo       = HttpContext.Current.Request.Cookies["foo"]?.Value
            };


            return(myResults);
        }
        public ActionResult ResultsCalculation(ResultsViewModel viewModel)
        {
            // Validate user has replied to all questions in the Test.
            // If not, return the same page with the answers he provided.


            if (!ModelState.IsValid)
            {
                if (viewModel.TestTaken == "Test 1")
                {
                    return(View("Test1", viewModel));
                }
                else if (viewModel.TestTaken == "Test 2")
                {
                    return(View("Test2", viewModel));
                }

                else if (viewModel.TestTaken == "Test 3")
                {
                    return(View("Test3", viewModel));
                }
                else if (viewModel.TestTaken == "Test 4")
                {
                    return(View("Test4", viewModel));
                }
            }

            //Calculate the Grade for the Test that was submitted

            var FinalGrade = 0;

            if (viewModel.Answer1 == true)
            {
                FinalGrade += 10;
            }
            if (viewModel.Answer2 == true)
            {
                FinalGrade += 10;
            }
            if (viewModel.Answer3 == true)
            {
                FinalGrade += 10;
            }
            if (viewModel.Answer4 == true)
            {
                FinalGrade += 10;
            }
            if (viewModel.Answer5 == true)
            {
                FinalGrade += 10;
            }
            if (viewModel.Answer6 == true)
            {
                FinalGrade += 10;
            }
            if (viewModel.Answer7 == true)
            {
                FinalGrade += 10;
            }
            if (viewModel.Answer8 == true)
            {
                FinalGrade += 10;
            }
            if (viewModel.Answer9 == true)
            {
                FinalGrade += 10;
            }
            if (viewModel.Answer10 == true)
            {
                FinalGrade += 10;
            }


            //Get Id of the current logged in user
            var CurrentUserId = User.Identity.GetUserId();

            //The following logic is applied for all 4 Tests

            //Check which Test the user submitted
            if (viewModel.TestTaken == "Test 1")
            {
                //Search the database to find if the currently logged in user has already submitted this Test in the past
                var TestRecord = _context.MyResults.SingleOrDefault(c => c.TestName == "Test 1" && c.UserID == CurrentUserId);

                //If not, created and add a new record in the table MyResults,
                //including the current Datetime and the calculated Grade
                if (TestRecord == null)
                {
                    var NewTestRecord = new MyResults
                    {
                        UserID      = CurrentUserId,
                        TestName    = "Test 1",
                        TestSubject = "Microsoft SQL Server Basics",
                        Difficulty  = "Beginner",
                        Time        = DateTime.Now,
                        Grade       = FinalGrade
                    };

                    _context.MyResults.Add(NewTestRecord);
                }
                //If the user has already submitted this test in the past,
                //update the database record with the current Datetime and the new Grade
                else
                {
                    TestRecord.Time  = DateTime.Now;
                    TestRecord.Grade = FinalGrade;
                }
            }
            else if (viewModel.TestTaken == "Test 2")
            {
                var TestRecord = _context.MyResults.SingleOrDefault(c => c.TestName == "Test 2" && c.UserID == CurrentUserId);

                if (TestRecord == null)
                {
                    var NewTestRecord = new MyResults
                    {
                        UserID      = CurrentUserId,
                        TestName    = "Test 2",
                        TestSubject = "Microsoft SQL Server Advanced",
                        Difficulty  = "Student",
                        Time        = DateTime.Now,
                        Grade       = FinalGrade
                    };

                    _context.MyResults.Add(NewTestRecord);
                }
                else
                {
                    TestRecord.Time  = DateTime.Now;
                    TestRecord.Grade = FinalGrade;
                }
            }
            else if (viewModel.TestTaken == "Test 3")
            {
                var TestRecord = _context.MyResults.SingleOrDefault(c => c.TestName == "Test 3" && c.UserID == CurrentUserId);

                if (TestRecord == null)
                {
                    var NewTestRecord = new MyResults
                    {
                        UserID      = CurrentUserId,
                        TestName    = "Test 3",
                        TestSubject = "Microsoft SQL Server Master",
                        Difficulty  = "Master",
                        Time        = DateTime.Now,
                        Grade       = FinalGrade
                    };

                    _context.MyResults.Add(NewTestRecord);
                }
                else
                {
                    TestRecord.Time  = DateTime.Now;
                    TestRecord.Grade = FinalGrade;
                }
            }
            else if (viewModel.TestTaken == "Test 4")
            {
                var TestRecord = _context.MyResults.SingleOrDefault(c => c.TestName == "Test 4" && c.UserID == CurrentUserId);

                if (TestRecord == null)
                {
                    var NewTestRecord = new MyResults
                    {
                        UserID      = CurrentUserId,
                        TestName    = "Test 4",
                        TestSubject = "Microsoft SQL Server Professor",
                        Difficulty  = "Professor",
                        Time        = DateTime.Now,
                        Grade       = FinalGrade
                    };

                    _context.MyResults.Add(NewTestRecord);
                }
                else
                {
                    TestRecord.Time  = DateTime.Now;
                    TestRecord.Grade = FinalGrade;
                }
            }

            //Save changes to the database
            _context.SaveChanges();

            //Redirect to MyResults page
            return(RedirectToAction("Index", "MyResults"));
        }
Example #3
0
 public virtual void AddChildResult(ITreeNode element, ICompilationResult result)
 {
     MyChildToResult.Add(element, result);
     MyResults.Add(result);
 }