public ActionResult EditGroupTest(int groupInfoId, int?id) { var groupTest = new GroupTest(); groupTest.TestPassRule = new TestPassRule(); var modules = new List <TestModule>(); var modulePercents = new Dictionary <int, int>(); if (id.HasValue) { GroupTestService.LoadWith(x => x.Test, x => x.TestPassRule); groupTest = GroupTestService.GetByPK(id.Value); modulePercents = EntityUtils.GetModulePercents(groupTest.TestPassRule); modules = TestModuleService.GetForTest(groupTest.TestId).ToList(); } else { var groupId = GetGroupIdForInfo(groupInfoId); var group = GroupService.GetByPK(groupId); groupTest.GroupInfoId = groupInfoId; groupTest.DateBegin = group.DateBeg ?? DateTime.Now; groupTest.DateEnd = group.DateEnd ?? DateTime.Now; } var model = new GroupTestEditVM { GroupTest = groupTest, Modules = modules, ModulePercents = modulePercents, }; return(BaseView(new PagePart(new GroupTestEditView().Init(model, Url)))); }
public ActionResult Result(int userTestId) { UserTestService .LoadWith(c => c.Load(x => x.Test, x => x.TestPassRule)); var userTest = UserTestService.GetByPK(userTestId); if (userTest == null) { return(null); } var isEnglishTest = TestRecomendations.IsEnglishTest(userTest.TestId); var courseTCs = RecomendCourseTCs(userTest); var courseTC = userTest.Test.CourseTCSplitList.FirstOrDefault(); var isTrack = !courseTC.IsEmpty() && CourseService.IsTrack(courseTC); var courses = CourseService.GetCourseLinkList(courseTCs).ToList(); var modules = TestModuleService.GetForTest(userTest.TestId).ToList(); var courseName = DictionaryUtils.GetValueNotDefaultKey( CourseService.GetAllActiveCourseNames(), userTest.Course_TC); var model = new TestResultVM { UserTest = userTest, RecCourses = courses, IsOwned = User != null && User.UserID == userTest.UserId, IsPrivatePerson = User != null && !User.IsCompany, Modules = modules, IsTrack = isTrack, Stats = EntityUtils.GetStats(userTest), IsEnglish = isEnglishTest, CourseName = courseName }; return(BaseView(new PagePart(PartialViewNames.Result, model))); }
public ActionResult GetModulesAuto(int testId, string term) { term = term ?? string.Empty; var list = TestModuleService.GetAll(x => x.TestId == testId && x.Name.Contains(term)) .Select(x => Select2VM.Item(x.Id, x.Name)); return(Json(new Select2VM(list), JsonRequestBehavior.AllowGet)); }
public ActionResult DeleteModule(int?id) { TestModuleService.EnableTracking(); var module = TestModuleService.GetByPK(id.Value); EditTestPermission(module.TestId); TestModuleService.DeleteAndSubmit(module); return(Json("ok")); }
public ActionResult GetModules(int testId, AjaxGridRequest model) { var list = TestModuleService .GetAll(x => x.TestId == testId).Select(x => new { x.Id, x.Name }).ToPagedList(model.Page - 1, model.Rows); return(JsonGet(new GridData(list.PageCount, model.Page, list.Count, list))); }
public ActionResult EditTest(int?id) { var test = new Test(); AjaxGridVM modulesModel = null; AjaxGridVM moduleSetsModel = null; AjaxGridVM questionsModel = null; var modules = new List <TestModule>(); var modulePercents = new Dictionary <int, int>(); if (id.HasValue) { TestService.LoadWith(x => x.TestPassRule); test = TestService.GetByPK(id); EditTestPermission(test.Id); modulesModel = new AjaxGridVM { GetListUrl = Url.Action <TestEditController>(c => c.GetModules(id.Value, null)), EditUrl = Url.Action <TestEditController>(c => c.EditModule(id.Value, null)), DeleteUrl = Url.Action <TestEditController>(c => c.DeleteModule(null)), Caption = "Модули" }; AddColumns <TestModule>(modulesModel, x => x.Name); moduleSetsModel = new AjaxGridVM { GetListUrl = Url.Action <TestEditController>(c => c.GetModuleSets(id.Value, null)), EditUrl = Url.Action <TestEditController>(c => c.EditModuleSet(id.Value, null)), Caption = "План тестирования" }; AddColumns <TestModuleSet>(moduleSetsModel, x => x.Number); AddColumns <TestModuleSet>(moduleSetsModel, x => x.Description); questionsModel = new AjaxGridVM { GetListUrl = Url.Action <TestEditController>(c => c.GetQuestions(id.Value, null)), EditUrl = Url.Action <TestEditController>(c => c.EditQuestion(id.Value, null)), DeleteUrl = Url.Action <TestEditController>(c => c.DeleteQuestion(null)), Caption = "Вопросы" }; AddColumns <TestQuestion>(questionsModel, x => x.Description); modulePercents = EntityUtils.GetModulePercents(test.TestPassRule); modules = TestModuleService.GetAll(x => x.TestId == id.Value).ToList(); } test.TestPassRule = test.TestPassRule ?? new TestPassRule(); var testEditVM = new TestEditVM { Test = test, CourseName = CourseService.AllCourseLinks() .GetValueOrDefault(test.CourseTCList).GetOrDefault(x => x.WebName), Modules = modules, ModulePercents = modulePercents }; return(BaseView( new PagePart(new TestEditView().Init(testEditVM, Url)), modulesModel == null ? null : new PagePart(PartialViewNames.AjaxList, modulesModel), questionsModel == null ? null : new PagePart(PartialViewNames.AjaxList, questionsModel), moduleSetsModel == null || test.CompanyId.HasValue ? null : new PagePart(PartialViewNames.AjaxList, moduleSetsModel) )); }
public ActionResult ViewTest(int?id) { var test = TestService.GetFullTest(id.Value); ViewTestPermission(test); var model = new TestReadOnlyVM { Test = test, Modules = TestModuleService.GetForTest(id.Value).ToList(), Checker = EmployeeService.AllEmployees().GetValueOrDefault(test.Checker_TC) }; return(BaseViewWithModel(new TestReadOnlyView(), model)); }
public ActionResult EditModule(int testId, int?id) { var module = new TestModule(); if (id.HasValue) { EditTestPermission(testId); module = TestModuleService.GetByPK(id.Value); } else { module.TestId = testId; } return(BaseView( new PagePart(new ModuleEditView().Init(module, Url).Get().ToString()))); }
public ActionResult EditTest(TestEditVM model) { SetUpdateDateAndLastChanger(model.Test); if (!LinqToSqlValidator.Validate(ModelState, model.Test)) { return(ErrorJson()); } TestService.EnableTracking(); if (model.Test.Id == 0) { model.Test.Status = TestStatus.Edit; model.Test.Author_TC = User.Employee_TC ?? Employees.Specweb; model.Test.CompanyId = User.CompanyID; EntityUtils.SetModulePercents(model.Test.TestPassRule, model.ModulePercents); TestService.InsertAndSubmit(model.Test); TestModuleService.EnableTracking(); TestModuleService.CreateModulesFromCourse(model.Test); return(UrlJson(Url.Action <TestEditController>(c => c.EditTest(model.Test.Id)))); } TestService.LoadWith(x => x.TestPassRule); var test = TestService.GetByPK(model.Test.Id); var isNewCourse = test.CourseTCList != model.Test.CourseTCList; EditTestPermission(test.Id); test.Update(model.Test, x => x.Description, x => x.Name, x => x.CourseTCList ); var newTestPassRule = model.Test.TestPassRule; test.TestPassRule.UpdateBy(newTestPassRule); EntityUtils.SetModulePercents(test.TestPassRule, model.ModulePercents); TestService.SubmitChanges(); if (isNewCourse) { TestModuleService.EnableTracking(); TestModuleService.CreateModulesFromCourse(model.Test); } return(Json("ok")); }
public ActionResult EditModule(TestModule model) { if (!LinqToSqlValidator.Validate(ModelState, model)) { return(ErrorJson()); } EditTestPermission(model.TestId); TestModuleService.EnableTracking(); if (model.Id == 0) { TestModuleService.InsertAndSubmit(model); return(UrlJson(Url.TestEdit().Urls.EditModule(model.TestId, model.Id))); } else { var module = TestModuleService.GetByPK(model.Id); module.Update(model, x => x.Name); TestModuleService.SubmitChanges(); } return(Json("ok")); }
public ActionResult EditModuleSet(int testId, int?id) { EditTestPermission(testId); var model = new ModuleSetVM(); var set = new TestModuleSet(); var modulePercents = new Dictionary <int, int>(); set.TestPassRule = new TestPassRule(); if (id.HasValue) { TestModuleSetService.LoadWith(x => x.TestPassRule); set = TestModuleSetService.GetByPK(id.Value); modulePercents = EntityUtils.GetModulePercents(set.TestPassRule); } else { set.TestId = testId; set.Number = (short)(1 + MaxModuleSetNumber(testId)); } model.ModulePercents = modulePercents; model.ModuleSet = set; model.Modules = TestModuleService.GetForTest(testId).ToList(); return(BaseViewWithModel(new ModuleSetEditView(), model)); }