public JObject FinishTest([FromBody] FinishTestInput integer) { MainDBContext mainDBContext = new MainDBContext(); if (integer.Timeout) { mainDBContext.Remove(mainDBContext.TestResults.Find(integer.Value)); mainDBContext.SaveChanges(); return(JObject.Parse(JsonConvert.SerializeObject(new UniversalActionNet { ResultCode = integer.Timeout ? ResultCode.Success : ResultCode.Error, WorkID = integer.Value }))); } var userAnswers = mainDBContext.UserAnswers.Where(x => x.TestResultID == integer.Value).Select(x => x.Question); bool isEnd = false; if (userAnswers.Count() > 0) { var type = userAnswers.First().TicketNum; isEnd = mainDBContext.Questions.Where(x => x.TicketNum == type).Count() == userAnswers.Count(); } return(JObject.Parse(JsonConvert.SerializeObject(new UniversalActionNet { ResultCode = isEnd ? ResultCode.Success : ResultCode.Error, WorkID = integer.Value }))); }
public JObject FinishTest([FromBody] FinishTestInput integer) { MainDBContext mainDBContext = new MainDBContext(); if (integer.Timeout) { var test = mainDBContext.TestResults.Find(integer.Value); mainDBContext.Statisics.Remove(mainDBContext.Statisics.FirstOrDefault(x => x.TestResult == test)); mainDBContext.TestResults.Remove(test); mainDBContext.SaveChanges(); return(JObject.Parse(JsonConvert.SerializeObject(new UniversalActionNet { ResultCode = ResultCode.Success }))); } int count = mainDBContext.UserAnswers.Where(x => x.TestResultID == integer.Value).Count(); int qcount = mainDBContext.Questions.Count(); if (qcount == count) { var tr = mainDBContext.TestResults.Find(integer.Value); foreach (var userAnswer in mainDBContext.UserAnswers.Where(x => x.TestResult == tr)) { var answer = mainDBContext.TestFinals.FirstOrDefault(x => x.QuestionID == userAnswer.QuestionID && x.AnswerID == userAnswer.AnswerID); if (answer != null) { mainDBContext.TestResultUsers.Add(new Models.TestResultUser { TestFinal = answer, TestResultID = integer.Value }); } } mainDBContext.SaveChanges(); } return(JObject.Parse(JsonConvert.SerializeObject(new UniversalActionNet { ResultCode = count == qcount ? ResultCode.Success : ResultCode.Error, WorkID = integer.Value }))); }