Esempio n. 1
0
        public async Task <IActionResult> Post([FromBody] ExamViewModel exam)
        {
            // Save to the Database
            try
            {
                var newExam = Mapper.Map <Exam>(exam);

                _repository.AddExam(newExam);

                if (await _repository.SaveChangesAsync())
                {
                    return(Created($"api/exams/{exam.ExamName}", Mapper.Map <ExamViewModel>(exam)));
                }
                else
                {
                    _logger.LogWarning("Could not save exam to the database");
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"Threw exception while saving exam: {ex}");
            }



            return(BadRequest("Failed to save the exam"));
        }
Esempio n. 2
0
        public ExamViewModel GetExamViewModel()
        {
            ExamViewModel exam = new ExamViewModel();

            exam.Questions = _Context.Questions.ToList();
            return(exam);
        }
Esempio n. 3
0
 public CorrectExam(ExamViewModel examView)
 {
     examViewModel = examView;
     InitializeComponent();
     Score.BindingContext = examView;
     startCorrect();
 }
Esempio n. 4
0
        public ActionResult <Exam> Post([FromBody] ExamViewModel value)
        {
            Teacher teacher = dataService.FindById <Teacher>(value.ResponsibleTeacher);
            Module  module  = dataService.FindById <Module>(value.Module);

            if (teacher == null)
            {
                return(NotFound("Teacher not found"));
            }
            else if (module == null)
            {
                return(NotFound("Module not found"));
            }

            Exam exam = new Exam
            {
                AttemptOne         = value.AttemptOne,
                AttemptTwo         = value.AttemptTwo,
                Compensatable      = value.Compensatable,
                Language           = value.Language,
                Duration           = new TimeSpan(value.DurationInMinutes * 60 * 1000),
                EC                 = value.EC,
                ExamType           = value.ExamType,
                GradeType          = value.GradeType,
                Module             = module,
                ResponsibleTeacher = teacher
            };

            if (dataService.Insert <Exam>(exam) != 1)
            {
                return(StatusCode(500));
            }

            return(new OkObjectResult(exam));
        }
Esempio n. 5
0
        public ActionResult <Exam> Put(int id, [FromBody] ExamViewModel value)
        {
            Exam exam = dataService.FindById <Exam>(id);

            if (exam == null)
            {
                return(NotFound("Exam not found"));
            }

            Teacher teacher = dataService.FindById <Teacher>(value.ResponsibleTeacher);
            Module  module  = dataService.FindById <Module>(value.Module);

            exam.AttemptOne         = value.AttemptOne;
            exam.AttemptTwo         = value.AttemptTwo;
            exam.Compensatable      = value.Compensatable;
            exam.Duration           = new TimeSpan(value.DurationInMinutes * 60 * 1000);
            exam.EC                 = value.EC;
            exam.Language           = value.Language;
            exam.ExamType           = value.ExamType;
            exam.GradeType          = value.GradeType;
            exam.Module             = module;
            exam.ResponsibleTeacher = teacher;

            if (dataService.Update <Exam>(exam) != 1)
            {
                return(StatusCode(500));
            }

            return(new OkObjectResult(exam));
        }
Esempio n. 6
0
        public void Update(ExamViewModel examViewModel)
        {
            var examDetails = Mapper.Map <List <QuestionExamDetailViewModel>, List <QuestionExamDetail> >(examViewModel
                                                                                                          .QuestionExamDetailViewModels);
            var exam = new Exam()
            {
                Id                  = examViewModel.Id,
                Examiner            = examViewModel.Examiner,
                DateCreated         = examViewModel.DateCreated,
                DateModified        = examViewModel.DateModified,
                ExamName            = examViewModel.ExamName,
                QuestionExamDetails = examDetails,
                Status              = examViewModel.Status,
                Time                = examViewModel.Time
            };
            var newDetails     = exam.QuestionExamDetails;
            var addedDetails   = newDetails.Where(x => x.Id == 0).ToList();
            var updatedDetails = newDetails.Where(x => x.Id != 0).ToList();
            var existedDetails = _questiondetailRepository.FindAll(x => x.ExamId == examViewModel.Id);

            exam.QuestionExamDetails.Clear();
            foreach (var detail in updatedDetails)
            {
                _questiondetailRepository.Update(detail);
            }

            foreach (var detail in addedDetails)
            {
                _questiondetailRepository.Add(detail);
            }
            _examRepository.Update(exam);
        }
Esempio n. 7
0
        public static Func <Exam, ExamViewModel> ToViewModel()
        {
            ExamViewModel func(Exam exam)
            {
                if (exam != null)
                {
                    var model = new ExamViewModel()
                    {
                        Id     = exam.Id,
                        Code   = exam.Code,
                        Moment = exam.Moment,
                        Name   = exam.Name,
                        Unit   = exam.Unit.Name
                    };

                    return(model);
                }
                else
                {
                    return(null);
                }
            }

            return(func);
        }
