public Task CreateQuestion(QuestionApiModel question) { Question questionModel = question.ToQuestion(); using (DbContextTransaction dbTran = _context.Database.BeginTransaction()) { try { _context.Questions.Add(questionModel); _context.SaveChanges(); var options = question.Options?.Select(x => x.ToOption(questionModel.Id)); _context.Options.AddRange(options); _context.SaveChanges(); dbTran.Commit(); } catch (DbEntityValidationException ex) { dbTran.Rollback(); throw; } } return(Task.FromResult(0)); }
public QuestionApiModel AddQuestion(QuestionApiModel questionApiModel) { Question question = new Question() { QuestionText = questionApiModel.QuestionText, IsOpenToVotes = questionApiModel.IsOpenToVotes }; return m_questionRepository.Add(question).ToApiModel(); }
public static QuestionApiModel ToApiModel(this Question question) { QuestionApiModel apiModel = new QuestionApiModel() { Id = question.Id, QuestionText = question.QuestionText, IsOpenToVotes = question.IsOpenToVotes, Votes = question.Votes }; return apiModel; }
public static Question ToQuestion(this QuestionApiModel questions) { if (questions == null) { return(null); } return(new Question { Name = questions.Name, IsActive = questions.IsActive, QuizId = questions.QuizId }); }
public void AddQuestion() { QuestionApiModel questionApiModelToAdd = new QuestionApiModel { QuestionText = "Test Question", IsOpenToVotes = false }; Question question = new Question { QuestionText = "Test Question", IsOpenToVotes = false }; var questionRepoMock = new Mock<IQuestionRepository>(); questionRepoMock.Setup(repo => repo.Add(It.IsAny<Question>())).Returns(question); QuestionsController controller = new QuestionsController(questionRepoMock.Object); var result = controller.AddQuestion(questionApiModelToAdd); Assert.AreEqual(question.QuestionText, result.QuestionText); Assert.IsInstanceOf<QuestionApiModel>(result); }
public Task UpdateQuestion(QuestionApiModel questionApiModel) { var question = _context.Questions.FirstOrDefault(x => x.Id == questionApiModel.Id); using (DbContextTransaction dbTran = _context.Database.BeginTransaction()) { try { question.Name = questionApiModel.Name; _context.Entry(question).State = EntityState.Modified; List <Option> options = new List <Option>(); questionApiModel.Options.ToList().ForEach( x => options.Add(question.Options .Where(o => o.Code == x.Code) .Select(s => { s.Name = x.Name; return(s); }) .FirstOrDefault())); foreach (var option in options) { _context.Entry(option).State = EntityState.Modified; } _context.SaveChanges(); dbTran.Commit(); } catch (DbEntityValidationException ex) { dbTran.Rollback(); throw; } } return(Task.FromResult(0)); }
public IHttpActionResult UpdateQuestion([FromBody] QuestionApiModel question) { var response = _questionQueryServices.UpdateQuestion(question); return(Ok(response)); }
public void UpdateQuestion(QuestionApiModel questionApiModel) { m_questionRepository.UpdateIsOpenToVotes(questionApiModel.Id, questionApiModel.IsOpenToVotes); }