Beispiel #1
0
        public void startQuiz(Action navigate)
        {
            //if (TestingData.sheet.ExamDuration != 0)
            //{
            //    Timer.Stop();
            //}

            OnsiteServices svc = new OnsiteServices();

            svc.StartExam(new ClientSheetRequest {
                ClientId = TestingData.Config.ClientId, SheetId = TestingData.sheet._id
            });

            if (TestingData.State == "READY")
            {
                TestingData.SetTimer();
            }

            TestingData.sheet.LastedStatus = "TESTING";
            TestingData.State = "TESTING";

            TestingData.Activity = StudentActivity.Testing;
            //if (TestingData.TestDuration == 0)
            //{
            //    //TestingData.sheet.ExamDuration = TestingData.sheet.ExamDuration;
            //    TestingData.TestDuration = TestingData.sheet.ExamDuration;
            //}

            navigate();
        }
Beispiel #2
0
        public void EndExam()
        {
            OnsiteServices svc = new OnsiteServices();

            svc.EndExam(new ClientSheetRequest {
                ClientId = TestingData.Config.ClientId, SheetId = TestingData.sheet._id
            });

            TestingData.Reset();
        }
Beispiel #3
0
        public void CheckExam(string pid, Action navigateMethod)
        {
            if (!String.IsNullOrWhiteSpace(pid))
            {
                try
                {
                    //pid = "1409901796428"; //HACK

                    OnsiteServices svc = new OnsiteServices();
                    PreExam = svc.CheckExam(pid);
                    if (PreExam != null)
                    {
                        TestingData.preExam = new PreExamResponse();
                        TestingData.preExam = PreExam;

                        SmartCardVis = Visibility.Collapsed;
                        ErrorVis     = Visibility.Collapsed;
                        ConfirmVis   = Visibility.Collapsed;
                        ProfileVis   = Visibility.Visible;

                        this.navigate = navigateMethod;
                    }
                    else
                    {
                        ErrorStatus  = "ไม่พบข้อมูล";
                        SmartCardVis = Visibility.Collapsed;
                        ErrorVis     = Visibility.Visible;
                        ConfirmVis   = Visibility.Collapsed;
                        ProfileVis   = Visibility.Collapsed;
                    }
                }
                catch (Exception e)
                {
                    SmartCardVis = Visibility.Collapsed;
                    ErrorVis     = Visibility.Visible;
                    ConfirmVis   = Visibility.Collapsed;
                    ProfileVis   = Visibility.Collapsed;
                }
            }
            else
            {
                ErrorVis    = Visibility.Visible;
                ErrorStatus = "PID NOT FOUND";
            }
        }
Beispiel #4
0
        public void SubmitConfrim()
        {
            //get sheet

            try
            {
                OnsiteServices svc = new OnsiteServices();

                var sheet = svc.GetSheet(PreExam.PID, SubjectSelected.SubjectCode, TestingData.Config.ClientId);
                TestingData.sheet = sheet;

                TestingData.State = "READY";

                this.navigate();
            }
            catch (Exception e)
            {
                throw;
            }
        }
