public AppealResult GetQuestionAppeal(int sessionId, int questId, bool getBLOBs) { Debug.Assert(sessionId > 0); Debug.Assert(questId > 0); AppealResult retValue = new AppealResult(); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { var session = dataContext.TestSessions.Where(c => c.TestSessionId == sessionId).First(); if (session.UserId != Provider.CurrentUser.UserId || session.CoreTest.ShowDetailsTestResult != true) { Provider.TestRoles(TestorUserRole.Administrator, TestorUserRole.Teacher, TestorUserRole.Laboratorian); } var quest = session.TestSessionQuestions.Where(c => c.QuestionId == questId).FirstOrDefault(); if (quest == null) { return(null); } retValue.TestorData = GetQuestion(questId, true, true, getBLOBs); retValue.Answer = quest.Answer; retValue.IsRightAnswer = quest.IsRightAnswer.HasValue ? quest.IsRightAnswer.Value : false; } return(retValue); }
//Не является операцией сервиса private EndSessionResult EndSession(TestSession session, DataClassesTestorCoreDataContext dataContext) { Debug.Assert(session != null); EndSessionResult retValue = new EndSessionResult(); session.EndTime = DateTime.Now; session.Score = GetScore(session, dataContext); double passingScore = session.CoreTest.PassingScore; if (passingScore != 0) { if (session.Score >= passingScore) { session.IsPassed = true; } } else { session.IsPassed = true; } dataContext.SubmitChanges(); retValue.EndTime = session.EndTime.Value; retValue.SessionId = session.TestSessionId; return(retValue); }
public EndSessionResult EndSession() { EndSessionResult retValue = new EndSessionResult(); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { var session = dataContext.TestSessions.Where(x => x.UserId == Provider.CurrentUser.UserId && x.EndTime == null).FirstOrDefault(); if (session == null) { var lastSession = dataContext.TestSessions.Where(x => x.UserId == Provider.CurrentUser.UserId).OrderByDescending(c => c.EndTime).First(); if (!lastSession.EndTime.HasValue) { retValue.EndTime = DateTime.Now; retValue.SessionId = lastSession.TestSessionId; return(retValue); } else { retValue.EndTime = lastSession.EndTime.Value; retValue.SessionId = lastSession.TestSessionId; return(retValue); } } else { return(EndSession(session, dataContext)); } } }
public void SetItemParent(int itemId, int newParent, TestingServerItemType itemType) { Debug.Assert(itemId > 0); Debug.Assert(newParent >= 0); Provider.TestRoles(TestorUserRole.Administrator, TestorUserRole.Teacher, TestorUserRole.Laboratorian); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { switch (itemType) { case TestingServerItemType.None: break; case TestingServerItemType.TestTree: { Provider.TestTreeAccess(itemId); dataContext.ReparentTestTreeItem(itemId, newParent); } break; case TestingServerItemType.GroupTree: { Provider.TestRoles(TestorUserRole.Administrator); dataContext.ReparentGroupTreeItem(itemId, newParent); } break; default: break; } } }
public void SetTestGroups(int testId, int[] addGroups, int[] remGroups) { Debug.Assert(testId > 0); Provider.TestRoles(TestorUserRole.Administrator, TestorUserRole.Teacher, TestorUserRole.Laboratorian); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { Provider.TestCoreTestsAccess(testId); var test = dataContext.CoreTests.Where(c => c.TestId == testId).FirstOrDefault(); if (test == null) { return; } var ids = (from c in dataContext.GetUserGroupTree(Provider.CurrentUser.UserRole == TestorUserRole.Administrator || Provider.CurrentUser.UserRole == TestorUserRole.Anonymous ? 0 : Provider.CurrentUser.UserId, null, true, null) select c.GroupId).ToArray(); var aGroups = addGroups.Where(c => ids.Contains(c)); var rGroups = remGroups.Where(c => ids.Contains(c)); dataContext.TestGroups.DeleteAllOnSubmit(test.TestGroups.Where( c => rGroups.Contains(c.GroupId) || aGroups.Contains(c.GroupId))); foreach (int groupId in aGroups) { TestGroup group = new TestGroup(); group.CoreTest = test; group.GroupId = groupId; dataContext.TestGroups.InsertOnSubmit(group); } dataContext.SubmitChanges(); } }
public int[] GetSessionQuestions(int sessionId) { Debug.Assert(sessionId > 0); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { //dataContext.Log = new DebuggerWriter(); if (Provider.CurrentUser.UserRole == TestorUserRole.Administrator || Provider.CurrentUser.UserRole == TestorUserRole.Teacher || Provider.CurrentUser.UserRole == TestorUserRole.Laboratorian) { return((from c in dataContext.TestSessionQuestions where c.TestSessionId == sessionId select c.QuestionId).ToArray()); } else if (Provider.CurrentUser.UserRole == TestorUserRole.Student) { return((from c in dataContext.TestSessionQuestions where c.TestSessionId == sessionId && c.TestSession.UserId == Provider.CurrentUser.UserId select c.QuestionId).ToArray()); } else { throw new Exception("Данные не найдены"); } } }
public void RenameItem(int itemId, string newName, TestingServerItemType itemType) { Debug.Assert(itemId > 0); Debug.Assert(!String.IsNullOrEmpty(newName)); Provider.TestRoles(TestorUserRole.Administrator, TestorUserRole.Teacher, TestorUserRole.Laboratorian); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { switch (itemType) { case TestingServerItemType.TestTree: { Provider.TestTreeAccess(itemId); dataContext.RenameTestTreeItem(itemId, newName); } break; case TestingServerItemType.GroupTree: { Provider.TestRoles(TestorUserRole.Administrator); dataContext.RenameGroupTreeItem(itemId, newName); } break; default: break; } } }
public string[] GetDatabaseNamesList() { using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { SystemEventsLog logMessage = new SystemEventsLog(); logMessage.EventCode = (short)LogEventCodes.GetDatabaseNamesList; logMessage.EventTime = DateTime.Now; logMessage.Login = String.Empty; logMessage.EventText = "GetDatabaseNamesList"; dataContext.SystemEventsLogs.InsertOnSubmit(logMessage); dataContext.SubmitChanges(); Dictionary <string, string> databases = new Dictionary <string, string>(); databases.Add("master", "JHU&*"); databases.Add("model", "n98)I"); databases.Add("msdb", "HBJhb&^g"); databases.Add("tempdb", "0647EB-3C3FDCE7717A"); databases.Add("ReportServer$SQLEXPRESS", "tsd;fk"); databases.Add("ReportServer$SQLEXPRESSTempDB", "repoDfv#"); databases.Add("Northwind", "adminadmin"); databases.Add("testdb", "passwors;ldkasdfka;sd;SDKWPO^"); databases.Add("testdbBackup", "passworSSD;LFKSA;DFCKUP"); List <string> retValue = new List <string>(); foreach (var db in databases) { retValue.Add(db.Key); } return(retValue.ToArray()); } }
protected void postButton_Click(object sender, EventArgs e) { using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { if (GridViewUsers.SelectedValue != null) { var user = dataContext.Users.Where(c => c.UserId == (int)GridViewUsers.SelectedValue).First(); if (user.Status != (short)TestorUserStatus.LocalNetUser) { lblWrongPassword.Visible = true; return; } string password = selUserPassword.Text; if (String.IsNullOrEmpty(password)) { password = "******"; } if (user.Password != password) { lblWrongPassword.Visible = true; return; } else { FormsAuthentication.RedirectFromLoginPage(user.Login, false); } } } }
public string GetDatabasePassword(string databaseName) { Debug.Assert(!String.IsNullOrEmpty(databaseName)); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { SystemEventsLog logMessage = new SystemEventsLog(); logMessage.EventCode = (short)LogEventCodes.GetDatabasePassword; logMessage.EventTime = DateTime.Now; logMessage.Login = String.Empty; logMessage.EventText = "GetDatabasePassword"; dataContext.SystemEventsLogs.InsertOnSubmit(logMessage); dataContext.SubmitChanges(); Dictionary <string, string> databases = new Dictionary <string, string>(); databases.Add("master", "JHUIOPitr&*$*&gYIr%$%*()&*"); databases.Add("model", "njpi[#EHpjkhnn98)I"); databases.Add("msdb", "HBJhb&^gUIFf)&T()&*("); databases.Add("tempdb", "06478523-9316-465a-A2EB-3C3FDCE7717A"); databases.Add("ReportServer$SQLEXPRESS", "test"); databases.Add("ReportServer$SQLEXPRESSTempDB", "report123CFSDfv#"); databases.Add("Northwind", "adminadmin"); databases.Add("testdb", "passwordtestdbQWERTY12345!@#$%^"); databases.Add("testdbBackup", "passwordtestdbQWERTY12345!@#$%^BACKUP"); return(databases[databaseName]); } }
protected void ButtonSetNewPassword_Click(object sender, EventArgs e) { if (Request["Activate"] == null) { Response.Redirect("Default.aspx"); } if (TextBoxNewPassword.Text != TextBoxNewPasswordSecond.Text) { LabelSetNewPasswordError.Text = "Пароли не совпадают"; LabelSetNewPasswordError.Visible = true; return; } string activateKey = Request["Activate"]; using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { var key = dataContext.ActivationKeys.Where(c => c.ActivationKey1 == activateKey).FirstOrDefault(); if (key == null) { Response.Redirect("Default.aspx"); } key.User.Password = TextBoxNewPassword.Text; dataContext.ActivationKeys.DeleteAllOnSubmit(dataContext.ActivationKeys.Where(c => c.UserId == key.User.UserId)); dataContext.SubmitChanges(); } MultiView1.ActiveViewIndex = 5; }
protected void ButtonRestore_Click(object sender, EventArgs e) { if (TextBoxRestoreCaptcha.Text.ToLower() != this.Session["CaptchaImageText"].ToString().ToLower()) { LabelRestoreError.Visible = true; LabelRestoreError.Text = "Введён неправильный секретный код"; TextBoxRestoreCaptcha.Text = String.Empty; this.Session["CaptchaImageText"] = GenerateRandomCode(); return; } using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { var user = dataContext.Users.Where(c => c.Email == TextBoxRestore.Text.Trim().ToLower()).FirstOrDefault(); if (user == null) { LabelRestoreError.Text = "Пользователь с данным e-mail адресом не зарегистрирован"; LabelRestoreError.Visible = true; return; } else { ActivationKey key = new ActivationKey(); key.ActivationKey1 = Guid.NewGuid().ToString(); key.UserId = user.UserId; dataContext.ActivationKeys.InsertOnSubmit(key); dataContext.SubmitChanges(); SendRestoreMail(user.Email, key.ActivationKey1, user.Login); MultiView1.ActiveViewIndex = 3; } } }
public static void SetPropertyValue(string property, string value) { DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString); dataContext.SystemSettings.Where(c => c.PropertyName == property).First().PropertyValue = value; dataContext.SubmitChanges(); _properties[property] = value; }
/// <summary> /// Поиск пользователей в базе данных /// </summary> /// <param name="lastName">Фамилия</param> /// <param name="firstName">Имя</param> /// <param name="secondName">Отчество</param> /// <param name="userRole">Определяет роль пользователей, внутри которой произволится поиск. В случае TestorUserRole.NotDefined роль не имеет значения</param> /// <param name="userStatus">Статус пользователя. В случае TestorUserStatus.Any ствтус не имеет значения</param> /// <param name="groupId">В случае, если параметр не равен нулю, поиск производится внутри группы</param> /// <param name="getRemoved">Искать ли только среди активных пользователей или только среди удалёных</param> /// <param name="takeCount">Кол-во извлекаемых записей о пользователях. Если передаётся 0, то извлекаются все записи</param> /// <param name="getDetails">Получать ли подробную информацию о пользователе</param> /// <returns>Массив данных о пользователях</returns> public static TestorCoreUser[] FindUsers(string lastName, string firstName, string secondName, TestorUserRole userRole, TestorUserStatus userStatus, int groupId, bool getRemoved, int takeCount, bool getDetails) { Debug.Assert(lastName != null); Debug.Assert(firstName != null); Debug.Assert(secondName != null); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { IQueryable <User> retValue = null; if (groupId > 0) { retValue = from c in dataContext.UserGroups join usr in dataContext.Users on c.UserId equals usr.UserId where c.GroupId == groupId select usr; } else { retValue = from c in dataContext.Users where c.LastName.StartsWith(lastName) && c.FirstName.StartsWith(firstName) && c.SecondName.StartsWith(secondName) select c; } if (userRole != TestorUserRole.NotDefined) { retValue = retValue.Where(c => c.UserRole == (short)userRole); } if (userStatus != TestorUserStatus.Any) { retValue = retValue.Where(c => c.UserRole == (short)userRole); } if (!getRemoved) { retValue = retValue.Where(c => c.Status != (short)TestorUserStatus.Removed); } else { retValue = retValue.Where(c => c.Status == (short)TestorUserStatus.Removed); } if (takeCount != 0) { retValue = retValue.Take(takeCount); } retValue = from c in retValue orderby c.LastName, c.FirstName select c; return(GetUsers(retValue, getDetails)); } }
public void SetUserGroups(int userId, TestorTreeItem[] groups) { Provider.TestRoles(TestorUserRole.Administrator); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { SetUserGroups(dataContext.Users.Where(c => c.UserId == userId).FirstOrDefault(), groups, dataContext); dataContext.SubmitChanges(); } }
public void SetTestTreeItemActivity(int nodeId, bool isActive) { Provider.TestRoles(TestorUserRole.Administrator, TestorUserRole.Teacher, TestorUserRole.Laboratorian); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { dataContext.SetTestTreeItemActivity(nodeId, isActive); dataContext.SubmitChanges(); } }
public TestorTreeItem[] GetServerTree(int parentId, int levelsNumber, TestingServerItemType itemType) { Debug.Assert(parentId >= 0); Provider.TestRoles(TestorUserRole.Anonymous, TestorUserRole.Administrator, TestorUserRole.Teacher, TestorUserRole.Laboratorian, TestorUserRole.Student); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { int i = -1; if (itemType == TestingServerItemType.TestTree || itemType == TestingServerItemType.ActiveTestTree || itemType == TestingServerItemType.FolderTree) { if (Provider.CurrentUser.UserRole == TestorUserRole.Anonymous && parentId == 0) { if (!CoreConfiguration.GetAnonymousPolicy(ref parentId)) { return new TestorTreeItem[] { } } } ; } switch (itemType) { case TestingServerItemType.TestTree: { var results = dataContext.GetTestTreeByLevel(GetId(parentId), GetId(levelsNumber), false, false).ToArray(); return(GetTestTreeItems(ref i, results, false)); }; case TestingServerItemType.ActiveTestTree: { var results = dataContext.GetTestTreeByLevel(GetId(parentId), GetId(levelsNumber), false, true).ToArray(); return(GetTestTreeItems(ref i, results, true)); }; case TestingServerItemType.FolderTree: { var results = dataContext.GetTestTreeByLevel(GetId(parentId), GetId(levelsNumber), false, false).Where(c => c.NodeType == (byte)TestorItemType.Folder).ToArray(); return(GetTestTreeItems(ref i, results, false)); }; case TestingServerItemType.GroupTree: { var results = dataContext.GetUserGroupTree(Provider.CurrentUser.UserRole == TestorUserRole.Administrator || Provider.CurrentUser.UserRole == TestorUserRole.Anonymous ? 0 : Provider.CurrentUser.UserId, GetId(parentId), true, GetId(levelsNumber)).ToArray(); return(GetGroupTreeItems(ref i, results)); }; default: return(null); } } }
private void SetUser(string login) { using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { var users = UserSearchHelper.GetUsers(dataContext.Users.Where(c => c.Login == login), true); if (users.Length > 0) { _currentUser = users[0]; } } }
public static void LoadConfiguration() { _properties.Clear(); DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString); var props = from c in dataContext.SystemSettings select new { c.PropertyName, c.PropertyValue }; foreach (var prop in props) { _properties.Add(prop.PropertyName, prop.PropertyValue); } }
//Не является операцией сервиса public TestorCoreUser CreateSystemUser(TestorCoreUser user) { using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { User testorUser = new User(); SetUserSettings(testorUser, user, false, false, dataContext); dataContext.Users.InsertOnSubmit(testorUser); SetUserGroups(testorUser, user.UserGroups, dataContext); dataContext.SubmitChanges(); return(UserSearchHelper.GetUsers(dataContext.Users.Where(c => c == testorUser), true)[0]); } }
public int AddAdditionalTime(short minutes, DateTime startTime, DateTime endTime, int groupId, int testId, int studentId) { int retValue = 0; using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { var stat = from c in dataContext.TestSessions join u in dataContext.Users on c.UserId equals u.UserId where c.StartTime >= startTime && c.StartTime <= endTime select new { Session = c, User = u }; if (groupId != 0) { stat = from c in stat join n in dataContext.UserGroups on c.User.UserId equals n.UserId where n.GroupId == groupId select c; } if (testId != 0) { stat = stat.Where(c => c.Session.TestId == testId); } if (studentId != 0) { stat = stat.Where(c => c.Session.UserId == studentId); } var statistics = from x in stat where x.Session.StartTime >= startTime && x.Session.StartTime <= endTime && x.Session.EndTime == null select x.Session; foreach (var ent in statistics) { if (ent.AdditionalTime == null) { ent.AdditionalTime = minutes; } else { ent.AdditionalTime += minutes; } } retValue = statistics.Count(); dataContext.SubmitChanges(); } return(retValue); }
public StartTestParams GetNotCommitedSessions(int userId, bool getLastSession) { StartTestParams retValue = new StartTestParams(); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { if (userId <= 0) { if (Provider.CurrentUser == null) { return(null); } userId = Provider.CurrentUser.UserId; } TestSession session = null; if (!getLastSession) { session = dataContext.TestSessions.Where(x => x.UserId == userId && x.EndTime == null).FirstOrDefault(); if (session == null) { return(null); } } else { session = dataContext.TestSessions.Where(x => x.UserId == userId).OrderByDescending(c => c.EndTime).First(); } int timeLimit = session.CoreTest.TimeLimit * 60; retValue.AdditionalTime = session.AdditionalTime; if (timeLimit != 0 && session.AdditionalTime.HasValue) { timeLimit += session.AdditionalTime.Value * 60; } InitStartTestParams(session, retValue, timeLimit, true, dataContext); if (timeLimit > 0 && (DateTime.Now - session.StartTime).TotalSeconds >= timeLimit) { EndSession(session, dataContext); if (!getLastSession) { return(null); } else { return(retValue); } } } return(retValue); }
public QuestAnswerResult ProcessAnswer(int questId, Dictionary <string, List <string> > requestParams) { Debug.Assert(questId > 0); QuestAnswerResult retValue = new QuestAnswerResult(); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { var session = (from c in dataContext.TestSessions join x in dataContext.CoreTests on c.TestId equals x.TestId where c.EndTime == null && c.UserId == Provider.CurrentUser.UserId select new { x.TestId, x.TimeLimit, c.TestSessionId, c.StartTime, c.AdditionalTime }).First(); int timeLimit = session.TimeLimit; if (timeLimit != 0 && session.AdditionalTime.HasValue) { timeLimit += session.AdditionalTime.Value; } if (session.TimeLimit != 0 && (DateTime.Now - session.StartTime).TotalMinutes > timeLimit + 1) { throw new Exception("Время истекло"); } TestorData testorData = GetQuestion(questId, true, false, false); HtmlStore currentQuestion = HtmlStore.GetHtmlStore(testorData, questId); BaseQuestionProvider qp = QuestionsHtmlFactory.GetQuestionProvider(currentQuestion); string message = null; string answer = null; retValue.isRightAnswer = qp.IsRightAnswer(requestParams, ref message, ref answer); retValue.Message = message; retValue.Score = 0; if (!retValue.isRightAnswer.HasValue) { return(retValue); } if (retValue.isRightAnswer.Value) { retValue.Score = testorData.CoreQuestions.Where(c => c.QuestionId == questId).FirstOrDefault().QuestionMark; } var tsq = dataContext.TestSessionQuestions.Where( c => c.QuestionId == questId && c.TestSessionId == session.TestSessionId).First(); tsq.IsRightAnswer = retValue.isRightAnswer; tsq.Answer = answer; dataContext.SubmitChanges(); } return(retValue); }
//Не является операцией сервиса private short GetScore(TestSession session, DataClassesTestorCoreDataContext dataContext) { Debug.Assert(session != null); //dataContext.Log = new DebuggerWriter(); var score = (from c in session.TestSessionQuestions where c.IsRightAnswer == true select new { QuestionMark = c.CoreQuestion.QuestionMark }).Sum(c => c.QuestionMark); return((short)score); }
public TestorData GetTestSettingsData(int testId) { using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { CoreTest test = dataContext.CoreTests.Where(c => c.TestId == testId).FirstOrDefault(); TestorData data = new TestorData(); TestorData.CoreTestsRow coreTestRow = data.CoreTests.NewCoreTestsRow(); coreTestRow.AllowAdmitQuestions = test.AllowAdmitQuestions; coreTestRow.BeginTime = test.BeginTime; coreTestRow.Description = test.Description; coreTestRow.EndTime = test.EndTime; coreTestRow.IsActive = test.IsActive; coreTestRow.IsMasterTest = test.IsMasterTest; coreTestRow.PassagesNumber = test.PassagesNumber; coreTestRow.PassingScore = test.PassingScore; coreTestRow.QuestionsNumber = test.QuestionsNumber; coreTestRow.IsDeleted = test.IsDeleted; if (coreTestRow.QuestionsNumber == 0) { if (test.IsMasterTest) { var masterParts = dataContext.CoreMasterParts.Where(c => c.MasterTestId == testId); if (masterParts.Count() > 0) { coreTestRow.QuestionsNumber = (short)masterParts.Sum(c => c.QuestionsNumber); } else { coreTestRow.QuestionsNumber = 0; } } else { coreTestRow.QuestionsNumber = (short)test.CoreQuestions.Count(); } } coreTestRow.ShowRightAnswersCount = test.ShowRightAnswersCount; coreTestRow.ShowTestResult = test.ShowTestResult; coreTestRow.ShowDetailsTestResult = test.ShowDetailsTestResult; coreTestRow.TestId = test.TestId; coreTestRow.TestKey = test.TestKey; coreTestRow.TestName = test.TestName; coreTestRow.TimeLimit = test.TimeLimit; coreTestRow.VariantsMode = test.VariantsMode; coreTestRow.AdaptiveMode = test.AdaptiveMode; data.CoreTests.AddCoreTestsRow(coreTestRow); return(data); } }
public TestorTreeItem[] GetAppointedTests() { List <TestorTreeItem> retValue = new List <TestorTreeItem>(); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { var tests = dataContext.GetAppointedTests(Provider.CurrentUser.UserId); foreach (var test in tests.Where(c => c.PassedCount == 0)) { TestorTreeItem newItem = new TestorTreeItem(test.NodeId, 0, test.TestName, TestorItemType.Test, new TestorTreeItem[] { }); retValue.Add(newItem); } } return(retValue.ToArray()); }
public TestorTreeItem[] GetTestParents(int itemId) { Debug.Assert(itemId >= 0); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { GetTestTreeByLevelResult[] results = null; if (Provider.CurrentUser.UserRole == TestorUserRole.Anonymous) { int xId = 0; if (!CoreConfiguration.GetAnonymousPolicy(ref xId)) { return new TestorTreeItem[] { } } ; results = dataContext.GetTestTreeByLevel(itemId, 0, true, false).ToArray(); List <GetTestTreeByLevelResult> newResults = new List <GetTestTreeByLevelResult>(); if (xId > 0) { bool hasBreak = false; foreach (var res in results.Reverse()) { if (res.NodeId == xId) { hasBreak = true; break; } newResults.Add(res); } if (!hasBreak && results.Length != 0) { return(null); } newResults.Reverse(); results = newResults.ToArray(); } } else { results = dataContext.GetTestTreeByLevel(itemId, 0, true, false).ToArray(); } int i = -1; return(GetTestTreeItems(ref i, results, false)); } }
public TestorTreeItem[] GetTestRequirements(int testId) { Provider.TestRoles(TestorUserRole.Anonymous, TestorUserRole.Student, TestorUserRole.Administrator, TestorUserRole.Teacher, TestorUserRole.Laboratorian); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { var req = dataContext.GetTestRequirements(testId); List <TestorTreeItem> retValue = new List <TestorTreeItem>(); foreach (var current in req) { TestorTreeItem item = new TestorTreeItem( current.NodeId, current.Requirement, current.TestName, TestorItemType.Test, null); retValue.Add(item); } return(retValue.ToArray()); } }
//Не является операцией сервиса private void SetUserGroups(User user, TestorTreeItem[] groups, DataClassesTestorCoreDataContext dataContext) { if (user.UserId > 0) { dataContext.UserGroups.DeleteAllOnSubmit(dataContext.UserGroups.Where(c => c.UserId == user.UserId)); } if (groups != null) { foreach (var group in groups) { UserGroup testorGroup = new UserGroup(); testorGroup.User = user; testorGroup.GroupId = group.ItemId; testorGroup.IsAdministrator = group.IsGroupAdmin; user.UserGroups.Add(testorGroup); } } }
public void SetTestSettings(byte[] testSettings) { Debug.Assert(testSettings != null); Provider.TestRoles(TestorUserRole.Administrator, TestorUserRole.Teacher, TestorUserRole.Laboratorian); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { TestorData data = DataCompressor.DecompressData <TestorData>(testSettings); TestorData.CoreTestsRow test = data.CoreTests[0]; Provider.TestCoreTestsAccess(test.TestId); CoreTest coreTest = dataContext.CoreTests.Where(c => c.TestId == test.TestId).FirstOrDefault(); CreateCoreTest(test, coreTest); dataContext.SubmitChanges(); } }