Exemple #1
0
        private static ResultStatus GetCompiledStatus(TblUserAnswers answer)
        {
            var userCompiledAnswers = StudentRecordFinder.GetCompiledAnswersForAnswer(answer);

            bool allAcepted = true;

            if (userCompiledAnswers.Count != 0)
            {
                foreach (var compiledAnswer in userCompiledAnswers)
                {
                    if (compiledAnswer.StatusRef == (int)Status.Enqueued)
                    {
                        return(ResultStatus.Enqueued);
                    }

                    allAcepted &= (compiledAnswer.StatusRef == (int)Status.Accepted);
                }

                return(allAcepted ? ResultStatus.Pass : ResultStatus.Fail);
            }
            else
            {
                return(ResultStatus.Fail);
            }
        }
Exemple #2
0
        public static void MarkNotIncludedPages(IList <TblPages> usedPages)
        {
            foreach (var page in usedPages)
            {
                if (page.PageTypeRef == (int?)FX_PAGETYPE.Practice)
                {
                    var questions = StudentRecordFinder.GetQuestionsForPage(page);

                    foreach (var q in questions)
                    {
                        var ua = new TblUserAnswers
                        {
                            QuestionRef      = q.ID,
                            Date             = DateTime.Now,
                            UserRef          = ((CustomUser)Membership.GetUser()).ID,
                            UserAnswer       = string.Empty,
                            IsCompiledAnswer = false,
                            AnswerTypeRef    = FxAnswerType.NotIncludedAnswer.ID
                        };

                        ServerModel.DB.Insert(ua);
                    }
                }
            }
        }
Exemple #3
0
        public static TblUserAnswers GetUserAnswerForQuestion(TblUsers user, TblQuestions question)
        {
            IList <TblUserAnswers> answers = ServerModel.DB.Query <TblUserAnswers>(new AndCondition(
                                                                                       new CompareCondition <int>(
                                                                                           DataObject.Schema.UserRef,
                                                                                           new ValueCondition <int>(user.ID), COMPARE_KIND.EQUAL),
                                                                                       new CompareCondition <int>(
                                                                                           DataObject.Schema.QuestionRef,
                                                                                           new ValueCondition <int>(question.ID), COMPARE_KIND.EQUAL)));

            TblUserAnswers lastAnswer = null;

            foreach (TblUserAnswers answer in answers)
            {
                if (lastAnswer == null)
                {
                    lastAnswer = answer;
                }
                else
                {
                    if (lastAnswer.Date < answer.Date)
                    {
                        lastAnswer = answer;
                    }
                }
            }

            return(lastAnswer);
        }
Exemple #4
0
 private static void AddAnswerToReCompilationList(TblUserAnswers lstUserAnswer, List <TblUserAnswers> answersForReCompilation)
 {
     if (lstUserAnswer != null)
     {
         answersForReCompilation.Add(lstUserAnswer);
     }
 }
        public UserResultForPageForDate(TblUserAnswers ua, int userId)
        {
            Date = (DateTime)ua.Date;

            //_page = StudentRecordFinder.GetPageForQuestion((int) ua.QuestionRef);

            _userId = userId;
        }
Exemple #6
0
 public static Program CreateProgram(TblUserAnswers ua, TblCompiledQuestions cq)
 {
     return(new Program
     {
         Source = ua.UserAnswer,
         MemoryLimit = (int)cq.MemoryLimit,
         TimeLimit = (int)cq.TimeLimit,
         Language = LanguageHelper.FxLanguagesToLanguage(cq.LanguageRef)
     });
 }
