public HttpResponseMessage GetUsersAnswers(int moduleId, int userId) { try { Requires.NotNegative("moduleId", moduleId); var ctl = new AnswerController(); var answers = ctl.GetAnswers(moduleId).Where(a => a.AssignedUserId == userId).ToJson(); return Request.CreateResponse(HttpStatusCode.OK, answers); } catch (Exception exc) { Exceptions.LogException(exc); return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc); } }
public HttpResponseMessage AddAnswer(AnswerInfo answerDto) { try { Requires.NotNull("answerDto.AnswerId", answerDto.AnswerId); Requires.NotNegative("answerDto.QuestionId", answerDto.QuestionId); Requires.NotNull("answerDto.AnswerText", answerDto.AnswerText); Requires.NotNegative("answerDto.ModuleId", answerDto.ModuleId); Requires.NotNegative("answerDto.OrderIndex", answerDto.OrderIndex); Requires.NotNegative("answerDto.CreatedByUserId", answerDto.CreatedByUserId); Requires.NotNegative("answerDto.LastModifiedByUserId", answerDto.LastModifiedByUserId); var ac = new AnswerController(); // get the answer from the database to maintain data integrity var answer = ac.GetAnswer(answerDto.AnswerId, answerDto.ModuleId); if (answer == null) { UserInfo _currentUser = UserController.Instance.GetCurrentUserInfo(); int UserID = _currentUser.UserID; // this is a new question // update all values answer = new AnswerInfo() { QuestionId = answerDto.QuestionId, AnswerId = answerDto.AnswerId, AnswerText = answerDto.AnswerText, ModuleId = answerDto.ModuleId, OrderIndex = answerDto.OrderIndex, AssignedUserId = UserID, CreatedByUserId = answerDto.CreatedByUserId, LastModifiedByUserId = answerDto.LastModifiedByUserId, LastModifiedOnDate = DateTime.Now, CreatedOnDate = DateTime.Now }; ac.CreateAnswer(answer); } else { // this is an existing question that's getting updated // we'll only update the values that are allowed to be updated answer.AnswerText = answerDto.AnswerText; answer.QuestionId = answerDto.QuestionId; answer.AnswerId = answerDto.AnswerId; answer.OrderIndex = answerDto.OrderIndex; answer.LastModifiedByUserId = answerDto.LastModifiedByUserId; answer.LastModifiedOnDate = DateTime.Now; answer.CreatedOnDate = DateTime.Now; ac.UpdateAnswer(answer); } return Request.CreateResponse(HttpStatusCode.OK); } catch (Exception exc) { Exceptions.LogException(exc); return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc); } }