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)); }
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); }
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); } }
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(); }
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)); } }
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(); }
public static ExerciseAnswer HandleQuestion(ExerciseQuestion question) { return(QuestionHandler[question.Question.GetType()](question)); }