Exemple #7
0
 public static Program CreateProgram(TblUserAnswers ua, TblCompiledQuestions cq)
 {
     return new Program
                {
                    Source = ua.UserAnswer,
                    MemoryLimit = (int)cq.MemoryLimit,
                    TimeLimit = (int)cq.TimeLimit,
                    Language = LanguageHelper.FxLanguagesToLanguage(cq.LanguageRef)
                };
 }
        private CompilationTestManager(TblUserAnswers userAnswer)
        {
            _userAnswer = userAnswer;

            var question = ServerModel.DB.Load<TblQuestions>((int)userAnswer.QuestionRef);

            var compiledQuestion = ServerModel.DB.Load<TblCompiledQuestions>((int)question.CompiledQuestionRef);

            _compiledQuestionData = ServerModel.DB.Load<TblCompiledQuestionsData>(ServerModel.DB.LookupIds<TblCompiledQuestionsData>(compiledQuestion, null));

            _program = SettingFactory.CreateProgram(_userAnswer, compiledQuestion);
        }
        private CompilationTestManager(TblUserAnswers userAnswer)
        {
            _userAnswer = userAnswer;

            var question = ServerModel.DB.Load <TblQuestions>((int)userAnswer.QuestionRef);

            var compiledQuestion = ServerModel.DB.Load <TblCompiledQuestions>((int)question.CompiledQuestionRef);

            _compiledQuestionData = ServerModel.DB.Load <TblCompiledQuestionsData>(ServerModel.DB.LookupIds <TblCompiledQuestionsData>(compiledQuestion, null));

            _program = SettingFactory.CreateProgram(_userAnswer, compiledQuestion);
        }
Exemple #10
0
        private ResultStatus GetStatus(TblUserAnswers answer)
        {
            if (_question.IsCompiled)
            {
                return(GetCompiledStatus(answer));
            }

            if (answer.UserAnswer.Equals(_question.CorrectAnswer))
            {
                return(ResultStatus.Pass);
            }

            return(ResultStatus.Fail);
        }
Exemple #11
0
        private static void AddAnswersFromPageToReCompilationList(TblPages page, IList <TblUsers> users, List <TblUserAnswers> answersForReCompilation)
        {
            var questions = StudentRecordFinder.GetQuestionsForPage(page);

            foreach (var u in users)
            {
                foreach (var q in questions)
                {
                    TblUserAnswers lstUserAnswer = GetLastUserAnswerForCompiledQuestion(q, u);

                    AddAnswerToReCompilationList(lstUserAnswer, answersForReCompilation);
                }
            }
        }
        private static TblCompiledAnswers StorePreCompiledAnswer(TblUserAnswers ans, TblCompiledQuestionsData data)
        {
            var compiledAnswer = new TblCompiledAnswers
            {
                MemoryUsed               = 0,
                TimeUsed                 = 0,
                StatusRef                = (int)Status.Enqueued,
                Output                   = string.Empty,
                UserAnswerRef            = ans.ID,
                CompiledQuestionsDataRef = data.ID
            };

            ServerModel.DB.Insert(compiledAnswer);

            return(compiledAnswer);
        }
Exemple #13
0
        private static TblUserAnswers SaveAnswer(int questionId, string userAnswer, bool isCompiledTest)
        {
            var ua = new TblUserAnswers
            {
                QuestionRef      = questionId,
                Date             = DateTime.Now,
                UserRef          = ((CustomUser)Membership.GetUser()).ID,
                UserAnswer       = userAnswer,
                IsCompiledAnswer = isCompiledTest,
                AnswerTypeRef    = FxAnswerType.UserAnswer.ID
            };

            ServerModel.DB.Insert(ua);

            return(ua);
        }
Exemple #14
0
        private static TblUserAnswers SaveAnswer(int questionId, string userAnswer, bool isCompiledTest)
        {
            var ua = new TblUserAnswers
                         {
                             QuestionRef = questionId,
                             Date = DateTime.Now,
                             UserRef = ((CustomUser)Membership.GetUser()).ID,
                             UserAnswer = userAnswer,
                             IsCompiledAnswer = isCompiledTest,
                             AnswerTypeRef = FxAnswerType.UserAnswer.ID
                         };

            ServerModel.DB.Insert(ua);

            return ua;
        }
