Esempio n. 1
0
        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
            })));
        }
Esempio n. 2
0
        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
            })));
        }