Beispiel #5
0
        private void SavePic(BitmapSource bitmap)
        {
            TestingData.ProfilePhoto = new BitmapImage();

            JpegBitmapEncoder encoder = new JpegBitmapEncoder();

            encoder.Frames.Add(BitmapFrame.Create(bitmap));
            encoder.QualityLevel = 100;

            //HACK
            TestingData.SubjectCode = "11";

            var PICTURE_FILENAME = string.Format("{0}.jpg", TestingData.sheet._id);
            //var PICTURE_FILENAME = "";
            string serverPath = @"C:\PCTest\pic\";
            var    picPath    = System.IO.Path.Combine(serverPath, PICTURE_FILENAME);

            if (!Directory.Exists(serverPath))
            {
                Directory.CreateDirectory(serverPath);
            }

            using (var fstream = new System.IO.FileStream(picPath, FileMode.Create))
            {
                encoder.Save(fstream);
                fstream.Flush();
                fstream.Close();
                fstream.Dispose();

                webcam.Stop();
                _isCameraOn = false;
            }

            var profileBitmap = BitmapFromSource(bitmap);

            ProfilePhoto = profileBitmap;


            TestingData.ProfilePhoto = new BitmapImage();
            Uri uri = new Uri(picPath, UriKind.RelativeOrAbsolute);

            TestingData.ProfilePhoto.BeginInit();
            TestingData.ProfilePhoto.UriSource   = uri;
            TestingData.ProfilePhoto.CacheOption = BitmapCacheOption.OnLoad;
            TestingData.ProfilePhoto.EndInit();

            //save image to server
            byte[] bit = new byte[0];

            using (var stream = new System.IO.MemoryStream())
            {
                JpegBitmapEncoder encoder2 = new JpegBitmapEncoder();
                encoder2.Frames.Add(BitmapFrame.Create(bitmap));
                encoder2.QualityLevel = 100;
                encoder2.Save(stream);
                bit = stream.ToArray();

                OnsiteServices svc = new OnsiteServices();

                PicRequest picre = new PicRequest
                {
                    FileName = PICTURE_FILENAME,
                    bytes    = bit
                };
                svc.SavePic(picre);

                stream.Flush();
                stream.Close();
                stream.Dispose();
            }
        }
Beispiel #6
0
        public ExamViewModel()
        {
            if (!DesignerProperties.GetIsInDesignMode(new System.Windows.DependencyObject()))
            {
                svc          = new OnsiteServices();
                CurrentSheet = new ExamSheetResponse();
                CurrentSheet = TestingData.sheet;
                IsTimpUp     = false;
                State        = TestingData.State;


                BorderColor = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Color.FromRgb(0, 0, 0));

                First = new ChoiceViewModel {
                    Callback = SetCurrentChoice
                };
                Second = new ChoiceViewModel {
                    Callback = SetCurrentChoice
                };
                Third = new ChoiceViewModel {
                    Callback = SetCurrentChoice
                };
                Fourth = new ChoiceViewModel {
                    Callback = SetCurrentChoice
                };
                QuestionSelect = new QuestionViewModel {
                    Callback = SetQPreview
                };

                ChoiceSelect = new ChoiceSelector();

                SelectIndex = 0;

                currentQuestionNo = 1;
                CurrentAnswer     = new Answer();
                Answers           = new List <Answer>();
                InitializeAnswers();
                //MainExamVisibility = Visibility.Collapsed;

                //ExamAns = new ExamAnsViewModel();
                //ExamAns.Answers = Answers;
                QuestionSelect = new QuestionViewModel();

                #region TimeCal
                if (TestingData.State != "CheckAnswer" && this.IsTimpUp == false)
                {
                    Duration        = new TimeSpan(0, 0, TestingData.TestDuration);
                    DisplayDuration = Duration.ToString();
                    Timer           = new DispatcherTimer
                    {
                        Interval = TimeSpan.FromSeconds(1)
                    };
                    Timer.Tick += (sndr, se) =>
                    {
                        if (Duration <= new TimeSpan(0, 0, 0))
                        {
                            SendResult();
                            if (this.IsTimpUp)
                            {
                                SendResultEvent(this, new Models.SendResultArgs {
                                    IsTimeUp = true
                                });
                                this.IsTimpUp = false;
                            }
                        }
                        Duration = Duration.Subtract(TimeSpan.FromSeconds(1));
                        TestingData.TestDuration = (int)Duration.TotalSeconds;
                        DisplayDuration          = Duration.ToString();
                    };
                    Timer.Start();
                }
                #endregion TimeCal

                ProfilePhoto         = TestingData.ProfilePhoto;
                FullName             = TestingData.sheet.FirstName + "  " + TestingData.sheet.LastName;
                SubjectName          = TestingData.sheet.SubjectName;
                TestingData.Activity = StudentActivity.Testing; // ART

                //if (Answers.Count() == 0)
                //{
                //    InitializeAnswers();
                //}

                //set current question  choice
                SetCurrentQuestion(currentQuestionNo);

                MainExamVisibility  = Visibility.Visible;
                ExamAnsVisibility   = Visibility.Collapsed;
                SendExamVisibility  = Visibility.Collapsed;
                AlertResult         = Visibility.Collapsed;
                BtnChooseVisibility = Visibility.Collapsed;
            }
        }