Exemple #15
0
        public void LookupIDsTest()
        {
            using (var c = new DataObjectCleaner())
            {
                TblUsers u = GetUniqueUserForTesting();
                c.Insert(u);

                var a1 = new TblUserAnswers
                {
                    UserRef       = u.ID,
                    AnswerTypeRef = FxAnswerType.EmptyAnswer.ID
                };
                var a2 = (TblUserAnswers)a1.Clone();
                var a3 = (TblUserAnswers)a1.Clone();
                ServerModel.DB.Insert <TblUserAnswers>(new[] { a1, a2, a3 });

                var ids = ServerModel.DB.LookupIds <TblUserAnswers>(u, null);
                Assert.AreEqual(ids, new[] { a1.ID, a2.ID, a3.ID });

                var g1 = new TblGroups
                {
                    Name = "TestGroup1"
                };
                var g2 = (TblGroups)g1.Clone();
                c.Insert <TblGroups>(new[] { g1, g2 });

                ServerModel.DB.Link(u, g1);
                ServerModel.DB.Link(g2, u);

                var uIds = ServerModel.DB.LookupMany2ManyIds <TblGroups>(u, null);
                Assert.AreEqual(new[] { g1.ID, g2.ID }, uIds);

                var g1Ids = ServerModel.DB.LookupMany2ManyIds <TblUsers>(g1, null);
                Assert.AreEqual(new[] { u.ID }, g1Ids);

                var g2Ids = ServerModel.DB.LookupMany2ManyIds <TblUsers>(g2, null);
                Assert.AreEqual(new[] { u.ID }, g2Ids);

                ServerModel.DB.UnLink(g1, u);
                var newIds = ServerModel.DB.LookupMany2ManyIds <TblGroups>(u, null);
                Assert.AreEqual(new[] { g2.ID }, newIds);
            }
        }
Exemple #16
0
 public static IList <TblCompiledAnswers> GetCompiledAnswers(TblUserAnswers userAnswer)
 {
     return(ServerModel.DB.Load <TblCompiledAnswers>(ServerModel.DB.LookupIds <TblCompiledAnswers>(userAnswer, null)));
 }
Exemple #17
0
 public static IList<TblCompiledAnswers> GetCompiledAnswers(TblUserAnswers userAnswer)
 {
     return ServerModel.DB.Load<TblCompiledAnswers>(ServerModel.DB.LookupIds<TblCompiledAnswers>(userAnswer, null));
 }
Exemple #18
0
        public void LookupIDsTest()
        {
            using (var c = new DataObjectCleaner())
            {
                TblUsers u = GetUniqueUserForTesting();
                c.Insert(u);

                var a1 = new TblUserAnswers 
                { 
                    UserRef = u.ID, 
                    AnswerTypeRef = FxAnswerType.EmptyAnswer.ID 
                };
                var a2 = (TblUserAnswers)a1.Clone();
                var a3 = (TblUserAnswers)a1.Clone();
                ServerModel.DB.Insert<TblUserAnswers>(new[] {a1, a2, a3});

                var ids = ServerModel.DB.LookupIds<TblUserAnswers>(u, null);
                Assert.AreEqual(ids, new[] { a1.ID, a2.ID, a3.ID });

                var g1 = new TblGroups
                             {
                                 Name = "TestGroup1"
                             };
                var g2 = (TblGroups) g1.Clone();
                c.Insert<TblGroups>(new[] {g1, g2});

                ServerModel.DB.Link(u, g1);
                ServerModel.DB.Link(g2, u);

                var uIds = ServerModel.DB.LookupMany2ManyIds<TblGroups>(u, null);
                Assert.AreEqual(new[] { g1.ID, g2.ID }, uIds);

                var g1Ids = ServerModel.DB.LookupMany2ManyIds<TblUsers>(g1, null);
                Assert.AreEqual(new[] {u.ID}, g1Ids);

                var g2Ids = ServerModel.DB.LookupMany2ManyIds<TblUsers>(g2, null);
                Assert.AreEqual(new[] {u.ID}, g2Ids);

                ServerModel.DB.UnLink(g1, u);
                var newIds = ServerModel.DB.LookupMany2ManyIds<TblGroups>(u, null);
                Assert.AreEqual(new[] {g2.ID}, newIds);
            }
        }
