public async Task <int> StartNewSession(string userName, int testId) { var currentUser = GetUser(userName); var currentTest = context.Tests .Include(t => t.Questions) .Single(o => o.Id == testId); var currentTestSession = new TestSession() { StartTime = DateTime.UtcNow, TestId = currentTest.Id, UserId = currentUser.Id }; context.TestSessions.Add(currentTestSession); var result = await context.SaveChangesAsync(); for (int i = 0; i < currentTest.Questions.Count(); i++) { context.QuestionResults.Add(new QuestionResult { QuestionId = currentTest.Questions[i].Id, SelectedAnswers = "", TestSessionId = currentTestSession.Id }); } await context.SaveChangesAsync(); return(currentTestSession.Id); }
public async Task <IdentityResult> Register(RegistrationVM model) { var identityUser = new IdentityUser { Email = model.Email, UserName = model.Email }; var user = new User { FirstName = model.FirstName, Lastname = model.LastName, UserId = identityUser.Id }; var result = await userManager.CreateAsync(identityUser, model.Password); if (result.Succeeded) { orcaQuizContext.Users.Add(user); await orcaQuizContext.SaveChangesAsync(); await signInManager.SignInAsync(identityUser, isPersistent : false); } return(result); }