public ActionResult Create(int?id = null) { if (id == null) { return(HttpNotFound()); } var model = new TopicCreateView() { SectionId = (int)id }; return(View(model)); }
public ActionResult Create(TopicCreateView viewmodel) { if (ModelState.IsValid) { var forbiddenWords = SharedMethods.CheckForForbiddenWords.CheckForForbiddenWord(viewmodel.TopicName, unitOfWork); forbiddenWords.AddRange(SharedMethods.CheckForForbiddenWords.CheckForForbiddenWord(viewmodel.PostContent, unitOfWork)); if (forbiddenWords.Count > 0) { var modelx = new TopicCreateView() { TopicName = viewmodel.TopicName, PostContent = viewmodel.PostContent, ForbiddenWords = forbiddenWords, }; return(View("Create", modelx)); } Attachment attachmentx = null; byte[] attachmentData = null; if (Request.Files.Count > 0) { HttpPostedFileBase attachment = Request.Files["UserAttachment"]; if (attachment.ContentLength > 0) { using (var binary = new BinaryReader(attachment.InputStream)) { attachmentData = binary.ReadBytes(attachment.ContentLength); } if (attachmentData.Length <= 3145728 * 5) { attachmentx = new Attachment() { AttachmentData = attachmentData, AttachmentName = Path.GetFileName(Request.Files["UserAttachment"].FileName), }; } else { ModelState.AddModelError("AttachmentSizeError", "Attachment size too big"); } } } var topic = new Topic() { Name = viewmodel.TopicName, CreateDate = DateTime.Now, LastModified = DateTime.Now, AuthorId = (User as CustomPrincipal).UserId, SectionId = viewmodel.SectionId, Sticked = false, }; topic.ViewsCount++; Session[topic.TopicId.ToString()] = true; unitOfWork.Topics.Add(topic); var post = new Post() { Content = viewmodel.PostContent, CreateDate = DateTime.Now, LastModified = DateTime.Now, AuthorId = (User as CustomPrincipal).UserId, TopicId = topic.TopicId, Attachment = attachmentx }; post.Content = FindEmote.FindEmotes(post.Content, unitOfWork); unitOfWork.Repository <Post>().Add(post); topic.PostsCount++; unitOfWork.Complete(); return(RedirectToAction("Create", "Post", new { id = topic.TopicId })); } else { var model = new TopicCreateView() { SectionId = viewmodel.SectionId }; return(View("Create", model)); } }