Пример #1
0
        public async Task <TestAC> GetTestNameAsync(int id)
        {
            var result = await _dbContext.Test.AsNoTracking().Where(x => x.Id == id)
                         .Select(selectOnly => new { selectOnly.TestName, selectOnly.Link, selectOnly.CorrectMarks, selectOnly.Duration, selectOnly.EndDate }).ToListAsync();

            var testACObject = new TestAC()
            {
                TestName     = result.First().TestName,
                Link         = result.First().Link,
                CorrectMarks = result.First().CorrectMarks,
                Duration     = result.First().Duration,
                EndDate      = result.First().EndDate
            };

            return(testACObject);
        }
Пример #2
0
        public async Task <List <TestAC> > GetAllTestsAsync()
        {
            var    testAcList = new List <TestAC>();
            TestAC testAcObject;
            var    tests = await _dbContext.Test.OrderByDescending(x => x.CreatedDateTime).ToListAsync();

            var testIds = tests.Select(x => x.Id).ToList();

            var testAttendeeIds   = _dbContext.TestAttendees.Where(x => testIds.Contains(x.TestId)).Select(x => x.TestId).ToList();
            var testCategoriesIds = _dbContext.TestCategory.Where(x => testIds.Contains(x.TestId)).Select(x => x.TestId).ToList();
            var testQuestionsIds  = _dbContext.TestQuestion.Where(x => testIds.Contains(x.TestId)).Select(x => x.TestId).ToList();

            tests.ForEach(test =>
            {
                testAcObject = new TestAC();
                testAcObject = Mapper.Map <TestAC>(test);
                testAcObject.NumberOfTestAttendees = testAttendeeIds.Count(x => x == test.Id);
                testAcObject.NumberOfTestSections  = testCategoriesIds.Count(x => x == test.Id);
                testAcObject.NumberOfTestQuestions = testQuestionsIds.Count(x => x == test.Id);
                testAcList.Add(testAcObject);
            });

            return(testAcList);
        }