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