Esempio n. 8
0
        public async Task <ApiResponse <bool> > UdpateExam(ExamViewModel exam)
        {
            var result = new ApiResponse <bool>();

            try
            {
                var oExam = new Exam
                {
                    Id          = exam.Id,
                    Title       = exam.Title,
                    Status      = exam.Status,
                    Description = exam.Description,
                    Duration    = exam.Duration,
                    ImageUrl    = exam.ImageUrl
                };
                dbContext.Exams.Update(oExam);
                await dbContext.SaveChangesAsync();

                result.Data = true;
                result.AddSuccess();
                return(await Task.FromResult(result));
            }
            catch (Exception ex)
            {
                result.AddError(ex);
                return(await Task.FromResult(result));
            }
        }
        public async Task <ActionResult> Store([FromBody] ExamViewModel model)
        {
            int id             = model.Id;
            var existingEntity = await _examsService.GetByIdAsync(id);

            if (existingEntity == null)
            {
                return(NotFound());
            }

            ValidateEditRequest(existingEntity);
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }


            var exam = model.MapEntity(_mapper, CurrentUserId);

            //先存檔
            _examsService.SaveExam(existingEntity, exam);

            //對答案
            bool withOptions = true;

            exam = _examsService.GetById(id, withOptions);

            exam.SetAnswers();
            exam.Finish();

            await _examsService.UpdateAsync(exam);

            return(Ok());
        }
        public ActionResult AddExam(ExamViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var currentUser   = AccountServiceCaller.Get(User.Identity.Name);
            var userOrganizer = OrganizerServiceCaller.Get(currentUser.OrganizerId);
            var newExam       = new ExamModel();

            newExam.OrganizerId = userOrganizer.Id;
            newExam.CourseName  = model.CourseName;
            newExam.Hour        = model.Hour;
            newExam.Date        = model.ExamDay;
            newExam.Room        = model.ExamRoom;
            newExam.Difficulty  = model.Difficulty;

            try
            {
                ExamServiceCaller.Add(newExam);
                return(RedirectToAction("Index", "Exam"));
            }
            catch (Exception ex)
            {
                return(View(ex.Message));
            }
        }
        public ActionResult ShowExam()
        {
            ExamViewModel examViewModel = new ExamViewModel();

            examViewModel.QuestionList             = new List <Exam>();
            examViewModel.SideBarData              = new SideBarViewModel();
            examViewModel.SideBarData.CurrentIndex = 2;

            ExamBusinessLayer examBusinessLayer = new ExamBusinessLayer();
            List <Exam>       exam = examBusinessLayer.GetExamList();
            // 获取考试科目
            string examName = Convert.ToString(RouteData.Values["examName"]);

            if (examName != null)
            {
                foreach (Exam t in exam)
                {
                    if (t.ExamName == examName)
                    {
                        Exam userexam = new Exam();
                        userexam.ExamID          = t.ExamID;
                        userexam.ExamName        = t.ExamName;
                        userexam.Problem         = t.Problem;
                        userexam.ProblemProperty = t.ProblemProperty;
                        userexam.Answer          = t.Answer;
                        userexam.ImgSrc          = t.ImgSrc;
                        userexam.Score           = t.Score;
                        // single-choice question
                        if (userexam.ProblemProperty == 1)
                        {
                            userexam.First  = t.First;
                            userexam.Second = t.Second;
                            userexam.Third  = t.Third;
                            userexam.Fourth = t.Fourth;
                        }

                        examViewModel.QuestionList.Add(userexam);
                    }
                }
            }
            else
            {
                Response.Redirect("~");
            }

            examViewModel.QuestionNum = examViewModel.QuestionList.Count;
            examViewModel.Name        = examName;
            examViewModel.ExamScore   = -1;

            if (HttpContext.Session["User"] != null && Session["User"].ToString() != "")
            {
                examViewModel.NavStatusData           = new NavStatusViewModel();
                examViewModel.NavStatusData.LeftLink  = "/User/Profile/" + HttpContext.Session["User"].ToString();
                examViewModel.NavStatusData.LeftText  = Session["User"].ToString();
                examViewModel.NavStatusData.RightLink = "/User/Logout";
                examViewModel.NavStatusData.RightText = "Log out";
            }

            return(View("Content", examViewModel));
        }
