示例#1
0
        public ActionResult Edit(long id, string title, FormCollection frmCol)
        {
            bool sor = true;

            ValidateQuestion(frmCol, ref sor);
            TagValidControl(frmCol, ref sor);


            Question ques = _repoQues.GetById(id);

            if (!sor)
            {
                return(View("Sor", FrmView.Data.WithQuestion(ques)));
            }
            ques.Detail = frmCol["Question.Detail"].Replace("'", "%t%").Replace("@", "@@");
            ques.Title  = frmCol["Question.Title"].Replace("'", "%t%").Replace("@", "@@");
            _repoQues.Update(ques);
            var NewAry = frmCol["tags"].Split(',');

            string[] OldAry = _repoQuesTag.ListByQuestionId(ques.QuestionId).Select(x => x.TagName).ToArray();
            foreach (var str in NewAry)
            {
                if (!OldAry.Contains(str))
                {
                    Tag         tag = _repoTag.GetByName(str);
                    QuestionTag qt  = new QuestionTag();
                    qt.TagId      = tag.TagId;
                    qt.QuestionId = ques.QuestionId;
                    _repoQuesTag.Insert(qt);
                }
            }
            foreach (var str in OldAry)
            {
                if (!NewAry.Contains(str))
                {
                    Tag tag = _repoTag.GetByName(str);
                    _repoQuesTag.Delete(ques.QuestionId, tag.TagId);
                }
            }
            return(RedirectToAction("Detay", "Soru", new { id = ques.QuestionId, title = ques.Title.ConvertWebUrl() }));
        }