public ActionResult ReportPost(ReportPostViewModel viewModel) { viewModel.Post = db.Posts.ToList().Find(x => x.ID == viewModel.PostID); var _moderators = viewModel.Post.Topic.Forum.Moderators; foreach (User _moderator in _moderators) { var _reportThread = db.PrivateThreads.ToList().Find(x => x.Title == "Zgłoszenia"); if (_reportThread == null) { _reportThread = new PrivateThread(); _reportThread.Recipient = _moderator; _reportThread.Title = "Zgłoszenia"; _reportThread.Seen = false; db.PrivateThreads.Add(_reportThread); } var _reportMessage = new PrivateMessage(); _reportMessage.PrivateThread = _reportThread; _reportMessage.Author = db.Users.ToList().Find(x => x.Id == User.Identity.GetUserId()); _reportMessage.Content += "Zgłoszono post: " + "<a href=\"/Topic/Details/" + viewModel.Post.Topic.ID.ToString() + "?postId=" + viewModel.Post.ID + "\">#" + viewModel.Post.ID + "</a><br />"; _reportMessage.Content += "Uzasadnienie: <br />" + viewModel.Reason; _reportMessage.Date = DateTime.Now; _reportThread.Seen = false; db.PrivateMessages.Add(_reportMessage); } db.SaveChanges(); return(View("PostReported", viewModel)); }
public ActionResult CreateThread(CreateThreadViewModel request) { try { var newThread = new PrivateThread(); var userId = User.Identity.GetUserId(); newThread.Recipient = db.Users.ToList().Find(x => x.UserName == request.Recipient); newThread.SenderID = userId; newThread.Title = request.Title; db.PrivateThreads.Add(newThread); db.SaveChanges(); var newMessage = new PrivateMessage(); newMessage.AuthorID = userId; newMessage.Content = Html.EditMarkers(request.Content); newMessage.Date = DateTime.Now; newMessage.PrivateThread = newThread; if (Request.Files != null) { bool error = false; if (Request.Files.Count > 3) { error = true; ViewBag.Error = Resources.AttachmentCount; } for (int i = 0; i < Request.Files.Count; i++) { if (Request.Files[i].ContentLength > 512 * 1024) { ViewBag.Error = Resources.AttachmentSize; error = true; break; } } if (error) { request.User = db.Users.ToList().Find(x => x.Id == userId); request.PostsCount = db.Posts.ToList().FindAll(x => x.UserID == request.User.Id).Count(); request.TopicsCount = db.Topics.ToList().FindAll(x => x.UserID == request.User.Id).Count(); request.Roles = new List <IdentityRole>(); foreach (IdentityUserRole role in request.User.Roles) { request.Roles.Add(db.Roles.ToList().Find(x => x.Id == role.RoleId)); } return(View(request)); } db.PrivateMessages.Add(newMessage); db.SaveChanges(); for (int i = 0; i < Request.Files.Count; i++) { HttpPostedFileBase file = Request.Files[i]; if (file == null || file.FileName == "") { continue; } file.SaveAs(HttpContext.Server.MapPath("~/Content/Attachments/") + file.FileName); MessageFile _messageFile = new MessageFile(); _messageFile.Filename = "~/Content/Attachments/" + file.FileName; _messageFile.PrivateMessage = newMessage; db.MessageFiles.Add(_messageFile); db.SaveChanges(); } } else { db.PrivateMessages.Add(newMessage); db.SaveChanges(); } return(RedirectToAction("ViewThread", new { id = newThread.ID })); } catch { var userId = User.Identity.GetUserId(); request.User = db.Users.ToList().Find(x => x.Id == userId); request.PostsCount = db.Posts.ToList().FindAll(x => x.UserID == request.User.Id).Count(); request.TopicsCount = db.Topics.ToList().FindAll(x => x.UserID == request.User.Id).Count(); request.Roles = new List <IdentityRole>(); foreach (IdentityUserRole role in request.User.Roles) { request.Roles.Add(db.Roles.ToList().Find(x => x.Id == role.RoleId)); } return(View(request)); } }