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); } }
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); } } } }
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); }
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; }
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) }); }
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); }
private ResultStatus GetStatus(TblUserAnswers answer) { if (_question.IsCompiled) { return(GetCompiledStatus(answer)); } if (answer.UserAnswer.Equals(_question.CorrectAnswer)) { return(ResultStatus.Pass); } return(ResultStatus.Fail); }
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); }
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); }
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; }
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); } }
public static IList <TblCompiledAnswers> GetCompiledAnswers(TblUserAnswers userAnswer) { return(ServerModel.DB.Load <TblCompiledAnswers>(ServerModel.DB.LookupIds <TblCompiledAnswers>(userAnswer, null))); }
public static IList<TblCompiledAnswers> GetCompiledAnswers(TblUserAnswers userAnswer) { return ServerModel.DB.Load<TblCompiledAnswers>(ServerModel.DB.LookupIds<TblCompiledAnswers>(userAnswer, null)); }
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); } }
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); }