Exemple #1
0
        public JsonResult GetTests(int?subjectId)
        {
            var tests          = TestsManagementService.GetTestsForSubject(subjectId);
            var testViewModels = tests.Select(TestItemListViewModel.FromTest);

            return(Json(testViewModels, JsonRequestBehavior.AllowGet));
        }
Exemple #2
0
        public JsonResult GetQuestionsFromAnotherTests(int testId)
        {
            IEnumerable <Question> questions = TestsManagementService.GetQuestionsFromAnotherTests(testId, CurrentUserId);
            var questionViewModels           = questions.Select(QuestionViewModel.FromQuestion).ToList();

            return(Json(questionViewModels, JsonRequestBehavior.AllowGet));
        }
Exemple #3
0
        public JsonResult GetTest(int id)
        {
            var test = id == 0
                ? new TestViewModel()
                : TestViewModel.FromTest(TestsManagementService.GetTest(id));

            return(Json(test, JsonRequestBehavior.AllowGet));
        }
Exemple #4
0
        public JsonResult GetTestDescription(int testId)
        {
            Test test        = TestsManagementService.GetTest(testId);
            var  description = new
            {
                Title       = test.Title,
                Description = test.Description
            };

            return(Json(description, JsonRequestBehavior.AllowGet));
        }
Exemple #5
0
 public JsonResult SaveTest(TestViewModel testViewModel)
 {
     try
     {
         var savedTest = TestsManagementService.SaveTest(testViewModel.ToTest());
         return(Json(savedTest));
     }
     catch (Exception e)
     {
         return(Json(new { ErrorMessage = e.Message }));
     }
 }
Exemple #6
0
        public JsonResult GetTestForLector()
        {
            IEnumerable <Test> tests = TestsManagementService.GetTestForLector(CurrentUserId);
            var testViewModels       = tests.Select(TestViewModel.FromTest).OrderBy(t => t.Title).ToList();

            testViewModels.Add(new TestViewModel()
            {
                Id    = 0,
                Title = "Все тесты"
            });

            return(Json(testViewModels, JsonRequestBehavior.AllowGet));
        }
Exemple #7
0
        public JsonResult GetSubGroups(int groupId, int subjectId, int testId)
        {
            IEnumerable <TestUnlockInfo> testUnlocks = TestsManagementService.GetTestUnlocksForTest(groupId, testId);

            var subgroups = SubjectsManagementService.GetSubGroups(subjectId, groupId).Select(subGroup => new
            {
                Name     = subGroup.Name,
                Students = subGroup.SubjectStudents.Select(student => new
                {
                    Id       = student.StudentId,
                    Name     = student.Student.FullName,
                    Unlocked = testUnlocks.Single(unlock => unlock.StudentId == student.StudentId).Unlocked
                }).OrderBy(student => student.Name).ToArray()
            }).ToArray();

            return(Json(subgroups, JsonRequestBehavior.AllowGet));
        }
        public PartialViewResult GetNextQuestion(int testId, int questionNumber)
        {
            if (questionNumber == 1 && TestsManagementService.GetTest(testId, true).Questions.Count == 0)
            {
                ViewBag.Message = "Тест не содержит ни одного вопроса";
                return(PartialView("Error"));
            }

            NextQuestionResult nextQuestion = TestPassingService.GetNextQuestion(testId, CurrentUserId, questionNumber);

            if (nextQuestion.Question == null)
            {
                ViewBag.Mark = nextQuestion.Mark;
                return(PartialView("EndTest", nextQuestion.QuestionsStatuses));
            }

            return(PartialView("GetNextQuestion", nextQuestion));
        }
Exemple #9
0
        public ActionResult ChangeLockForUserForStudent(int testId, int studentId, bool unlocked)
        {
            TestsManagementService.UnlockTestForStudent(testId, studentId, unlocked);
            if (unlocked)
            {
                TestPassResult passedByUser = TestPassingService.GetTestPassingTime(testId, studentId);
                if (passedByUser != null)
                {
                    Student student = StudentManagementService.GetStudent(studentId);
                    return(Json(new
                    {
                        PassedTime = passedByUser.StartTime.ToShortDateString(),
                        Test = TestsManagementService.GetTest(testId).Title,
                        Student = string.Format("{0} {1}", student.FirstName, student.LastName),
                        Points = passedByUser.Points
                    }));
                }
            }

            return(Json("Ok"));
        }
