Exemple #1
0
        //答题
        public async Task <IActionResult> OnPostAsync(SetStudentAnswerDto setStudentAnswerModel)
        {
            if (!TryValidateModel(setStudentAnswerModel))
            {
                return(BadRequest(ModelState));
            }

            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(setStudentAnswerModel.Answer);
            var imgs = htmlDoc.DocumentNode.SelectNodes("//img");

            if (imgs != null)
            {
                foreach (var img in imgs)
                {
                    img.AddClass("img-fluid d-block mx-auto  img-responsive center-block");
                    img.SetAttributeValue("style", "width:90%");
                }
                setStudentAnswerModel.Answer = htmlDoc.DocumentNode.OuterHtml;
            }


            var result = await TaskService.SetStudentAnswerAsync(setStudentAnswerModel);

            if (!result.Succeeded)
            {
                ModelState.AddModelError(string.Empty, result.ErrorMessage);
                return(BadRequest(ModelState));
            }

            return(Content("OK"));
        }
Exemple #2
0
        /// <summary>
        /// 学生答题
        /// </summary>
        /// <param name="taskId"></param>
        /// <param name="taskAnswer"></param>
        /// <returns></returns>
        public async Task <Result> SetStudentAnswerAsync(SetStudentAnswerDto model)
        {
            Result response = new Result();

            do
            {
                //学生任务表查找这个任务
                var studentTask = await context.StudentTasks.FirstOrDefaultAsync(e => e.TaskId == model.TaskId && e.StudentId == model.StudentId);

                if (studentTask == null)
                {
                    response.ErrorMessage = "学生表不存在任务";
                    break;
                }

                if (studentTask.IsTeacherModified)
                {
                    response.ErrorMessage = "教师已经批改,不能答题了";
                    break;
                }

                //教师表查找这个任务
                var teacherTask = await context.TeacherTasks.FirstOrDefaultAsync(e => e.Id == model.TaskId);

                if (teacherTask == null)
                {
                    response.ErrorMessage = "教师表不存在任务";
                    break;
                }

                ///超过答题时间了
                if (DateTime.Now > teacherTask.TaskEndTime || DateTime.Now < teacherTask.TaskStartTime)
                {
                    response.ErrorMessage = "不在答题时间内,不能答题";
                    break;
                }


                //已经答过了 不能重复答题
                //if (task.DateTime != DateTime.MinValue)
                //{
                //    response.ErrorMessage = "已经答过了,不能重复答题";
                //    break;
                //}

                studentTask.StudentAnswer     = model.Answer.Trim(); //答案
                studentTask.DateTime          = DateTime.Now;        //答题时间
                studentTask.IsAlreadyAnswered = true;                //设置已经答题

                await context.SaveChangesAsync();

                response.Succeeded = true;
            } while (false);
            return(response);
        }
Exemple #3
0
        public async Task <IActionResult> OnGetAsync()
        {
            if (string.IsNullOrEmpty(TaskId))
            {
                return(BadRequest());
            }


            //根据作业id和学生id获取作业
            StudentTaskInfo = await TaskService.GetStudentTasks()
                              .FirstOrDefaultAsync(e => e.TaskId == TaskId &&
                                                   e.StudentId == CurUserId).ConfigureAwait(false);

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

            TaskInfo = await TaskService.GetTeacherTaskByIdAsync(TaskId);

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

            CourseInfo = await CourseService.GetCourseByIdAsync(TaskInfo.CourseId);

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

            //学生答题
            setStudentAnswerModel = new SetStudentAnswerDto
            {
                TaskId    = TaskId,
                StudentId = CurUserId,
                Answer    = StudentTaskInfo.StudentAnswer
            };

            if (!string.IsNullOrEmpty(TaskInfo.Files))
            {
                Files = Newtonsoft.Json.JsonConvert.DeserializeObject <List <dynamic> >(TaskInfo.Files);
            }

            return(Page());
        }