public async Task <ServiceResponse <ViolationQuestion> > SaveQuestion(Guid accountId, Guid violationId, Guid questionId, string question, bool IsPublic, ViolationQuestionType type, string choices, Guid createdById) { var result = new ServiceResponse <ViolationQuestion>(); try { using (var scope = _accountCtx.Database.BeginTransaction()) { //update CommonViolation table if (questionId != Guid.Empty) { var QuestionDetails = await _accountCtx.ViolationQuestions.SingleOrDefaultAsync(a => a.Id == questionId); if (QuestionDetails != null) { // CitationDetails.UpdateUserId = createdById; QuestionDetails.UpdateUtc = DateTime.Now; QuestionDetails.Question = question; QuestionDetails.Type = type; QuestionDetails.Choices = choices; QuestionDetails.IsRequired = IsPublic; _accountCtx.ViolationQuestions.Update(QuestionDetails); } } else { var questionCount = await _accountCtx.ViolationQuestions.Where(a => a.ViolationId == violationId).CountAsync(); ViolationQuestion ViolationDetails = new ViolationQuestion { ViolationId = violationId, AccountId = accountId, Question = question, CreateUserId = createdById, UpdateUserId = createdById, Order = questionCount, Type = type, Choices = choices, IsRequired = IsPublic }; _accountCtx.ViolationQuestions.Add(ViolationDetails); } await _accountCtx.SaveChangesAsync(); scope.Commit(); } } catch (Exception ex) { _logger.Error(ex, "Error updating a citation"); result.Success = false; result.Message = ex.Message; } return(result); }
public async Task <IActionResult> SaveQuestion(Guid violationId, Guid questionId, string question, bool isPublic, ViolationQuestionType type, string choices) { var result = new ServiceResponse <ViolationQuestion>() { Success = true }; try { result = await _violationSvc.SaveQuestion(CommonAccount.Id, violationId, questionId, question, isPublic, type, choices, User.GetLoggedInUserId().Value); } catch (Exception ex) { result.Success = false; result.Message = ex.Message; } return(Json(result)); }