コード例 #1
0
        private AnswerQuestionViewModel GetAnswerQuestion(int id)
        {
            var model = new AnswerQuestionViewModel();

            var answer = _answerService.GetAnswerById(id);

            var question = _questionService.GetQuestionById(answer.QuestionId);

            model.Answer   = _mapper.Map(answer);
            model.Question = _mapper.Map(question);

            var categories = _questionService.GetQuestionCategories();

            model.Question.QuestionCategories = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(categories, "Id", "Name");


            if (this.User.Identity.IsAuthenticated)
            {
                var username = this.User.Identity.Name;
                model.Answer.CurrentUserIsTheOwner = (username == model.Answer.CreatorName);
            }
            else
            {
                model.Answer.CurrentUserIsTheOwner = false;
            }


            model.DisableInputs = !(model.Answer.CurrentUserIsTheOwner && model.Answer.IsRejected);

            ViewBag.focus = "Index";
            return(model);
        }
コード例 #2
0
        public async Task <IActionResult> AnswerQuestion(string code)
        {
            var model = new AnswerQuestionViewModel();

            model.Questions = await service.GetQuestionsBy(code);

            model.Answers = await service.GetAnswers();

            return(View(model));
        }
コード例 #3
0
        public async Task <IActionResult> CreateQuestionAnswer(AnswerQuestionViewModel model)
        {
            try
            {
                await service.AddQuestionAnswer(model.QuestionAnswers);

                return(Json(new { Success = true, Message = "Pesquisa respondida com sucesso" }));
            }
            catch (Exception ex)
            {
                return(Json(new { Success = false, ex.Message }));
            }
        }
コード例 #4
0
        public async Task <ActionResult> PostAnswerAsync([FromBody] AnswerQuestionViewModel answerQuestionViewModel, int id)
        {
            try
            {
                var entity = _questionService.GetQuestionById(id);
                if (entity == null)
                {
                    return(NotFound());
                }

                var username = answerQuestionViewModel.Username;

                if (string.IsNullOrWhiteSpace(username))
                {
                    return(StatusCode((int)HttpStatusCode.BadRequest, string.Format("Please enter a valid username", username)));
                }

                var user = await _userService.GetUserByUsernameUser(username);

                if (user == null)
                {
                    return(StatusCode((int)HttpStatusCode.BadRequest, string.Format("{0}  is not associated with an account", username)));
                }

                var answer = _questionService.GetAnswerByQuestionAndUserIds(id, user.ID);
                if (answer != null)
                {
                    return(StatusCode((int)HttpStatusCode.OK, "You have answered the question already !!!"));
                }

                answer = new QuestionAnswer
                {
                    QuestionId  = id,
                    UserId      = user.ID,
                    IsCorrect   = answerQuestionViewModel.IsCorrect,
                    IsDeleted   = false,
                    IsDisplayed = true,
                    CreatedOn   = DateTime.Now,
                    UpdatedOn   = DateTime.Now
                };

                var result = await _questionService.AnswerQuestion(answer);

                if (result)
                {
                    return(StatusCode((int)HttpStatusCode.Created, "Question answered successfully !!!"));
                }
                return(StatusCode((int)HttpStatusCode.OK, "Question not answered !!!"));
            }
            catch (Exception ex) { return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message)); }
        }
コード例 #5
0
        public JsonResult AnswerJson(AnswerQuestionViewModel model)
        {
            if (ModelState.IsValid)
            {
                var question = _context.Questions.Find(model.QuestionID);

                question.Answer = model.Answer;
                question.Status = Status.Answered;

                _context.SaveChanges();

                return(Json(new
                {
                    QuestionID = question.QuestionID,
                    Content = question.Content,
                    Answer = question.Answer,
                    PublishedAt = question.PublishedAt
                }, JsonRequestBehavior.DenyGet));
            }

            return(Json(new { Message = "Invalid model" }));
        }
