public ActionResult Edit(EditViewModel editPost) { var editedPost = unitOfWork.Repository <Post>().Get(editPost.Post.PostId); var forbiddenWords = SharedMethods.CheckForForbiddenWords.CheckForForbiddenWord(editPost.Post.Content, unitOfWork); if (forbiddenWords.Count > 0) { var modelx = new EditViewModel() { Post = editedPost, ForbiddenWords = forbiddenWords }; return(View(modelx)); } else { editedPost.Content = editPost.Post.Content; editedPost.LastModified = DateTime.Now; editedPost.Content = FindEmote.FindEmotes(editedPost.Content, unitOfWork); unitOfWork.Complete(); ModelState.Clear(); var userId = (User as CustomPrincipal).UserId; bool isModx = false; var userMod = unitOfWork.Repository <User>().Get(userId); var sectionid = unitOfWork.Topics.GetTopicsSection(editedPost.TopicId); foreach (var section in userMod.Section) { if (section.SectionId == sectionid) { isModx = true; } } var model = new PostView() { isMod = isModx, Topic = unitOfWork.Topics.Get(editPost.Post.TopicId), }; return(RedirectToAction("Create", "Post", new { id = editPost.Post.TopicId })); } }
public ActionResult SendMessage(Message message) { var user = unitOfWork.Repository <User>().Find(x => x.Username == message.Receiver.Username).FirstOrDefault(); if (user == null) { ModelState.AddModelError("Warning Username", "User with that username does not exist"); return(View("sendMessage")); } var mSender = new Message() { SenderId = (User as CustomPrincipal).UserId, ReceiverId = user.UserId, Title = message.Title, Content = message.Content, SendDate = DateTime.Now, BelongsTo = (User as CustomPrincipal).UserId }; var mReceiver = new Message() { SenderId = (User as CustomPrincipal).UserId, ReceiverId = user.UserId, Title = message.Title, Content = message.Content, SendDate = DateTime.Now, BelongsTo = user.UserId }; if (message.Content != null) { mSender.Content = FindEmote.FindEmotes(mSender.Content, unitOfWork); mReceiver.Content = FindEmote.FindEmotes(mReceiver.Content, unitOfWork); } unitOfWork.Repository <Message>().Add(mSender); unitOfWork.Repository <Message>().Add(mReceiver); unitOfWork.Complete(); return(RedirectToAction("sentMessages", new { id = (User as CustomPrincipal).UserId })); }
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)); } }
public ActionResult Create(PostView viewmodel) { if (ModelState.IsValid) { var userid = (User as CustomPrincipal).UserId; var user = unitOfWork.Repository <User>().Get(userid); var ranks = unitOfWork.Repository <Rank>().GetAll(); var forbiddenWords = SharedMethods.CheckForForbiddenWords.CheckForForbiddenWord(viewmodel.Content, unitOfWork); var topic = unitOfWork.Repository <Topic>().Get(viewmodel.TopicId); bool isModx = false; var userMod = unitOfWork.Repository <User>().Get(userid); var sectionid = unitOfWork.Topics.GetTopicsSection(viewmodel.TopicId); foreach (var section in userMod.Section) { if (section.SectionId == sectionid) { isModx = true; } } if (forbiddenWords.Count > 0) { var modelx = new PostView() { isMod = isModx, Topic = unitOfWork.Topics.Get(viewmodel.TopicId), TopicId = viewmodel.TopicId, ForbiddenWords = forbiddenWords }; return(View("Create", modelx)); } else { 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 post = new Post() { Content = viewmodel.Content, CreateDate = DateTime.Now, LastModified = DateTime.Now, AuthorId = (User as CustomPrincipal).UserId, TopicId = viewmodel.TopicId, User = user, Attachment = attachmentx }; post.Content = FindEmote.FindEmotes(post.Content, unitOfWork); unitOfWork.Repository <Post>().Add(post); topic.PostsCount++; var userPosts = unitOfWork.Repository <Post>().Find(x => x.AuthorId == userid).Count() + 1; foreach (var rank in ranks) { if (userPosts >= rank.Requirement) { user.Rank = rank; } } unitOfWork.Topics.Get(viewmodel.TopicId).LastModified = DateTime.Now; unitOfWork.Complete(); ModelState.Clear(); var model = new PostView() { isMod = isModx, Topic = unitOfWork.Topics.Get(viewmodel.TopicId), TopicId = viewmodel.TopicId }; return(RedirectToAction("Create", "Post", new { id = viewmodel.TopicId })); } } else { var model = new PostView() { TopicId = viewmodel.TopicId, Topic = unitOfWork.Topics.Get(viewmodel.TopicId) }; return(View(model)); } }