Esempio n. 12
0
        public ActionResult Save(Exam exam, FormCollection formValues)
        {
            if (!ModelState.IsValid)
            {
                var ex        = new Exam();
                var viewModel = new ExamViewModel()
                {
                    exam     = ex,
                    courses  = _context.Courses.ToList(),
                    students = _context.Students.ToList()
                };
                return(View("ExamForm", viewModel));
            }
            if (exam.Id == 0)
            {
                _context.Exams.Add(exam);
                _context.SaveChanges();
            }

            else
            {
                var examInDb = _context.Exams.Find(exam.Id);
                // if (TryUpdateModel(examInDb,new string[] { "exam.StudentId", "exam.CourseId", "exam.Grade"}))
                //examInDb.CourseId = exam.CourseId;
                //examInDb.StudentId = exam.StudentId;
                //examInDb.Grade = exam.Grade;
                //UpdateModel(examInDb);
                examInDb.CourseId  = Int32.Parse(Request.Form["exam.CourseId"]);
                examInDb.StudentId = Int32.Parse(Request.Form["exam.StudentId"]);
                examInDb.Grade     = Int32.Parse(Request.Form["exam.Grade"]);
                _context.SaveChanges();
            }
            _context.SaveChanges();
            return(RedirectToAction("Index", "Exams"));
        }
Esempio n. 13
0
        private async Task <int> CalculateResult(ExamViewModel viewModel)
        {
            var trueQuestionsCount = 0;

            foreach (var question in viewModel.Questions)
            {
                var trueChoicesList = await this.choiceRepository.All().Where(c => c.QuestionId == question.Id && c.IsTrue == true).ToListAsync();

                var trueChoicesCount = trueChoicesList.Count();
                var counter          = 0;

                var selectedChoicesCount = question.Choices.Where(c => c.IsSelected == true).Count();

                foreach (var choice in question.Choices)
                {
                    if (choice.IsSelected == true)
                    {
                        if (choice.IsTrue == true)
                        {
                            counter++;
                        }
                    }
                }
                if (selectedChoicesCount == trueChoicesCount && counter == trueChoicesCount)
                {
                    trueQuestionsCount++;
                }
            }

            var result = (trueQuestionsCount * 100) / viewModel.Questions.Count;
            var asd    = 0;

            return(result);
        }
Esempio n. 14
0
        public async Task <IActionResult> Create([Bind("CityId,Date,Comment,Id,Created,SelectedCity")] ExamViewModel examViewModel)
        {
            if (ModelState.IsValid)
            {
                var latestDate = _repository.Query <Exam>()
                                 .OrderBy(x => x.Created)
                                 .LastOrDefault();
                var exam = ExamMappings.ToEntity(examViewModel);
                var city = await _repository.Query <City>().FirstOrDefaultAsync(x => x.Name == examViewModel.SelectedCity);

                exam.CityId = city.Id;
                var previousUrl = TempData["ReturnPath"].ToString();
                if (latestDate != null)
                {
                    exam.Tasks = latestDate.Tasks;
                    await _repository.InsertAsync(exam);

                    _logger.LogInformation("New exam added to DB. User {User}.", _user);
                    return(Redirect(previousUrl));
                }
                else
                {
                    _logger.LogWarning("Exam was null. Nothing added to DB. User {User}.", _user);
                }
                await _repository.InsertAsync(exam);

                return(Redirect(previousUrl));
            }
            return(RedirectToAction(nameof(Index)));
        }
Esempio n. 15
0
        public ActionResult IndexProgramme()
        {
            //Console.ReadLine();
            var student       = new Student();
            var programmeCode = student.Programmes.ProgrammeCode;
            var listExam      = new ExamViewModel();
            var progcode      = listExam.ProgrammeCode;

            if (programmeCode == progcode)
            {
                listExam.Exams = _examRepository.GetMyExams();
            }
            //   listExam.Exams = _examRepository.GetAllExams();

            //var listProgrammes = _programmeRepository.GetAllProgrammes().Select(c => new { c.ProgrammeCode, c.ProgrammeName }).ToList();
            //listExam.ProgrammesList = new SelectList(listProgrammes, "ProgrammeCode", "ProgrammeName");

            //var student = new Student();
            //if (programmeCode == "ITIS")
            //{

            //    foreach (var item in programmeCode)
            //    {
            //        listExam.Exams.ToList();
            //    }
            //}

            return(View(listExam));
        }
        public ActionResult Index()
        {
            var examViewModel = new ExamViewModel();

            examViewModel.departs = _departmentInfoAppService.GetAllDepartmentInfos();
            return(View(examViewModel));
        }