コード例 #6
0
        public async Task <IActionResult> Complete(int id, AnswerCreateViewModel viewModel)
        {
            var user = await GetCurrentUserAsync();

            var currentDateTimeTwo = DateTime.Now;
            var userDB             = _context.Users;
            var surveyDB           = await _context.Surveys.FirstOrDefaultAsync(m => m.SurveyId == id);

            var questionDB = await _context.Questions.Where(q => q.SurveyId == id).ToListAsync();

            //var aqVM = viewModel.AnswerQuestionViewModels;

            List <SelectListItem> recipientList = new List <SelectListItem>();

            recipientList.Insert(0, new SelectListItem {
                Text = "REQUIRED!! Select a person to Receive Feedback", Value = ""
            });

            foreach (var focusU in userDB)
            {
                SelectListItem li = new SelectListItem
                {
                    Value = focusU.Id,
                    Text  = focusU.FullName
                };
                recipientList.Add(li);
            }

            var nullResponse = false;

            var vmitem = new List <AnswerQuestionViewModel>();

            foreach (var aqVM in viewModel.AnswerQuestionViewModels)
            {
                var oldResponse   = aqVM.Response;
                var oldQuestionId = aqVM.QuestionId;

                Question oldQuestion = await _context.Questions.FindAsync(oldQuestionId);

                AnswerQuestionViewModel taco = new AnswerQuestionViewModel();
                {
                    taco.QuestionId   = oldQuestionId;
                    taco.QuestionText = oldQuestion.QuestionText;
                    taco.Response     = oldResponse;
                };
                vmitem.Add(taco);

                if (taco.Response == null)
                {
                    nullResponse = true;
                }

                //Answer duplicate = await _context.Answers
                //    .FirstOrDefaultAsync(a => a.FocusId == viewModel.FocusUserId
                //    && viewModel.ResponderUserId == user.Id && taco.QuestionId == a.QuestionId);
                //if (duplicate != null)
                //{
                //    return RedirectToAction("LoggedIn", "Surveys");
                //}
            }

            viewModel.AnswerQuestionViewModels = vmitem;
            viewModel.SurveyId          = surveyDB.SurveyId;
            viewModel.SurveyName        = surveyDB.SurveyName;
            viewModel.Description       = surveyDB.Description;
            viewModel.Instructions      = surveyDB.Instructions;
            viewModel.ResponderUserId   = user.Id;
            viewModel.ResponderUserName = user.FullName;
            viewModel.ResponseDate      = DateTime.Now;
            viewModel.Recipients        = recipientList;
            ViewData["Recipients"]      = new SelectList(_context.ApplicationUsers, "FocusUserId", "FullName");

            if (nullResponse == true || viewModel.FocusUserId == null)
            {
                return(View(viewModel));
            }

            for (int i = 0; i < viewModel.AnswerQuestionViewModels.Count; i++)
            {
                Answer newAnswer = new Answer
                {
                    ResponderId  = user.Id,
                    FocusId      = viewModel.FocusUserId,
                    QuestionId   = viewModel.AnswerQuestionViewModels[i].QuestionId,
                    Response     = viewModel.AnswerQuestionViewModels[i].Response,
                    ResponseDate = viewModel.ResponseDate
                };
                _context.Add(newAnswer);
            }

            await _context.SaveChangesAsync();

            return(RedirectToAction("LoggedIn", "Surveys"));
        }
コード例 #7
0
        // ************************************************************************  COMPLETE
        public async Task <IActionResult> Complete(int?id)
        {
            var model = new AnswerCreateViewModel();

            var surveyDB = await _context.Surveys.FirstOrDefaultAsync(m => m.SurveyId == id);

            var questionDB = await _context.Questions.Where(q => q.SurveyId == id).ToListAsync();

            // Get current user to assign ResponderUserId in VM
            var user = await GetCurrentUserAsync();

            // Get ALL Users to create a Select List to choose FocusUser
            var userDB = _context.Users;

            List <SelectListItem> recipientList = new List <SelectListItem>();

            recipientList.Insert(0, new SelectListItem {
                Text = "REQUIRED!! Select a person to Receive Feedback", Value = ""
            });

            foreach (var focusU in userDB)
            {
                SelectListItem li = new SelectListItem
                {
                    Value = focusU.Id,
                    Text  = focusU.FullName
                };
                recipientList.Add(li);
            }

            if (model == null)
            {
                return(NotFound());
            }

            var currentDateTime = DateTime.Now;

            var vmitem = new List <AnswerQuestionViewModel>();

            foreach (var question in questionDB)
            {
                AnswerQuestionViewModel taco = new AnswerQuestionViewModel();
                {
                    taco.QuestionId   = question.QuestionId;
                    taco.QuestionText = question.QuestionText;
                    taco.Response     = null;
                };
                vmitem.Add(taco);
            }

            var viewModel = new AnswerCreateViewModel();

            viewModel.SurveyId                 = surveyDB.SurveyId;
            viewModel.SurveyName               = surveyDB.SurveyName;
            viewModel.Description              = surveyDB.Description;
            viewModel.Instructions             = surveyDB.Instructions;
            viewModel.AnswerQuestionViewModels = vmitem;
            viewModel.ResponderUserId          = user.Id;
            viewModel.ResponderUserName        = user.FullName;
            viewModel.Recipients               = recipientList;
            viewModel.ResponseDate             = currentDateTime;

            ViewData["Recipients"] = new SelectList(_context.ApplicationUsers, "FocusUserId", "FullName");

            return(View(viewModel));
        }