public ActionResult NewPost(string type, string id, string groupId) { try { var ownerType = (ForumOwnerTypeEnum)Enum.Parse(typeof(ForumOwnerTypeEnum), type); Guid memId = RDN.Library.Classes.Account.User.GetMemberId(); if (ownerType != ForumOwnerTypeEnum.main) if (!MemberCache.IsMemberApartOfForum(memId, new Guid(id))) return Redirect(Url.Content("~/?u=" + SiteMessagesEnum.na)); Models.Forum.NewPost post = new Models.Forum.NewPost(); post.ForumId = new Guid(id); post.ForumType = ownerType; if (ownerType != ForumOwnerTypeEnum.main) post.IsManagerOrBetter = MemberCache.IsSecretaryOrBetterOfLeague(memId); if (!String.IsNullOrEmpty(groupId)) { post.GroupId = Convert.ToInt64(groupId); var groups = MemberCache.GetGroupsApartOf(memId); var g = groups.Where(x => x.Id == post.GroupId).FirstOrDefault(); if (g != null) post.GroupName = g.GroupName; else post.GroupName = "Forum"; post.ForumCategories = new SelectList(Forum.GetCategoriesOfForum(new Guid(id), post.GroupId), "CategoryId", "CategoryName"); if (!post.IsManagerOrBetter) post.IsManagerOrBetter = MemberCache.IsModeratorOrBetterOfLeagueGroup(memId, post.GroupId); } else { post.ForumCategories = new SelectList(Forum.GetCategoriesOfForum(new Guid(id), post.GroupId), "CategoryId", "CategoryName"); post.GroupName = "Forum"; } var settings = Forum.GetForumSettings(post.ForumId, post.GroupId); post.BroadcastMessage = settings.BroadCastPostsDefault; return View(post); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return Redirect(Url.Content("~/?u=" + SiteMessagesEnum.sww)); }
public ActionResult EditPost(string forumId, string messageId) { try { Guid memId = RDN.Library.Classes.Account.User.GetMemberId(); if (!MemberCache.IsMemberApartOfForum(memId, new Guid(forumId)) && !MemberCache.IsAdministrator(memId)) return Redirect(Url.Content("~/?u=" + SiteMessagesEnum.na)); Models.Forum.NewPost post = new Models.Forum.NewPost(); var topic = Forum.GetForumMessage(new Guid(forumId), Convert.ToInt64(messageId)); //not the owner of the message if (topic.Member.MemberId != RDN.Library.Classes.Account.User.GetMemberId()) return Redirect(Url.Content("~/?u=" + SiteMessagesEnum.sww)); post.Message = topic.MessageHTML; post.MessageMarkDown = topic.MessageMarkDown; post.TopicId = topic.TopicId; post.ForumId = topic.ForumId; post.ForumType = ForumOwnerTypeEnum.league; return View(post); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return Redirect(Url.Content("~/?u=" + SiteMessagesEnum.sww)); }
public ActionResult QuotePost(string forumId, string topicId, string messageId) { try { Guid memId = RDN.Library.Classes.Account.User.GetMemberId(); if (!MemberCache.IsMemberApartOfForum(memId, new Guid(forumId)) && !MemberCache.IsAdministrator(memId)) return Redirect(Url.Content("~/?u=" + SiteMessagesEnum.na)); var league = MemberCache.GetLeagueOfMember(memId); if (league != null) SetCulture(league.CultureSelected); Models.Forum.NewPost post = new Models.Forum.NewPost(); var topic = ForumTopicCache.GetTopic(new Guid(forumId), Convert.ToInt64(topicId)); var isWatching = topic.Watchers.Where(x => x.MemberId == memId).FirstOrDefault(); if (isWatching != null) topic.IsWatching = true; else topic.IsWatching = false; var message = topic.Messages.Where(x => x.MessageId == Convert.ToInt64(messageId)).FirstOrDefault(); post.Messages = topic.Messages.OrderByDescending(x => x.Created).ToList(); string s = "[quote]"; string y = "[/quote]"; post.Message = s + message.MessagePlain + y; post.MessageMarkDown = s + message.MessageMarkDown + y; post.TopicId = topic.TopicId; post.ForumId = topic.ForumId; post.ForumType = ForumOwnerTypeEnum.league; return View(post); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return Redirect(Url.Content("~/?u=" + SiteMessagesEnum.sww)); }
public ActionResult ReplyMessage(string forumId, string topicId) { try { Guid memId = RDN.Library.Classes.Account.User.GetMemberId(); if (!MemberCache.IsMemberApartOfForum(memId, new Guid(forumId)) && new Guid(forumId) != ServerConfig.DEFAULT_RDN_FORUM_ID) return Redirect(Url.Content("~/?u=" + SiteMessagesEnum.na)); var league = MemberCache.GetLeagueOfMember(memId); if (league != null) SetCulture(league.CultureSelected); Models.Forum.NewPost post = new Models.Forum.NewPost(); var topic = ForumTopicCache.GetTopic(new Guid(forumId), Convert.ToInt64(topicId)); var isWatching = topic.Watchers.Where(x => x.MemberId == memId).FirstOrDefault(); if (isWatching != null) topic.IsWatching = true; else topic.IsWatching = false; post.Messages = topic.Messages.OrderByDescending(x => x.Created).ToList(); post.ForumId = topic.ForumId; post.ForumType = topic.ForumType; post.TopicId = topic.TopicId; post.TopicTitle = topic.TopicTitle; post.BroadcastMessage = topic.BroadcastForumTopic; return View(post); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return Redirect(Url.Content("~/?u=" + SiteMessagesEnum.sww)); }