Exemplo n.º 1
0
        public ActionResult Question(ExerciseQuestion question)
        {
            var questionService = IocContainer.Container.GetInstance <IQuestionService>();

            if (question.ExerciseQuestionId != 0)
            {
                question = questionService.Get(question.ExerciseQuestionId, null);
            }
            string questionJson = SerializerHelper.Serialize(question);

            return(View((object)questionJson));
        }
Exemplo n.º 2
0
        public String BuildQuery(String BaseCommand, Exercise Exercise, ExerciseQuestion Question)
        {
            String query = BaseCommand.ToLower();
            Regex  regex;

            // Handle table alias's
            foreach (var table in Exercise.DataSource.DataSourceTables)
            {
                String alias     = table.TableAlias.ToLower();
                String tableName = table.TableName.ToLower();
                // Only replace alias at word boundaries
                String replacePattern = String.Format(@"\b{0}\b", alias);
                query = Regex.Replace(query, replacePattern, tableName, RegexOptions.IgnoreCase);
            }

            return(query);
        }
Exemplo n.º 3
0
        public void Save(ExerciseQuestion Question, UserModel User)
        {
            if (String.IsNullOrEmpty(Question.CreatedBy))
            {
                Question.CreatedBy              = User.Email;
                Question.CreatedDate            = DateTime.Now;
                Question.ExerciseQuestionIdGuid = Guid.NewGuid();
                if (Question.Exercise == null)
                {
                    var exerciseService = IocContainer.Container.GetInstance <IExerciseService>();
                    Question.Exercise = exerciseService.Get(Question.ExerciseId, User);
                }
                Question.Order = (Question.Exercise.ExerciseQuestions.Select(x => x.Order).Max() + 1) ?? 0;

                if (Question.ExerciseQuestionType == ExerciseQuestionType.UnitTested)
                {
                    Question.AnswerTemplate = "N/A";
                }
            }
            else
            {
                Question.UpdatedBy   = User.Email;
                Question.UpdatedDate = DateTime.Now;
            }

            // Saving the question needs to be done first so that we can get the id back
            // At the moment this will delete all navigation properties though, so take a reference to these lists so they can be restored after
            var questionChoices   = Question.ExerciseQuestionChoices;
            var questionUnitTests = Question.ExerciseQuestionUnitTests;

            _questionRepository.Save(Question);
            Question.ExerciseQuestionChoices   = questionChoices;
            Question.ExerciseQuestionUnitTests = questionUnitTests;

            foreach (var test in Question.ExerciseQuestionUnitTests)
            {
                test.ExerciseQuestionId = Question.ExerciseQuestionId;
                _unitTestsService.Save(test, User);
            }

            foreach (var choice in Question.ExerciseQuestionChoices)
            {
                choice.ExerciseQuestionId = Question.ExerciseQuestionId;
                _choicesService.Save(choice, User);
            }
        }
Exemplo n.º 4
0
        protected ExerciseQuestion Create(ExerciseQuestion Question, UserModel User = null)
        {
            if (User != null)
            {
                Question.ExerciseQuestionAnswereds = _questionAnsweredService.GetByQuestionId(Question.ExerciseQuestionId, User.UserId);
            }

            if (Question.ExerciseQuestionType == ExerciseQuestionType.MultipleChoice)
            {
                Question.ExerciseQuestionChoices = _choicesService.GetByQuestionId(Question.ExerciseQuestionId);
            }
            else if (Question.ExerciseQuestionType == ExerciseQuestionType.UnitTested)
            {
                Question.ExerciseQuestionUnitTests = _unitTestsService.GetByQuestionId(Question.ExerciseQuestionId);
            }

            // Link the child objects to the question
            foreach (var item in Question.ExerciseQuestionUnitTests)
            {
                item.ExerciseQuestion = Question;
            }

            foreach (var item in Question.ExerciseQuestionAnswereds)
            {
                item.ExerciseQuestion = Question;
            }

            foreach (var item in Question.ExerciseQuestionChoices)
            {
                item.ExerciseQuestion = Question;
            }

            // Put the answered information into the question model
            if (User != null)
            {
                Question.Answered = Question.ExerciseQuestionAnswereds.Any();
                if (Question.Answered)
                {
                    Question.AnsweredDate = Question.ExerciseQuestionAnswereds.Select(x => x.CreatedDate).Min();
                }
            }

            return(Question);
        }
        public void Init()
        {
            _testExercise = new QueryExercise()
            {
                DataSource = new DataSource()
                {
                    DataSourceTables = new List<DataSourceTable>() 
                    {
                        new DataSourceTable() 
                        {
                            TableAlias = "test", TableName="test_test" 
                        } 
                    }
                }
            };

            _testQuestion = new MultipleChoiceQuestion();
            _testClass = new TSQLQueryBuilder();
        }
Exemplo n.º 6
0
        public JsonResult SaveQuestion(ExerciseQuestion question)
        {
            Object returnData;

            try
            {
                var service = IocContainer.Container.GetInstance <IQuestionService>();
                service.Save(question, GetCurrentUser());

                returnData = new { Success = true, Data = SerializerHelper.Serialize(question) };
                return(Json(returnData));
            }
            catch (Exception ex)
            {
                returnData = new { Success = false, ErrorMessage = "Error saving question - " + ex.Message };
                Trace.WriteLine(String.Format("Error saving question - {0}", ex.Message));
                return(Json(returnData));
            }
        }
Exemplo n.º 7
0
        public void Save(ExerciseQuestion Question)
        {
            // Does it already exist?
            var exists  = Question.ExerciseQuestionId != 0;
            var context = new SqlConfidenceContext();

            // Stop it saving any related objects
            Question.Exercise = null;
            Question.ExerciseQuestionAnswereds = null;
            Question.ExerciseQuestionChoices   = null;
            Question.ExerciseQuestionUnitTests = null;

            if (!exists)
            {
                context.ExerciseQuestions.Add(Question);
            }
            else
            {
                context.ExerciseQuestions.Attach(Question);
                context.Entry(Question).State = EntityState.Modified;
            }

            context.SaveChanges();
        }
Exemplo n.º 8
0
 public static ExerciseAnswer HandleQuestion(ExerciseQuestion question)
 {
     return(QuestionHandler[question.Question.GetType()](question));
 }