Ejemplo n.º 1
0
        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));
        }