コード例 #1
0
        public ActionResult Edit(long id, XsQuestion questionToSave, FormCollection collection)
        {
            try
            {
                questionToSave = questionRepository.GetById(id);

                if (null != questionToSave)
                {
                    questionToSave.RemoveAllTags();

                    questionToSave.Tags = new List<XsTag>();

                    String tags = RemoveExtraSpaces(collection["QuestionTags"].ToString());

                    String[] qTags = tags.Split(' ');

                    foreach (String tag in qTags)
                    {
                        if (!String.IsNullOrEmpty(tag))
                        {
                            String tagInvariantName = tag.ToLowerInvariant();
                            XsTag currentTag = tagRepository.GetTagByName(tagInvariantName);

                            if (null == currentTag)
                            {
                                currentTag = new XsTag();
                                currentTag.Name = tagInvariantName;
                            }
                            questionToSave.AddTag(currentTag);
                        }
                    }

                    questionToSave.Title = collection["Title"].ToString();
                    questionToSave.Content = collection["Content"].ToString();

                    questionToSave.ContentHtml = new Markdown().Transform(questionToSave.Content);
                    questionToSave.Excerpt = Utils.CreateContentExcerpt(questionToSave.ContentHtml);
                    questionToSave.UpdateDT = DateTime.UtcNow;

                    ModelState.AddModelErrors(questionToSave.GetRuleViolations());

                    if (ModelState.IsValid)
                    {
                        try
                        {
                            questionToSave.ToAddToSearchIndex = true;
                            questionRepository.Save(questionToSave);
                            return RedirectToAction("Details", "Questions", new { id = questionToSave.ID, seoName = questionToSave.SlugTitle });
                        }
                        catch (Exception ex)
                        {
                            log.Error("There was an error when saving the question in the DB " + ex.Message + "Inner Exception " + ex.InnerException);
                            ViewData["ErrorMessage"] = "There was an error when saving the question in the DB!";
                            return View("Error");

                        }
                    }
                    else
                    {
                        return View(questionToSave);
                    }
                }
            }
            catch
            {
                return View(questionToSave);
            }

            return View(questionToSave);
        }