public IActionResult UpdateQuestionSet([FromBody] HrmTestQuestionSet from) { try { var qs = ctx.HrmTestQuestionSets.SingleOrDefault(x => x.Id == from.Id); if (qs == null) { // NotModified return(StatusCode(304)); } qs.QuestionSet = from.QuestionSet; qs.TimeOut = from.TimeOut; qs.UpdateUserPosi = from.UpdateUserPosi; qs.UpdateDatePosi = DateTime.Now; ctx.Update(qs); ctx.SaveChanges(); return(Ok()); } catch (Exception ex) { return(StatusCode(500, ex.Message)); } }
public IActionResult CreateQuestion([FromBody] HrmTestQuestionFormBody q) { using (var transaction = ctx.Database.BeginTransaction()) { try { // Question set var questionSet = new HrmTestQuestionSet(); if (q.QuestionSetId == 0) { questionSet.QuestionSet = q.QuestionSet; questionSet.UpdateUserPosi = q.UpdateUserPosi; questionSet.TimeOut = q.TimeOut; questionSet.UpdateDatePosi = DateTime.Now; ctx.Add(questionSet); ctx.SaveChanges(); } else { questionSet = ctx.HrmTestQuestionSets.SingleOrDefault(x => x.Id == q.QuestionSetId); if (questionSet.QuestionSet != q.QuestionSet) { questionSet.QuestionSet = q.QuestionSet; questionSet.TimeOut = q.TimeOut; questionSet.UpdateUserPosi = q.UpdateUserPosi; questionSet.UpdateDatePosi = DateTime.Now; ctx.Update(questionSet); ctx.SaveChanges(); } } // Question var question = new HrmTestQuestion(); question.QuestionSetId = questionSet.Id; question.Question = q.Question; question.Img = q.Img; question.ImgName = q.ImgName; question.Answer = (int)q.Answer; question.UpdateDatePosi = DateTime.Now; question.UpdateUserPosi = q.UpdateUserPosi; ctx.Add(question); ctx.SaveChanges(); // Choice foreach (var c in q.Choice) { var choice = new HrmTestChoice(); choice.Choice = c.Choice; choice.Img = c.Img; choice.ImgName = c.ImgName; choice.QuestionId = question.Id; choice.UpdateUserPosi = c.UpdateUserPosi; choice.UpdateDatePosi = DateTime.Now; ctx.Add(choice); } ctx.SaveChanges(); transaction.Commit(); return(Ok(questionSet)); } catch (Exception ex) { Console.Write(ex.Message); transaction.Rollback(); return(StatusCode(500)); } } }