public void Add(TopicSubmission submission)
        {
            if (submission == null)
            {
                throw new ArgumentNullException("Submission should not be null");
            }

            this.submissions.Add(submission);
            this.submissions.Save();
        }
Пример #2
0
        public void PercentageCorrectTranslationsShouldBeSetCorrectly(double percent)
        {
            // Arrange
            var submission = new TopicSubmission();

            // Act
            submission.PercentageCorrectTranslations = percent;

            // Assert
            Assert.AreEqual(percent, submission.PercentageCorrectTranslations);
        }
Пример #3
0
        public void TimeElapsedInSecondsShouldBeSetCorrectly(int number)
        {
            // Arrange
            var submission = new TopicSubmission();

            // Act
            submission.TimeElapsedInSeconds = number;

            // Assert
            Assert.AreEqual(number, submission.TimeElapsedInSeconds);
        }
Пример #4
0
        public void TImeElapsedShouldBeSetCorrectly(string time)
        {
            // Arrange
            var submission = new TopicSubmission();

            // Act
            submission.TimeElapsed = time;

            // Assert
            Assert.AreEqual(time, submission.TimeElapsed);
        }
Пример #5
0
        public void ByUserIdShouldBeSetCorrectly(string text)
        {
            // Arrange
            var submission = new TopicSubmission();

            // Act
            submission.ByUserId = text;

            // Assert
            Assert.AreEqual(text, submission.ByUserId);
        }
Пример #6
0
        public void ForTopicIdShouldBeSetCorrectly(int number)
        {
            // Arrange
            var submission = new TopicSubmission();

            // Act
            submission.ForTopicId = number;

            // Assert
            Assert.AreEqual(number, submission.ForTopicId);
        }
Пример #7
0
        public ActionResult Solve(int id)
        {
            var topic = this.topics.GetById(id);

            this.ViewBag.NumWords = topic.NumberOfWordsToTranslate;
            var ts = new TopicSubmission()
            {
                ForTopic = topic
            };

            return(this.View(ts));
        }
Пример #8
0
        public ActionResult Solve(int id, TopicSubmission topicSubmission, string elapsedTime, int elapsedTimeInSeconds)
        {
            var topic = this.topics.GetById(id);

            topicSubmission.ForTopic   = topic;
            topicSubmission.ForTopicId = topic.Id;

            var correctTopic   = topicSubmission.ForTopic;
            int correctAnswers = 0;
            int numberWords    = correctTopic.WordsToTranslate.Count;

            var wrongTranslations = new List <object>();

            for (int i = 0; i < numberWords; i++)
            {
                if (correctTopic.WordsToTranslate[i].Translation == topicSubmission.SelectedTranslations[i])
                {
                    correctAnswers += 1;
                }
                else
                {
                    //wrongTranslations.Add(new TranslationResult()
                    //{
                    //    Text = correctTopic.WordsToTranslate[i].Text,
                    //    WrongTranslation = topic.SelectedTranslations[i].Translation,
                    //    CorrectTranslation = correctTopic.WordsToTranslate[i].Translation
                    //});
                }
            }

            double percent = (correctAnswers * 100) / numberWords;

            this.TempData["time-elapsed"]         = elapsedTime;
            this.TempData["time-elapsed-seconds"] = elapsedTimeInSeconds;
            this.TempData["result"]     = percent + "% correct answers";
            this.TempData["percentage"] = percent;

            if (this.User.Identity.IsAuthenticated)
            {
                var userId = this.User.Identity.GetUserId();

                topicSubmission.ByUserId                      = userId;
                topicSubmission.TimeElapsed                   = elapsedTime;
                topicSubmission.TimeElapsedInSeconds          = elapsedTimeInSeconds;
                topicSubmission.PercentageCorrectTranslations = percent;
                this.submissions.Add(topicSubmission);
            }

            //this.TempData["wrong"] = wrongTranslations.ToArray();
            return(this.RedirectToAction("Results"));
        }