Example #1
0
        public ViewModels.QuestionDetail GetQuestionByID(Guid id)
        {
            ViewModels.QuestionDetail question = repository.GetByID <QuestionDefinition>(id).DeepCopyTo <ViewModels.QuestionDetail>();

            question.Options = repository.All <OptionDefinition>().Where(o => o.QuestionID == id).OrderBy(o => o.Order).ToArray();

            return(question);
        }
 public IHttpActionResult GetExamQuestion(Guid id)
 {
     ViewModels.QuestionDetail question = questionRepository.GetQuestionByID(id);
     return(Ok(new
     {
         ID = question.ID,
         QuestionText = question.QuestionText,
         Type = question.Type,
         Options = question.Options.Select(o => new { ID = o.ID, Answer = o.Answer }).ToArray()
     }));
 }
Example #3
0
        public int UpdateQuestion(ViewModels.QuestionDetail question)
        {
            repository.Upsert(question.DeepCopyTo <QuestionDefinition>());

            OptionDefinition[] existingOptions = repository.All <OptionDefinition>().Where(o => o.QuestionID == question.ID).ToArray();

            foreach (OptionDefinition option in question.Options)
            {
                option.QuestionID = question.ID;
                repository.Upsert(option);
            }

            foreach (OptionDefinition item in existingOptions.Where(eo => !question.Options.Any(no => no.ID == eo.ID)))
            {
                repository.Delete(item);
            }

            repository.SaveChanges();

            return(question.Number);
        }
 public IHttpActionResult Post(ViewModels.QuestionDetail question)
 {
     return(Ok(questionRepository.UpdateQuestion(question)));
 }