public void StartTest() { DbPgSqlContext _DbContext = DbPgSqlContext.Instance(); using (var _Trns = _DbContext.Database.BeginTransaction()) { Interviwee _Interviwee = new DAO.Interviwee() { FirstName = "sdad", LastName = "adasd" }; _Interviwee = _DbContext.Interviwees.Add(_Interviwee); Test _Test = new DAO.Test() { Name = "sdasdasd" }; _Test = _DbContext.Tests.Add(_Test); _DbContext.SaveChanges(); InterviweeTests _Result = _TestingManagement.GetTesting(_Interviwee, _Test); _DbContext.SaveChanges(); Assert.True(_Result.Id > 0); _Trns.Rollback(); } }
/// <summary> /// Проверить существование теста в БД. /// </summary> private bool IsExist(DAO.Interviwee Interviwee) { DAO.Interviwee _FinKey = GetInterviwee(Interviwee.Id); DAO.Interviwee _FindText = GetInterviwee(Interviwee.LastName, Interviwee.FirstName, Interviwee.SecondName); bool _IsExist = _FinKey != null || _FindText != null; return(_IsExist); }
public string GetTestsInterviwee(DTO.Interviwee DtoInterviwee) { DAO.Interviwee _Interviwee = m_InterviweeManagement.GetInterviwee(DtoInterviwee.Id); DAO.Test[] _DaoTests = m_InterviweeManagement.GetCompleteTests(_Interviwee); DTO.Test[] _DtoTests = Utils.ConverObjectByJson <DTO.Test[]>(_DaoTests); string _Json = Utils.JsonSerialize(_DtoTests); return(_Json); }
/// <summary> /// Получить процесс тестирования. /// </summary> /// <param name="Id"></param> /// <returns></returns> internal InterviweeTests GetTesting(DAO.Interviwee Interviwee, DAO.Test Test) { // Найдем незавершенный тест. // Сначала необходимо завершить предыдущий, потом начинать заново. DAO.InterviweeTests _InterviweeTest = _DbContext.InterviweeTests .Include(x => x.Test) .Include(x => x.Interviwee) .Include(x => x.TestingResults) .Where(x => x.InterviweeId == Interviwee.Id & x.TestId == Test.Id & x.IsComplete == false) .SingleOrDefault(); return(_InterviweeTest); }
public void TestingTest() { TestManagement _TestManagement = new TestManagement(); InterviweeManagement _InterviweeManagement = new InterviweeManagement(); KnowledgeTesting.BL.Testing _Testing = new KnowledgeTesting.BL.Testing(); DAO.Interviwee _Interviwee = _InterviweeManagement.GetInterviwee(StaticInterviwee.LasName, StaticInterviwee.FirstName, StaticInterviwee.SecondName); DAO.Test _Test = _TestManagement.GetTest(StaticTests.T1); int _CountCompleteTeststBefore = _Interviwee.Tests.Count(); DAO.InterviweeTests _InterviweeTests = _Testing.GetTesting(_Interviwee, _Test); // Количество отвеченных вопросов // (в конце на 1 больше чем вопрсов из-за последнего прохода цикла для определения статуса завершения). int _CountQuestions = 0; while (!_InterviweeTests.IsComplete) { // Определить статус завершения. _InterviweeTests.IsComplete = _Testing.DetermineStatusComplete(_InterviweeTests); if (!_InterviweeTests.IsComplete) { // Получить следующий вопрос. DAO.Question _Question = _Testing.GetNextQuestion(_InterviweeTests); // Отвтеить на вопрос. if (_Question != null) { _Testing.AnswerToQuestion(_InterviweeTests, _Question, _Question.Answers.First().Answer); } } // Сохранить изменения - БЕЗ этого не возможно определить статус завершения теста. _DbContext.SaveChanges(); _CountQuestions++; Assert.True(_CountQuestions <= 10); } int _CountCompleteTeststAfter = _Interviwee.Tests.Count(); Assert.True(_DbContext.InterviweeTests.Where(x => x.Id == _InterviweeTests.Id).First().IsComplete); Assert.True(_CountCompleteTeststAfter > _CountCompleteTeststBefore); Assert.True(_InterviweeTests.TestingResults.Count() > 0); }
/// <summary> /// Получить список завершенных тестов тестируемого. /// </summary> public DAO.Test[] GetCompleteTests(DAO.Interviwee Interviwee) { int[] IdTests = _DbContext .InterviweeTests .Where(x => x.InterviweeId == Interviwee.Id) .Select(x => x.TestId) .ToArray() ; DAO.Test[] _DaoTests = (from t in _DbContext.Tests where IdTests.Contains(t.Id) select t).ToArray(); return(_DaoTests); }
public string StartTest(DTO.InterviweeTest DtoInterviweeTest) { // Получим объекты параметры для старта прохождения теста. DAO.Interviwee _DaoInterviwee = m_InterviweeManagement.GetInterviwee(DtoInterviweeTest.InterviweeId); DAO.Test _DaoTest = m_TestManagement.GetTest(DtoInterviweeTest.TestId); // Создадим прохождение теста. DAO.InterviweeTests _DaoInterviweeTest = m_Testing.StartTesting(_DaoInterviwee, _DaoTest); // Заполним объект для клиента. DTO.InterviweeTest _DtoInterviweeTest = Utils.ConverObjectByJson <DTO.InterviweeTest>(_DaoInterviweeTest); _DtoInterviweeTest.ProgressText = GetTextProgressTesting(_DaoInterviweeTest); string _Json = GetNextQuestion(_DtoInterviweeTest); return(_Json); }
public string Auth(DTO.Interviwee DtoInterviwee) { DAO.Interviwee _DaoInterviwee = m_InterviweeManagement.GetInterviwee(DtoInterviwee.LastName, DtoInterviwee.FirstName, DtoInterviwee.SecondName); if (_DaoInterviwee == null) { _DaoInterviwee = Utils.ConverObjectByJson <DAO.Interviwee>(DtoInterviwee); m_InterviweeManagement.CreateInterviwee(_DaoInterviwee); _DaoInterviwee = m_InterviweeManagement.GetInterviwee(DtoInterviwee.LastName, DtoInterviwee.FirstName, DtoInterviwee.SecondName); } DTO.Interviwee _DtoInterviwee = Utils.ConverObjectByJson <DTO.Interviwee>(_DaoInterviwee); string _Json = Utils.JsonSerialize(_DtoInterviwee); return(_Json); }
/// <summary> /// Начать/получить процесс тестирования. /// </summary> public DAO.InterviweeTests StartTesting(DAO.Interviwee Interviwee, DAO.Test Test) { DAO.InterviweeTests _InterviweeTest = GetTesting(Interviwee, Test); // Не нашли - создать прохождение теста. if (_InterviweeTest != null) { return(_InterviweeTest); } _InterviweeTest = new DAO.InterviweeTests() { InterviweeId = Interviwee.Id, TestId = Test.Id, IsComplete = false }; return(StartTesting(_InterviweeTest)); }
public void CreateInterviewerTest() { InterviweeManagement _InterviweeManagement = new InterviweeManagement(); DAO.Interviwee _Interviwee = new DAO.Interviwee() { LastName = StaticInterviwee.LasName, FirstName = StaticInterviwee.FirstName, SecondName = StaticInterviwee.SecondName }; _InterviweeManagement.CreateInterviwee(_Interviwee); _DbContext.SaveChanges(); _Interviwee = _InterviweeManagement.GetInterviwee(StaticInterviwee.LasName, StaticInterviwee.FirstName, StaticInterviwee.SecondName); Assert.True( _DbContext.Interviwees.Where(x => x.Id == _Interviwee.Id ).Count() == 1 ); }
public void CreateInterviwee(DAO.Interviwee Interviwee) { if (string.IsNullOrEmpty(Interviwee.FirstName)) { throw new Exception("Пустое имя."); } if (string.IsNullOrEmpty(Interviwee.LastName)) { throw new Exception("Пустая фамилия."); } if (string.IsNullOrEmpty(Interviwee.SecondName)) { throw new Exception("Пустое отчество."); } if (IsExist(Interviwee)) { return; } _DbContext.Interviwees.Add(Interviwee); _DbContext.SaveChanges(); }