Esempio n. 17
0
        public async Task CheckIfCheckForPermissionsWorkCorrectly()
        {
            var user = new ApplicationUser
            {
                Id = Guid.NewGuid().ToString(),
            };
            var user2 = new ApplicationUser
            {
                Id = Guid.NewGuid().ToString(),
            };

            var exam = new ExamViewModel
            {
                Id      = Guid.NewGuid().ToString(),
                Creator = user,
            };

            ArgumentException exception = await Assert.ThrowsAsync <ArgumentException>(() => this.Service.CheckForPermissions(exam, user2));

            Assert.Equal("You do not have permission to perform this action. Please contact an administrator.", exception.Message);

            var checkForException = await Record.ExceptionAsync(() => this.Service.CheckForPermissions(exam, user));

            Assert.Null(checkForException);
        }
Esempio n. 18
0
        public bool CreateExam([FromBody] ExamViewModel data)
        {
            ///Önce sınavda başlık ve makaleyi veritabanına kaydediyoruz
            Exam exam = new Exam()
            {
                Title   = data.Title,
                Content = data.Content
            };

            using (var db = new Context())
            {
                db.Add(exam);
                db.SaveChanges();
            }

            ///Daha sonra ise sınava ait soruları veritabanına ekliyoruz
            data.QuestionList.ForEach(question => {
                question.ExamId = exam.ExamId;

                using (var db = new Context())
                {
                    db.Add(question);
                    db.SaveChanges();
                }
            });

            return(true);
        }
Esempio n. 19
0
        public IActionResult CreateExam([FromBody] ExamViewModel exam)
        {
            var examBlModel = exam.GetBlModel();

            _examService.CreateExam(examBlModel, exam.Classrooms);
            return(NoContent());
        }
Esempio n. 20
0
        public ExamView()
        {
            InitializeComponent();
            var vm = new ExamViewModel();

            this.DataContext = vm;
        }
Esempio n. 21
0
 public async Task CheckForPermissions(ExamViewModel exam, ApplicationUser user)
 {
     if (!await this.userManager.IsInRoleAsync(user, GlobalConstants.AdministratorRoleName) && exam.Creator.Id != user.Id)
     {
         throw new ArgumentException("You do not have permission to perform this action. Please contact an administrator.");
     }
 }
Esempio n. 22
0
        public IActionResult FinishExam(ExamViewModel examViewModel)
        {
            var user   = _userService.GetUserByUserName(User.Identity.Name).Data;
            var result = _questionService.FinishExam(examViewModel.Questions.Select(x => x.Id).ToList(), examViewModel.UserAnswers, user).Data;

            return(View(result));
        }
Esempio n. 23
0
        public IActionResult Edit(int id, [Bind("Id,Date,StartTime,EndTime,CourseId,TeacherId")] ExamViewModel examViewModel)
        {
            if (id != examViewModel.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    Exam exam = MapToExam(examViewModel);
                    _examManager.Update(exam);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ExamExists(examViewModel.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index), new { message = "edit" }));
            }
            return(View());
        }
        public ActionResult ApproeExamPaper()
        {
            string paperId       = Request.QueryString["paperId"];
            var    examViewModel = new ExamViewModel();

            examViewModel.PaperId = int.Parse(paperId);
            return(View("~/Areas/Admin/Views/ExamPaper/ApproeExamPaper.cshtml", examViewModel));
        }
Esempio n. 25
0
        public ActionResult ExamResult()
        {
            string        examId = Request.QueryString["examId"];
            ExamViewModel vm     = new ExamViewModel();

            vm.ExamId = int.Parse(examId);
            return(View(vm));
        }
        public ActionResult PaperManage()
        {
            string examId        = Request.QueryString["examId"];
            var    examViewModel = new ExamViewModel();

            examViewModel.ExamId = int.Parse(examId);
            return(View("~/Areas/Admin/Views/ExamManage/PaperManage.cshtml", examViewModel));
        }
        public ActionResult AddUsers(string keyword = "", int departmentId = 0, int jobPostId = 0, int pIndex = 1)
        {
            string examId        = Request.QueryString["examId"];
            var    examViewModel = new ExamViewModel();

            examViewModel.ExamId = int.Parse(examId);
            return(View("~/Areas/Admin/Views/ExamManage/addUsers.cshtml", examViewModel));
        }
Esempio n. 28
0
        public ActionResult Create(ExamViewModel exam)
        {
            //_context.Exams.Add();
            _context.SaveChanges();
            var data = _context.Exams.ToList();

            return(PartialView("_InsertQuestion"));
        }
Esempio n. 29
0
        public async Task <IActionResult> Take(ExamViewModel viewModel)
        {
            var user = await this.userManager.GetUserAsync(this.HttpContext.User);

            await this.examsService.SaveResultAsync(viewModel, user);

            return(this.RedirectToAction("Result", "Exams", new { id = viewModel.Id }));
        }
 public ExamPage(PatientItem PatientSelected)
 {
     examViewModel = new ExamViewModel();
     InitializeComponent();
     BindingContext            = examViewModel;
     examViewModel.PatientItem = PatientSelected;
     startExam();
 }