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); }
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); }