protected override async void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SupportActionBar.Elevation = 0; SupportActionBar.SetDisplayHomeAsUpEnabled(true); SetContentView(Resource.Layout.exercise_question); WebView = FindViewById <WebView>(Resource.Id.webView1); group = FindViewById <RadioGroup>(Resource.Id.radio_group); NextBtn = FindViewById <ImageButton>(Resource.Id.btn_floating_action); pb = FindViewById <ProgressBar>(Resource.Id.pb); TimerText = FindViewById <TextView>(Resource.Id.text_timer); TextQuestionNumber = FindViewById <TextView>(Resource.Id.question_number); tv = FindViewById <TextView>(Resource.Id.tv); // TextQuestion = FindViewById<TextView>(Resource.Id.question); ExaminationID = Intent.GetIntExtra(nameof(ExaminationID), 0); CurExamination = await Data.Examination.DB.RowsAsync.FirstOrDefaultAsync(c => c.ID == ExaminationID); await CurExamination.LoadCourse(); await CurExamination.LoadModule(); //await CurExamination.LoadQuestions(); var guid = Guid.NewGuid(); UserExamination = new UserExamination { CreationDate = DateTime.Now, UserID = SessionManager.User.ID, StartTime = DateTime.Now, CourseID = CurExamination.CourseID.Value, ModuleID = CurExamination.ModuleID.Value }; UserExamination.ID = guid; UserExamination.ExaminationID = CurExamination.ID; Questions = Question.DB.Rows.Where(c => c.ExaminationID == ExaminationID).ToList().Shuffled().ToList();// (List<Question>)CurExamination.Questions.Shuffled(); Count = Questions.Count; pb.Max = Count; // uptask = new UpdatePB(this, pb, tv, Count); // uptask.Execute(100); if (Questions.Count > 0) { Question = Questions.FirstOrDefault(); SessionManager.CanViewResults = false; } UserExamination.DB.Insert(UserExamination); var answers = Answer.DB.Rows.Where(c => c.QuestionID == Question.ID).ToList().Shuffled().ToList(); StartExercise(Question, answers, group); StartTimer = new StartTimer(this, TimerText) { StartDate = DateTime.Now, }; StartTimer.Start(); tv.Text = $"Question {Counter} of {Count}"; TextQuestionNumber.Text = $"Question number {Counter}"; pb.Progress = Counter; // SetProgress(Counter, true); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SupportActionBar.Elevation = 0; SupportActionBar.SetDisplayHomeAsUpEnabled(true); SetContentView(Resource.Layout.exercise_result); TextExercise = FindViewById <TextView>(Resource.Id.text_exercise_name); TextTotalScore = FindViewById <TextView>(Resource.Id.text_total_score); TextOutOf = FindViewById <TextView>(Resource.Id.text_out_of); ExaminationID = Guid.Parse(Intent.GetStringExtra(nameof(ExaminationID))); RecyclerView = FindViewById <RecyclerView>(Resource.Id.gridView_items); RecyclerView.SetLayoutManager(new LinearLayoutManager(this)); UserExamination = UserExamination.DB.Rows.FirstOrDefault(c => c.ID == ExaminationID); }
public FUserExamination Post(FUserExamination fUserExamination) { var Items = fUserExamination.Details; var Invoice = fUserExamination.Examination; var inv = DB.UserExaminations.FirstOrDefault(c => c.ID == fUserExamination.Examination.ID); if (inv != null) { return(inv.FUserExamination); } inv = new UserExamination { CreationDate = Invoice.CreationDate, EndTime = Invoice.EndTime, Latitude = Invoice.Latitude, Longitude = Invoice.Longitude, StartTime = Invoice.StartTime, UserID = Invoice.UserID, ExaminationID = Invoice.ExaminationID, ID = Invoice.ID, }; DB.UserExaminations.Add(inv); foreach (var item in Items) { inv.UserExaminationDetails.Add(new UserExaminationDetail { QuestionID = item.QuestionID, AnswerID = item.AnswerID, ExaminationID = item.ExaminationID, Name = item.Name, ID = item.ID, }); } DB.SaveChanges(); return(inv.FUserExamination); }
public ActionResult Attempt(int?p, List <int> QID, List <string> AID, int eid, DateTime now) { var farmer = CurrentUser; var ex = DB.Examinations.Find(eid); ViewBag.farmer = farmer; ViewBag.Title = $"attempt"; ViewBag.now = DateTime.Now; var today = DateTime.Now; if (ex.EndDate < today) { ViewBag.expired = "expired"; return(View(ex)); } UserExamination exercise = new UserExamination { UserID = CurrentUserID, ExaminationID = ex.ID, CreationDate = DateTime.Now, StartTime = now, ID = Guid.NewGuid(), }; var list = new List <QuestionAnswer>(); if (AID != null) { foreach (var item in AID) { var q = int.Parse(item.Split('_')[0]); var a = int.Parse(item.Split('_')[1]); list.Add(new QuestionAnswer { QuestionID = q, AnswerID = a }); } } for (int i = 0; i < QID.Count; i++) { var d = QID[i]; var question = DB.Questions.Find(d); var answers = list.Where(c => c.QuestionID == question.ID); if (answers.Any()) { foreach (var item in answers) { exercise.UserExaminationDetails.Add(new UserExaminationDetail { QuestionID = item.QuestionID, AnswerID = item.AnswerID, ID = Guid.NewGuid(), }); } } //if (AID != null) //{ // var QA = AID.ElementAtOrDefault(i); // if (!string.IsNullOrEmpty(QA)) // { // int q = int.Parse(QA.Split('_')[0]); // int a = int.Parse(QA.Split('_')[1]); // if (question.ID == q) // exercise.UserExaminationDetails.Add(new UserExaminationDetail // { // QuestionID = q, // AnswerID = a, // }); // else exercise.UserExaminationDetails.Add(new UserExaminationDetail { QuestionID = QID[i] }); // } // else exercise.UserExaminationDetails.Add(new UserExaminationDetail { QuestionID = QID[i] }); //} else { exercise.UserExaminationDetails.Add(new UserExaminationDetail { QuestionID = QID[i], ID = Guid.NewGuid() }); } } DB.UserExaminations.Add(exercise); DB.SaveChanges(); return(RedirectToAction(nameof(Results), new { exercise.ID })); }
protected override async void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SupportActionBar.Elevation = 0; SupportActionBar.SetDisplayHomeAsUpEnabled(true); SetContentView(Resource.Layout.exercise_question); WebView = FindViewById <WebView>(Resource.Id.webView1); group = FindViewById <RadioGroup>(Resource.Id.radio_group); NextBtn = FindViewById <ImageButton>(Resource.Id.btn_floating_action); pb = FindViewById <ProgressBar>(Resource.Id.pb); TimerText = FindViewById <TextView>(Resource.Id.text_timer); TextQuestionNumber = FindViewById <TextView>(Resource.Id.question_number); tv = FindViewById <TextView>(Resource.Id.tv); CourseID = Intent.GetIntExtra(nameof(CourseID), 0); CurCourse = await Data.Course.DB.RowsAsync.FirstOrDefaultAsync(c => c.ID == CourseID); await CurCourse.LoadExaminations(); Questions = new List <Question>(); foreach (var exam in CurCourse.Examinations) { await exam.LoadQuestions(); Questions.AddRange(exam.Questions); } var guid = Guid.NewGuid(); CurExamination = new Examination { LocalID = guid, CourseID = CourseID, CreationDate = DateTime.UtcNow, CreatorID = SessionManager.User.ID, Topic = CurCourse.Name, Year = DateTime.Now.Year, StartDate = DateTime.UtcNow, EndDate = DateTime.UtcNow, TypeID = (int)ExaminationType.EXAMINATION, Duration = 500, PaperFormatID = (int)QuestionPaperFormat.ONE_QESTION_PER_PAGE, FlagsID = (int)ExaminationFlags.PREMIUM_EXAMINATION, TargetAudienceID = (int)ExaminationAudience.EXTENSION_OFFICERS, NumberOfQuestions = CurCourse.FinalExamQuestions ?? 25 }; UserExamination = new UserExamination { CreationDate = DateTime.Now, UserID = SessionManager.User.ID, StartTime = DateTime.Now }; UserExamination.ID = guid; UserExamination.LocalExamID = CurExamination.LocalID; Questions = Questions.Shuffled().ToList().Take(CurCourse.FinalExamQuestions ?? 25).ToList().Shuffled().ToList(); Count = Questions.Count; pb.Max = Count; if (Questions.Count > 0) { Question = Questions.FirstOrDefault(); } Examination.DB.Insert(CurExamination); UserExamination.DB.Insert(UserExamination); var answers = Answer.DB.Rows.Where(c => c.QuestionID == Question.ID).ToList().Shuffled().ToList(); StartExercise(Question, answers, group); StartTimer = new StartTimer(this, TimerText) { StartDate = DateTime.Now, }; StartTimer.Start(); tv.Text = $"Question {Counter} of {Count}"; TextQuestionNumber.Text = $"Question number {Counter}"; pb.Progress = Counter;// SetProgress(Counter, true); }