Exemple #10
0
 public ActionResult UnlockTests(int[] studentIds, int testId, bool unlock)
 {
     TestsManagementService.UnlockTest(studentIds, testId, unlock);
     return(Json("Ok"));
 }
Exemple #11
0
 public JsonResult DeleteTest(int id)
 {
     TestsManagementService.DeleteTest(id);
     return(Json(id));
 }
        public void Save(int userId, string color)
        {
            var subject = new Subject
            {
                Id               = SubjectId,
                Name             = DisplayName,
                ShortName        = ShortName,
                Color            = color,
                SubjectModules   = new Collection <SubjectModule>(),
                SubjectLecturers = new Collection <SubjectLecturer>()
            };

            foreach (var module in Modules)
            {
                if (module.Checked)
                {
                    if (module.Type == ModuleType.Labs)
                    {
                        subject.SubjectModules.Add(new SubjectModule
                        {
                            ModuleId = ModulesManagementService.GetModules()
                                       .First(e => e.ModuleType == ModuleType.ScheduleProtection).Id,
                            SubjectId = SubjectId
                        });
                        subject.SubjectModules.Add(new SubjectModule
                        {
                            ModuleId = ModulesManagementService.GetModules()
                                       .First(e => e.ModuleType == ModuleType.StatisticsVisits).Id,
                            SubjectId = SubjectId
                        });
                        subject.SubjectModules.Add(new SubjectModule
                        {
                            ModuleId = ModulesManagementService.GetModules()
                                       .First(e => e.ModuleType == ModuleType.Results).Id,
                            SubjectId = SubjectId
                        });
                    }

                    subject.SubjectModules.Add(new SubjectModule
                    {
                        ModuleId  = module.ModuleId,
                        SubjectId = SubjectId
                    });
                }
            }

            subject.SubjectLecturers.Add(new SubjectLecturer
            {
                SubjectId  = SubjectId,
                LecturerId = userId
            });

            var selectedGroupdsOld = new List <SubjectGroup>();

            if (SubjectId != 0)
            {
                selectedGroupdsOld = SubjectManagementService
                                     .GetSubject(new Query <Subject>(e => e.Id == SubjectId).Include(e => e.SubjectGroups)).SubjectGroups
                                     .ToList();
            }

            var oldGroupIds = selectedGroupdsOld.Select(x => x.GroupId);

            if (SelectedGroups != null)
            {
                UpdateNewAssignedGroups(Modules.Where(e => e.Checked),
                                        SelectedGroups.Where(e => !oldGroupIds.Contains(e)).ToList());
                subject.SubjectGroups = SelectedGroups.Select(e => new SubjectGroup
                {
                    GroupId   = e,
                    SubjectId = SubjectId,
                    IsActiveOnCurrentGroup = true
                }).ToList();
            }
            else
            {
                subject.SubjectGroups = new Collection <SubjectGroup>();
            }

            foreach (var subjectSubjectGroup in selectedGroupdsOld)
            {
                if (subject.SubjectGroups.Any(e => e.GroupId == subjectSubjectGroup.GroupId))
                {
                    continue;
                }

                TestsManagementService.UnlockAllTestForGroup(subjectSubjectGroup.GroupId);
                SubjectManagementService.DeleteNonReceivedUserFiles(subjectSubjectGroup.GroupId);
            }

            var acp = Context.AssignedCourseProjects.Include("Student")
                      .Where(x => x.CourseProject.SubjectId == subject.Id);

            foreach (var a in acp)
            {
                var flag = subject.SubjectGroups.Any(s => s.GroupId == a.Student.GroupId);

                if (!flag)
                {
                    Context.AssignedCourseProjects.Remove(a);
                }
                CPManagementService.DeletePercenageAndVisitStatsForUser(a.StudentId);
            }

            var cpg = Context.CourseProjectGroups.Where(x => x.CourseProject.SubjectId == subject.Id);

            foreach (var a in cpg)
            {
                var flag = subject.SubjectGroups.Any(s => s.GroupId == a.GroupId);

                if (!flag)
                {
                    Context.CourseProjectGroups.Remove(a);
                }
            }

            Context.SaveChanges();

            var sub = SubjectManagementService.SaveSubject(subject);

            SubjectId = sub.Id;
            CreateOrUpdateSubGroups();

            foreach (var module in sub.SubjectModules)
            {
                if (module.ModuleId == 9)
                {
                    MaterialsManagementService.CreateRootFolder(module.Id, sub.Name);
                }
            }
        }