public JObject StartTest([FromBody] IntegerInput user) { MainDBContext mainDBContext = new MainDBContext(); var countQuestions = mainDBContext.Questions.Count(); var prevTest = mainDBContext.Statisics.Where(x => x.UserID == user.Value) .Select(x => x.TestResult).FirstOrDefault(x => x.UserAnswers.Count() != countQuestions); if (prevTest != null) { return(JObject.Parse(JsonConvert.SerializeObject(new StartActionNet { IsStartPrev = true, PrevID = prevTest.ID, ResultCode = ResultCode.Success, WorkID = user.Value }))); } var testResult = new TestResult { DateTime = DateTime.Now }; var statistics = new Statisics { TestResult = testResult, UserID = user.Value }; mainDBContext.Entry(testResult).State = Microsoft.EntityFrameworkCore.EntityState.Added; mainDBContext.Entry(statistics).State = Microsoft.EntityFrameworkCore.EntityState.Added; mainDBContext.SaveChanges(); return(JObject.Parse(JsonConvert.SerializeObject(new StartActionNet { IsStartPrev = false, WorkID = user.Value, ResultCode = ResultCode.Success, PrevID = testResult.ID }))); }
public JObject StartTest([FromBody] IntegerInput user) { MainDBContext mainDBContext = new MainDBContext(); var countOfQuestionInTicket = mainDBContext.Questions.GroupBy(x => x.TicketNum).Select(x => new { Ticket = x.Key, Count = x.Count() }); var usersAnswerAll = mainDBContext.Statisics.Where(x => x.UserID == user.Value).Select(x => x.TestResult); foreach (var userAnswer in usersAnswerAll) { var count = mainDBContext.UserAnswers.Where(x => x.TestResultID == userAnswer.ID).Select(x => x.Question); if (count.Count() > 0) { var type = count.First().TicketNum; if (count.Count() < countOfQuestionInTicket.FirstOrDefault(x => x.Ticket == type).Count) { return(JObject.Parse(JsonConvert.SerializeObject(new StartActionNet { IsStartPrev = true, PrevID = userAnswer.ID, ResultCode = ResultCode.Success, WorkID = user.Value }))); } } else { return(JObject.Parse(JsonConvert.SerializeObject(new StartActionNet { IsStartPrev = true, PrevID = userAnswer.ID, ResultCode = ResultCode.Success, WorkID = user.Value }))); } } var testResult = new TestResult { DateTime = DateTime.Now }; var statistics = new Statisics { TestResult = testResult, UserID = user.Value }; mainDBContext.Entry(testResult).State = Microsoft.EntityFrameworkCore.EntityState.Added; mainDBContext.Entry(statistics).State = Microsoft.EntityFrameworkCore.EntityState.Added; mainDBContext.SaveChanges(); return(JObject.Parse(JsonConvert.SerializeObject(new StartActionNet { IsStartPrev = false, WorkID = user.Value, ResultCode = ResultCode.Success, PrevID = testResult.ID }))); }