public ActionResult PostQuestion(QuestionPostModel model)
        {
            if (Request.IsAuthenticated)
            {

                if (ModelState.IsValid)
                {
                    try
                    {

                        var checkQuestionIsExist = _db.Questions.Any(m => m.Question.Equals(model.QuestionMessage));
                        if (!checkQuestionIsExist)
                        {
                            var u = _db.ForumUser.FirstOrDefault(m => m.UserName.Equals(User.Identity.Name));
                            if (u != null)
                            {
                                var userId = u.UserId;
                                var userQuestions = new Questions
                                {
                                    PostedDate = DateTime.Now,
                                    Question = model.QuestionMessage,
                                    CategoryId = Convert.ToInt32(model.Category),
                                    UserId = userId,
                                    answers = 0,
                                    views = 0
                                };


                                _db.Questions.Add(userQuestions);
                                _db.SaveChanges();
                                var v = _db.PostInformation.SingleOrDefault(m => m.UserId.Equals(userId));
                                if (v != null)
                                {
                                    var posId = v.PostId;
                                    var totalQuesPost = _db.PostInformation.Find(posId).TotalQuesPost;
                                    if (totalQuesPost != null)
                                    {
                                        var prevPosts = totalQuesPost.Value;
                                        var pi = _db.PostInformation.Find(posId);


                                        pi.TotalQuesPost = prevPosts + 1;

                                        _db.Entry(pi).State = EntityState.Modified;
                                    }
                                }
                            }
                            _db.SaveChanges();

                            ViewData["unLUQC"] = 4;
                            ViewData["QuestionLists"] = (from q in _db.Questions

                                                         join us in _db.ForumUser on q.UserId equals us.UserId
                                                         join c in _db.Category on q.CategoryId equals c.CategoryId
                                                         orderby q.QuestionId descending



                                                         select
                                                             new QuestionList()
                                                             {
                                                                 Question = q.Question,
                                                                 Image = us.Image,
                                                                 PostedBy = us.UserName,
                                                                 Posteddate = q.PostedDate,
                                                                 Category = c.CategoryName,
                                                                 Answers = q.answers,
                                                                 Views = q.views,
                                                                 Id = q.QuestionId
                                                             });
                            var categories = _db.Category.Select(c => new
                            {
                                CategoryID = c.CategoryId,
                                CategoryName = c.CategoryName
                            }).OrderByDescending(m => m.CategoryID).ToList();
                            ViewBag.Categories = new MultiSelectList(categories, "CategoryID", "");



                            Response.Write("<div id='op'></div>");
                        }
                        else
                        {
                            ModelState.AddModelError("","It seems that this question already exist.");
                        }
                  
                    }
                    catch (Exception e)
                    {

                        
                    }


                }

                ViewData["QuestionLists"] = (_db.Questions.Join(_db.ForumUser, q => q.UserId, us => us.UserId,
                    (q, us) => new {q, us})
                    .Join(_db.Category, @t => @t.q.CategoryId, c => c.CategoryId, (@t, c) => new QuestionList()
                    {
                        Question = @t.q.Question,
                        Image = @t.us.Image,
                        PostedBy = @t.us.UserName,
                        Posteddate = @t.q.PostedDate,
                        Category = c.CategoryName,
                        Answers = @t.q.answers,
                        Views = @t.q.views,
                        Id = @t.q.QuestionId
                    })).OrderByDescending(m => m.Id);



                var cates = _db.Category.Select(c => new
                {
                    CategoryID = c.CategoryId,
                    CategoryName = c.CategoryName


                }).ToList();

                ViewBag.Categories = new SelectList(cates, "CategoryID", "CategoryName", Convert.ToInt32(model.Category).ToString());





            }
            else
            {
                ViewBag.authErrorState = 402;
                TempData["UQC"] = 3;
            }



            return View(model);

        }
        private void UpdateTotViews(int id)
        {
            int totAns = _db.Questions.SingleOrDefault(x => x.QuestionId.Equals(id)).views;
            question = _db.Questions.Single(m => m.QuestionId.Equals(id));
            question.views = totAns + 1;
            _db.Entry(question).State = EntityState.Modified;
            _db.SaveChanges();


        }
예제 #3
0
        private void UpdateTotViews(int id)
        {
            var u = _db.Questions.SingleOrDefault(x => x.QuestionId.Equals(id));
            if (u != null)
            {
                var totAns = u.views;
                _question = _db.Questions.Single(m => m.QuestionId.Equals(id));
                _question.views = totAns + 1;
            }
            _db.Entry(_question).State = EntityState.Modified;
            _db.SaveChanges();


        }
        private void UpdateAns(int id)
        {
            Questions question = new Questions();
            int totAns = _db.Questions.SingleOrDefault(x => x.QuestionId.Equals(id)).answers;
            question = _db.Questions.Single(m => m.QuestionId.Equals(id));
            question.answers = totAns + 1;
            _db.Entry(question).State = EntityState.Modified;
            _db.SaveChanges();


        }