public async Task <IActionResult> DuplicateTest([FromRoute] int id, [FromBody] Test test) { var applicationUser = await _userManager.FindByEmailAsync(User.Identity.Name); if (!ModelState.IsValid) { return(BadRequest()); } await _testRepository.CreateTestAsync(test, applicationUser.Id); return(Ok(await _testRepository.DuplicateTest(id, test))); }
public async Task DuplicateTest() { var category1 = CreateCategory("Aptitude"); var questiontoCreate1 = "Question1"; var question1 = CreateSingleAnswerQuestion(category1, questiontoCreate1); var category2 = CreateCategory("Logical"); var questiontoCreate2 = "Question2"; var question2 = CreateSingleAnswerQuestion(category1, questiontoCreate2); var oldTest = CreateTest("Maths"); var testIp = new TestIpAddress(); testIp.IpAddress = "127.0.0.1"; testIp.TestId = oldTest.Id; string userName = "******"; ApplicationUser user = new ApplicationUser() { Email = userName, UserName = userName }; await _userManager.CreateAsync(user); var applicationUser = await _userManager.FindByEmailAsync(user.Email); await _testRepository.CreateTestAsync(oldTest, applicationUser.Id); var testCategoryObject1 = new TestCategory() { CategoryId = category1.Id, TestId = oldTest.Id, Test = oldTest }; var testCategoryObject2 = new TestCategory() { CategoryId = category2.Id, TestId = oldTest.Id, Test = oldTest }; var testCategoryList = new List <TestCategory>(); testCategoryList.Add(testCategoryObject1); testCategoryList.Add(testCategoryObject2); await _trappistDbContext.TestCategory.AddRangeAsync(testCategoryList); var testQuestionObject1 = new TestQuestion() { QuestionId = question1.Id, TestId = oldTest.Id, Test = oldTest, }; var testQuestionObject2 = new TestQuestion() { QuestionId = question2.Id, TestId = oldTest.Id, Test = oldTest, }; var testQuestionList = new List <TestQuestion>(); testQuestionList.Add(testQuestionObject1); testQuestionList.Add(testQuestionObject2); await _trappistDbContext.TestQuestion.AddRangeAsync(testQuestionList); var testIpAddressObject = new TestIpAddress() { Test = oldTest, TestId = oldTest.Id, IpAddress = testIp.IpAddress }; var testIpList = new List <TestIpAddress>(); testIpList.Add(testIpAddressObject); await _trappistDbContext.TestIpAddresses.AddRangeAsync(testIpList); var newTest = CreateTest("Maths_Copy"); await _testRepository.CreateTestAsync(newTest, applicationUser.Id); await _testRepository.DuplicateTest(oldTest.Id, newTest); var count = await _testRepository.SetTestCopiedNumberAsync(oldTest.TestName); Assert.Equal(4, _trappistDbContext.TestQuestion.Count()); Assert.Equal(4, _trappistDbContext.TestCategory.Count()); Assert.Equal(2, _trappistDbContext.TestIpAddresses.Count()); Assert.Equal(1, count); }