public ActionResult PostAnswer(int? id, string msg)
        {
            if (id != null)
            {
                ViewBag.id = id.Value;
                if (Request.IsAuthenticated)
                {
                    var authuserId = _db.ForumUser.Single(m => m.UserName.Equals(User.Identity.Name)).UserId;
                   
          

                    if (msg != "")
                    {
                        if (msg.Length >= 10)
                        {
                            var ms = "";
                            var wdb = new WordDbContext();
                  
                            var sensitiveWods = wdb.Words.Select(m => m.SensitiveWord);
                            var strList = new List<SensitiveWordsViewModel>();

                            var convt = msg.ToLower();
                            foreach (var str in sensitiveWods)
                            {
                                if (!convt.Contains(str.ToLower())) continue;
                                var sensitive = new SensitiveWordsViewModel {SensitiveWords = str};
                                strList.Add(sensitive);
                                ViewBag.senWordsMsg = 11;

                                ms = str;
                            }



                            if (ms == "")
                            {

                                var checKIsReplyExist = _db.Answers.Any(m => m.UserId.Equals(authuserId) && m.QuestionId.Equals(id.Value));
                                if (!checKIsReplyExist)
                                {
                                    var ans = new Answers
                                    {
                                        UserId = authuserId,
                                        AnsweredTimeDate = DateTime.Now,
                                        QuestionId = id.Value,
                                        Answer = msg,
                                        Rating = 0
                                    };

                                    _db.Answers.Add(ans);
                                    _db.SaveChanges();

                                    var u
                                        = _db.PostInformation.SingleOrDefault(m => m.UserId.Equals(authuserId));
                                    if (u != null)
                                    {
                                        var posId = u.PostId;
                                        var v = _db.PostInformation.Find(posId).TotalAnsPost;
                                        if (v != null)
                                        {
                                            var prevPosts = v.Value;
                                            var pi = _db.PostInformation.Find(posId);


                                            pi.TotalAnsPost = prevPosts + 1;

                                            _db.Entry(pi).State = EntityState.Modified;
                                        }
                                    }
                                    _db.SaveChanges();
                                    ViewData["c"] = 4;
                                    ViewBag.operation = 2;
                                    ViewBag.checkCrontroller = 2;
                                    UpdateAns(id.Value);
                                    DisplayQuesAnsComments(id.Value);
                                }
                                else
                                {

                                    ViewData["PostNotAllowedId"] = 1;
                                }
                            }

                            TempData["QiComm"] = id;
                        

                            DisplayQuesAnsComments(id.Value);
                            ViewBag.operation = 2;
                            ViewBag.checkCrontroller = 2;
                            IEnumerable<SensitiveWordsViewModel> s = strList;
                            ViewData["s"] = s;

                        }
                        else
                        {

                            TempData["QiComm"] = id;


                            DisplayQuesAnsComments(id.Value);
                            ViewBag.operation = 2;
                            ViewBag.checkCrontroller = 2;
                            ViewData["ReqMsg"] = 3;
                            ViewData["Mess"] = "* Answers should not contain less than 10 chracters";

                        }
                    }
                    else
                    {
                        TempData["AnsId"] = id.Value;
                        DisplayQuesAnsComments(id.Value);
                        ViewBag.operation = 2;
                        ViewBag.checkCrontroller = 2;
                        ViewData["ReqMsg"] = 3;
                        ViewData["Mess"] = "*  Empty Field not allowed!.Please Write Your Answer";
                    }


             
                    return View("_PostAnswer");
                


                }
                else
                {

                
             
               
                    DisplayQuesAnsComments(id.Value);
             

                    ViewData["c"] = 5;
              
                    ViewBag.operation = 2;
                    ViewBag.checkCrontroller = 2;
                    TempData["HomeAnsPostController"] = 2;




                }


                TempData["QiComm"] = id;
                TempData["AnsId"] = id;

                DisplayQuesAnsComments(id.Value);
            }
            ViewBag.operation = 2;
            ViewBag.checkCrontroller = 2;
            return View("_PostAnswer");





        }
        public ActionResult PostComment(string msg, RatingViewModel model, int? id)
        {
            ViewBag.ansId = id;
            var v = _db.Answers.FirstOrDefault(m => m.AnswerId.Equals(id.Value));
            if (v != null)
                ViewBag.quesTionid = v.QuestionId;

            ViewBag.id = id;
           

            TempData["HPostController"] = 7;


            var strList = new List<SensitiveWordsViewModel>();
            var wdb = new WordDbContext();


            if (Request.IsAuthenticated)
            {
                var u = _db.ForumUser.SingleOrDefault(m => m.UserName.Equals(User.Identity.Name));
                if (u != null)
                {
                    var userId = u.UserId;
             



       
                    if (true)
                    {
                           
                        var authUserId =
                            u.UserId;
                        var w = _db.Answers.SingleOrDefault(m => m.AnswerId.Equals(id.Value));
                        if (w != null)
                        {
                            var thisAnsUserId = w.UserId;
                            if (authUserId == thisAnsUserId)
                            {
                                ViewData["EnableEdit"] = 1;
                            }
                        }


                        if (msg != "")
                        {


                            var ms = "";
                       
                            var sensitiveWods = wdb.Words.Select(m => m.SensitiveWord);
                    

                            var convt = msg.ToLower();
                            foreach (var str in sensitiveWods)
                            {
                                if (!convt.Contains(str.ToLower())) continue;
                                var sensitive = new SensitiveWordsViewModel {SensitiveWords = str};
                                strList.Add(sensitive);
                                ViewBag.senWordsMsg = 11;

                                ms = str;
                            }

                            IEnumerable<SensitiveWordsViewModel> s = strList;
                            ViewData["s"] = s;

                            ViewData["op"] = 1;
                            if (ms == "")
                            {
                               

                                _comment.CommentMsg = msg;
                                _comment.UserId = userId;
                                if (id != null)
                                {
                                    _comment.AnswerId = id.Value;
                                    _comment.PostedDateTime = DateTime.Now;
                                    _db.Comment.Add(_comment);
                                    _db.SaveChanges();
                                    var t = _db.PostInformation.SingleOrDefault(m => m.UserId.Equals(userId));
                                    if (t != null)
                                    {
                                        var posId = t.PostId;
                                        var totalCommentPost = _db.PostInformation.Find(posId).TotalCommentPost;
                                        if (totalCommentPost != null)
                                        {
                                            var prevPosts = totalCommentPost.Value;
                                            var pi = _db.PostInformation.Find(posId);


                                            pi.TotalCommentPost = prevPosts + 1;

                                            _db.Entry(pi).State = EntityState.Modified;
                                        }
                                    }
                                    _db.SaveChanges();
                                    ViewBag.emptyBox = 1;
                                    UpdateTotalComments(id.Value);
                                    DisplayAnswerAndPostedUserInfo(id.Value);
                                    DisplayComments(id.Value);
                                }
                            }
                            if (id != null)
                            {
                                DisplayAnswerAndPostedUserInfo(id.Value);
                                DisplayComments(id.Value);
                            }
                        }
                        else
                        {
                            if (id != null)
                            {
                                DisplayAnswerAndPostedUserInfo(id.Value);
                                DisplayComments(id.Value);
                            }
                            ViewData["op"] = 1;
                            ViewData["ReqMsg"] = 1;
                            ViewBag.errormsg = "* You must Write Something! to Post  comment";

                          
                        }


                    }
                    
                }
            }
            else
            {
                if (id != null)
                {
                    DisplayAnswerAndPostedUserInfo(id.Value);
                    DisplayComments(id.Value);
                }
                ViewData["op"] = 1;
                ViewData["ReqMsg"] = 1;
                ViewData["c"] = 5;

          

            }




            try
            {


                var totalScore = _db.Rating.Where(m => m.AnswerId.Equals(id.Value)).Sum(m => m.RateScore);
                var totalRater = _db.Rating.Count(m => m.AnswerId.Equals(id.Value));
                var avgScore = (double)totalScore / totalRater;
                ViewData["raiting"] = avgScore;
            }
            catch (Exception e) { }



           

          


            return View("Comments",model);
        }
        public ActionResult PostAnswerForAnsweredQuestion(int? id, string msg)
        {

            int tempId = db.TemQuesIdModels.SingleOrDefault(m => m.Id.Equals(1)).TempQuesId;

            if (Request.IsAuthenticated)
            {
                if (id == null)
                {

                    if (msg != "")
                    {
                        if (msg.Length >= 10)
                        {

                            string ms = "";
                            WordDbContext wdb = new WordDbContext();
                            var sensitiveWods = wdb.Words.Select(m => m.SensitiveWord);
                            List<SensitiveWordsViewModel> strList = new List<SensitiveWordsViewModel>();
                            ViewBag.fc = 2;
                            string convt = msg.ToLower();
                            foreach (string str in sensitiveWods)
                            {
                                if (convt.Contains(str))
                                {
                                    SensitiveWordsViewModel sensitive = new SensitiveWordsViewModel();
                                    sensitive.SensitiveWords = str;
                                    strList.Add(sensitive);
                                    ViewBag.senWordsMsg = 11;
                                    ms = str;

                                }





                            }
                            IEnumerable<SensitiveWordsViewModel> s = strList;
                            ViewData["s"] = s;

                            if (ms == "")
                            {
                                Answers ans = new Answers();
                                int authuserId = _db.ForumUser.Single(m => m.UserName.Equals(User.Identity.Name)).UserId;
                                ans.UserId = authuserId;
                                ans.AnsweredTimeDate = DateTime.Now;
                                ans.QuestionId = tempId;
                                ans.Answer = msg;
                                ans.Rating = 0;
                                _db.Answers.Add(ans);
                                _db.SaveChanges();

                                ViewData["c"] = 4;
                                ViewBag.operation = 2;
                                ViewBag.checkCrontroller = 2;
                                UpdateAns(tempId);
                                DisplayQuesAnsComments(tempId);

                            }


                        }
                        else
                        {

                            TempData["AnsId"] = tempId;
                            DisplayQuesAnsComments(tempId);
                            ViewBag.operation = 1;
                            ViewBag.checkCrontroller = 1;
                            ViewData["ReqMsg"] = 3;
                            ViewData["Mess"] = "* Answers should not contain less than 10 chracters";

                        }

                    }
                    else
                    {
                        TempData["AnsId"] = tempId;
                        DisplayQuesAnsComments(tempId);
                        ViewBag.operation = 1;
                        ViewBag.checkCrontroller = 1;
                        ViewData["ReqMsg"] = 3;
                        ViewData["Mess"] = "*  Empty Field not allowed!.Please Write Your Answer";

                        return View("_PostAnswer");
                    }

                }
                else
                {

                    if (msg != "")
                    {
                        if (msg.Length >= 10)
                        {

                            string ms = "";
                            WordDbContext wdb = new WordDbContext();
                            var sensitiveWods = wdb.Words.Select(m => m.SensitiveWord);
                            List<SensitiveWordsViewModel> strList = new List<SensitiveWordsViewModel>();

                            string convt = msg.ToLower();
                            foreach (string str in sensitiveWods)
                            {
                                if (convt.Contains(str))
                                {
                                    SensitiveWordsViewModel sensitive = new SensitiveWordsViewModel();
                                    sensitive.SensitiveWords = str;
                                    strList.Add(sensitive);
                                    ViewBag.senWordsMsg = 11;
                                    ms = str;

                                }





                            }
                            IEnumerable<SensitiveWordsViewModel> s = strList;
                            ViewData["s"] = s;
                            if (ms == "")
                            {

                                Answers ans = new Answers();
                                int authuserId = _db.ForumUser.Single(m => m.UserName.Equals(User.Identity.Name)).UserId;
                                ans.UserId = authuserId;
                                ans.AnsweredTimeDate = DateTime.Now;
                                ans.QuestionId = id.Value;
                                ans.Answer = msg;
                                ans.Rating = 0;
                                _db.Answers.Add(ans);
                                _db.SaveChanges();
                                ViewData["c"] = 4;
                                ViewBag.operation = 1;
                                ViewBag.checkCrontroller = 1;
                                UpdateAns(id.Value);
                                DisplayQuesAnsComments(id.Value);
                            }




                        }
                        else
                        {
                            TempData["AnsId"] = id.Value;
                            DisplayQuesAnsComments(id.Value);
                            ViewBag.operation = 1;
                            ViewBag.checkCrontroller = 1;
                            ViewData["ReqMsg"] = 3;
                            ViewData["Mess"] = "* Answers should not contain less than 10 chracters";

                        }
                    }
                    else
                    {
                        TempData["AnsId"] = id.Value;
                        DisplayQuesAnsComments(id.Value);
                        ViewBag.operation = 1;
                        ViewBag.checkCrontroller = 1;
                        ViewData["ReqMsg"] = 3;
                        ViewData["Mess"] = "*  Empty Field not allowed!.Please Write Your Answer";
                    }


                    UpdateTempQuesId(id.Value);
                    TempData["QiComm"] = id;
                    TempData["AnsId"] = id;

                    DisplayQuesAnsComments(id.Value);
                    ViewBag.operation = 1;
                    ViewBag.checkCrontroller = 1;
                    return View("_PostAnswer");
                }


            }
            else
            {
                if (id == null)
                {

                    ViewData["c"] = 5;
                    UpdateTempQuesId(tempId);
                    DisplayQuesAnsComments(tempId);
                    ViewBag.operation = 1;
                    ViewBag.checkCrontroller = 1;
                }
                ViewData["c"] = 5;
                UpdateTempQuesId(id.Value);
                DisplayQuesAnsComments(id.Value);
                ViewBag.operation = 1;
                ViewBag.checkCrontroller = 1;
                TempData["AreaFQAnsPostController"] = 1;
                return View("_PostAnswer");
            }




            return View("_PostAnswer");

        }