public IActionResult Answer(QuestionPageModel qpm)
        {
            if (ModelState.IsValid)
            {
                qpm.newAnswer.UserId = UserManager.GetUserId(User);
                db.Answers.Add(qpm.newAnswer);
                db.SaveChanges();
            }

            return(RedirectToAction(nameof(Show), new { id = qpm.newAnswer.QuestionId }));
        }
Ejemplo n.º 2
0
        public async Task <object> Index([FromBody] UserModel userModel)
        {
            try
            {
                var list = new List <ApplicationUserListViewModel>();

                var usersOfRole = await _userManager.GetUsersInRoleAsync("Doctor");

                foreach (var user in usersOfRole)
                {
                    list.Add(new ApplicationUserListViewModel()
                    {
                        UserEmail  = user.Email,
                        IsApproved = user.IsApproved,
                        UserId     = user.Id,
                        FirstName  = user.FirstName,
                        LastName   = user.LastName
                    });
                }
                QuestionPageModel model = new QuestionPageModel();
                model.listDoctorsItems = new List <SelectListItem>();
                foreach (var item in list)
                {
                    SelectListItem listItem = new SelectListItem
                    {
                        Text  = string.Concat(item.FirstName, " ", item.LastName),
                        Value = item.UserId
                    };
                    model.listDoctorsItems.Add(listItem);
                }

                return(new SingleResponse <QuestionPageModel>
                {
                    Message = "Questions fetched",
                    DidError = false,
                    ErrorMessage = string.Empty,
                    Token = string.Empty,
                    Model = model
                });
            }
            catch (Exception ex)
            {
                return(new SingleResponse <QuestionPageModel>
                {
                    Message = ex.Message,
                    DidError = true,
                    ErrorMessage = ex.InnerException.ToString(),
                    Token = string.Empty,
                    Model = new QuestionPageModel()
                });
            }
        }
        public IActionResult Show(int id)
        {
            if (!User.Identity.IsAuthenticated)
            {
                return(View("LoginToContinue"));
            }

            QuestionPageModel qpm = new QuestionPageModel();

            Question question = db.Questions.Find(id);


            int numOfLikes = db.QuestionLikes.Where(l => l.UserId == UserManager.GetUserId(User) && l.QuestionId == question.QuestionId).Count();

            if (numOfLikes > 0)
            {
                ViewData["upVoteValue"] = "Liked (" + db.QuestionLikes.Where(q => q.QuestionId == question.QuestionId).ToList().Count() + ")";
                ViewData["upVoteClass"] = "btn-success";
            }
            else
            {
                ViewData["upVoteValue"] = "Like (" + db.QuestionLikes.Where(q => q.QuestionId == question.QuestionId).ToList().Count() + ")";
                ViewData["upVoteClass"] = "btn-outline-success";
            }

            int numOfDislikes = db.QuestionDislikes.Where(l => l.UserId == UserManager.GetUserId(User) && l.QuestionId == question.QuestionId).Count();

            if (numOfDislikes > 0)
            {
                ViewData["downVoteValue"] = "Disliked (" + db.QuestionDislikes.Where(q => q.QuestionId == question.QuestionId).ToList().Count() + ")";
                ViewData["downVoteClass"] = "btn-danger";
            }
            else
            {
                ViewData["downVoteValue"] = "Dislike (" + db.QuestionDislikes.Where(q => q.QuestionId == question.QuestionId).ToList().Count() + ")";
                ViewData["downVoteClass"] = "btn-outline-danger";
            }

            qpm.Question   = question;
            qpm.Questioner = db.Users.Find(question.UserId).UserName;

            qpm.Answers = db.Answers.Where(a => a.QuestionId == question.QuestionId).ToList();

            return(View(qpm));
        }