Exemple #19
0
        public static void MarkNotIncludedPages(IList<TblPages> usedPages)
        {
            foreach (var page in usedPages)
            {
                if (page.PageTypeRef == (int?) FX_PAGETYPE.Practice)
                {
                    var questions = StudentRecordFinder.GetQuestionsForPage(page);

                    foreach (var q in questions)
                    {
                        var ua = new TblUserAnswers
                                     {
                                         QuestionRef = q.ID,
                                         Date = DateTime.Now,
                                         UserRef = ((CustomUser) Membership.GetUser()).ID,
                                         UserAnswer = string.Empty,
                                         IsCompiledAnswer = false,
                                         AnswerTypeRef = FxAnswerType.NotIncludedAnswer.ID
                                     };

                        ServerModel.DB.Insert(ua);
                    }
                }
            }
        }
        private static TblCompiledAnswers StorePreCompiledAnswer(TblUserAnswers ans, TblCompiledQuestionsData data)
        {
            var compiledAnswer = new TblCompiledAnswers
                                     {
                                         MemoryUsed = 0,
                                         TimeUsed = 0,
                                         StatusRef = (int)Status.Enqueued,
                                         Output = string.Empty,
                                         UserAnswerRef = ans.ID,
                                         CompiledQuestionsDataRef = data.ID
                                     };

            ServerModel.DB.Insert(compiledAnswer);

            return compiledAnswer;
        }
        public static IList<TblCompiledAnswers> GetCompiledAnswersForAnswer(TblUserAnswers ua)
        {
            var compiledAnswersIds = ServerModel.DB.LookupIds<TblCompiledAnswers>(ua, null);

            return ServerModel.DB.Load<TblCompiledAnswers>(compiledAnswersIds);
        }
        private static void DeletePreviousCompiledAnswers(TblUserAnswers ua)
        {
            var compiledAnswersIds = ServerModel.DB.LookupIds <TblCompiledAnswers>(ua, null);

            ServerModel.DB.Delete <TblCompiledAnswers>(compiledAnswersIds);
        }
 public static CompilationTestManager GetNewManager(TblUserAnswers userAnswer)
 {
     return(new CompilationTestManager(userAnswer));
 }
/*
 *      public static IList<TblQuestions> GetQuestionsForPage(TblPages page)
 *      {
 *          var questionsIDs = ServerModel.DB.LookupIds<TblQuestions>(page, null);
 *
 *          return ServerModel.DB.Load<TblQuestions>(questionsIDs);
 *      }
 */
        public static IList <TblCompiledAnswers> GetCompiledAnswersForAnswer(TblUserAnswers ua)
        {
            var compiledAnswersIds = ServerModel.DB.LookupIds <TblCompiledAnswers>(ua, null);

            return(ServerModel.DB.Load <TblCompiledAnswers>(compiledAnswersIds));
        }
 private static void DeletePreviousCompiledAnswers(TblUserAnswers ua)
 {
     var compiledAnswersIds = ServerModel.DB.LookupIds<TblCompiledAnswers>(ua, null);
     ServerModel.DB.Delete<TblCompiledAnswers>(compiledAnswersIds);
 }
 public static CompilationTestManager GetNewManager(TblUserAnswers userAnswer)
 {
     return new CompilationTestManager(userAnswer);
 }
/*
        private static void AddAnswersFromPageToReCompilationList(TblItems item, IList<TblUsers> users, List<TblUserAnswers> answersForReCompilation)
        {
            throw new NotImplementedException();
            var questions = StudentRecordFinder.GetQuestionsForPage(item);

            foreach (var u in users)
            {
                foreach (var q in questions)
                {
                    TblUserAnswers lstUserAnswer = GetLastUserAnswerForCompiledQuestion(q, u);

                    AddAnswerToReCompilationList(lstUserAnswer, answersForReCompilation);
                }
            }
        }
*/
        private static void AddAnswerToReCompilationList(TblUserAnswers lstUserAnswer, List<TblUserAnswers> answersForReCompilation)
        {
            if(lstUserAnswer != null)
                answersForReCompilation.Add(lstUserAnswer);
        }