예제 #1
0
        public async Task <IActionResult> GetTestByLinkAsync([FromRoute] string link, [FromRoute] bool isPreview)
        {
            var attendeeId = 0;

            if (link == null)
            {
                return(BadRequest());
            }

            if (!await _testConductRepository.IsTestInValidDateWindow(link, isPreview))
            {
                return(NotFound());
            }

            if (isPreview == false)
            {
                await HttpContext.Session.LoadAsync();

                attendeeId = HttpContext.Session.GetInt32(_stringConstants.AttendeeIdSessionKey).Value;
                if (!await IsAttendeeValid(attendeeId))
                {
                    return(NotFound());
                }
            }
            var testDetails = await _testRepository.GetTestByLinkAsync(link);

            if (isPreview == false)
            {
                await _testRepository.SetStartTestLogAsync(attendeeId);
            }
            return(Ok(testDetails));
        }
예제 #2
0
        public async Task SetStartTestLog()
        {
            var test = CreateTest("Mathematics");
            await _testRepository.CreateTestAsync(test, "5");

            var testAttendee = CreateTestAttendee(test.Id);
            var testLogs     = new TestLogs()
            {
                Id                   = 1,
                TestAttendeeId       = testAttendee.Id,
                VisitTestLink        = DateTime.UtcNow,
                FillRegistrationForm = DateTime.UtcNow,
                StartTest            = default(DateTime)
            };

            _trappistDbContext.TestLogs.Add(testLogs);
            await _trappistDbContext.SaveChangesAsync();

            await _testRepository.SetStartTestLogAsync(testAttendee.Id);

            var attendeeStartTestLog = _trappistDbContext.TestLogs.Where(x => x.TestAttendeeId == testAttendee.Id).Select(x => x.StartTest).FirstOrDefault();

            testLogs.StartTest = attendeeStartTestLog;
            Assert.True(testLogs.StartTest != default(DateTime));
        }