Пример #1
0
        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);
        }
Пример #2
0
 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 }));
        }
Пример #5
0
        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);
        }