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() })); }
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))); }