public HttpResponseMessage GetForumsList() { var portalSettings = PortalSettings; var userInfo = portalSettings.UserInfo; var forumUser = new UserController().GetUser(portalSettings.PortalId, ActiveModule.ModuleID, userInfo.UserID); var fc = new ForumController(); var forumIds = fc.GetForumsForUser(forumUser.UserRoles, portalSettings.PortalId, ActiveModule.ModuleID, "CanView", true); DataTable ForumTable = fc.GetForumView(portalSettings.PortalId, ActiveModule.ModuleID, userInfo.UserID, userInfo.IsSuperUser, forumIds); Dictionary <string, string> rows = new Dictionary <string, string>();; foreach (DataRow dr in ForumTable.Rows) { rows.Add(dr["ForumId"].ToString(), dr["ForumName"].ToString()); } return(Request.CreateResponse(HttpStatusCode.OK, rows.ToJson())); }
public User GetUser(int SiteId, int ModuleId, string userName) { User u = GetDNNUser(SiteId, ModuleId, userName); if (u != null) { u = FillProfile(SiteId, ModuleId, u); ForumController fc = new ForumController(); string fs = fc.GetForumsForUser(u.UserRoles, SiteId, ModuleId, "CanApprove"); if (!(string.IsNullOrEmpty(fs)) || u.IsSuperUser || u.IsAdmin) { u.Profile.IsMod = true; } else { u.Profile.IsMod = false; } } return(u); }
public User DNNGetCurrentUser(int SiteId, int ModuleId) { PortalSettings _portalSettings = PortalController.GetCurrentPortalSettings(); User u = new User(); DotNetNuke.Entities.Users.UserInfo cu = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo(); u = LoadUser(cu); u = FillProfile(SiteId, ModuleId, u); ForumController fc = new ForumController(); string fs = fc.GetForumsForUser(u.UserRoles, SiteId, ModuleId, "CanApprove"); if (!(string.IsNullOrEmpty(fs))) { u.Profile.IsMod = true; } else { u.Profile.IsMod = false; } return(u); }
private void BindPosts() { _pageSize = (UserId > 0) ? UserDefaultPageSize : MainSettings.PageSize; if (_pageSize < 5) { _pageSize = 10; } _rowIndex = (PageId - 1) * _pageSize; // If we don't have a search string, tag or user id, there is nothing we can do so exit if (SearchText == string.Empty && Tags == string.Empty && AuthorUsername == String.Empty && AuthorUserId <= 0) { return; } // Build the list of forums to search // An intersection of the forums allows vs forums requested. var parseId = 0; var fc = new ForumController(); var sForumsAllowed = fc.GetForumsForUser(ForumUser.UserRoles, PortalId, ModuleId, "CanRead", true); // Make sure and pass strict = true here var forumsAllowed = sForumsAllowed.Split(new [] { ':', ';' }).Where(f => int.TryParse(f, out parseId)).Select(f => parseId).ToList(); var forumsRequested = Forums.Split(new[] { ':', ';' }).Where(f => int.TryParse(f, out parseId)).Select(f => parseId).ToList(); var forumsToSearch = string.Empty; // If forums requested is empty or contains and entry less than or equal to zero, return all available forums if (!forumsRequested.Any() || forumsRequested.Any(o => o <= 0)) { forumsToSearch = forumsAllowed.Aggregate(forumsToSearch, (current, f) => current + ((current.Length == 0 ? string.Empty : ":") + f)); } else { forumsToSearch = forumsRequested.Where(forumsAllowed.Contains).Aggregate(forumsToSearch, (current, f) => current + ((current.Length == 0 ? String.Empty : ":") + f)); } const int maxCacheHours = 1; var ds = DataProvider.Instance().Search(PortalId, ModuleId, UserId, SearchId, _rowIndex, _pageSize, SearchText, SearchType, SearchColumns, SearchDays, AuthorUserId, AuthorUsername, forumsToSearch, Tags, ResultType, Sort, maxCacheHours, MainSettings.FullText); var dtSummary = (ds != null) ? ds.Tables[0] : null; _searchId = (dtSummary != null) ? Convert.ToInt32(dtSummary.Rows[0][0]) : 0; _rowCount = (dtSummary != null) ? Convert.ToInt32(dtSummary.Rows[0][1]) : 0; _searchDuration = (dtSummary != null) ? Convert.ToInt32(dtSummary.Rows[0][2]) : 0; _searchAge = (dtSummary != null) ? Convert.ToInt32(dtSummary.Rows[0][3]) : 0; var totalSeconds = new TimeSpan(0, 0, 0, 0, _searchDuration.Value).TotalSeconds; var ageInMinutes = new TimeSpan(0, 0, 0, 0, _searchAge.Value).TotalMinutes; litSearchDuration.Text = string.Format(GetSharedResource("[RESX:SearchDuration]"), totalSeconds); if (ageInMinutes > 0.25) { litSearchAge.Text = string.Format(GetSharedResource("[RESX:SearchAge]"), ageInMinutes); } _parameters = null; // We reset this so we make sure to get an updated version var dtResults = (ds != null) ? ds.Tables[1] : null; if (dtResults != null && dtResults.Rows.Count > 0) { litRecordCount.Text = string.Format(GetSharedResource("[RESX:SearchRecords]"), _rowIndex + 1, _rowIndex + dtResults.Rows.Count, _rowCount); var rptResults = ResultType == 0 ? rptTopics : rptPosts; pnlMessage.Visible = false; try { rptResults.Visible = true; rptResults.DataSource = dtResults; rptResults.DataBind(); BuildPager(PagerTop); BuildPager(PagerBottom); } catch (Exception ex) { litMessage.Text = ex.Message; pnlMessage.Visible = true; rptResults.Visible = false; } } else { litMessage.Text = GetSharedResource("[RESX:SearchNoResults]"); pnlMessage.Visible = true; } }
public User DNNGetCurrentUser(int SiteId, int ModuleId) { PortalSettings _portalSettings = PortalController.GetCurrentPortalSettings(); User u = new User(); DotNetNuke.Entities.Users.UserInfo cu = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo(); u = LoadUser(cu); u = FillProfile(SiteId, ModuleId, u); ForumController fc = new ForumController(); string fs = fc.GetForumsForUser(u.UserRoles, SiteId, ModuleId, "CanApprove"); if (! (string.IsNullOrEmpty(fs))) { u.Profile.IsMod = true; } else { u.Profile.IsMod = false; } return u; }
public User GetUser(int SiteId, int ModuleId, string userName) { User u = GetDNNUser(SiteId, ModuleId, userName); if (u != null) { u = FillProfile(SiteId, ModuleId, u); ForumController fc = new ForumController(); string fs = fc.GetForumsForUser(u.UserRoles, SiteId, ModuleId, "CanApprove"); if (! (string.IsNullOrEmpty(fs)) || u.IsSuperUser || u.IsAdmin) { u.Profile.IsMod = true; } else { u.Profile.IsMod = false; } } return u; }
private void BindPosts(string sort = "ASC") { _pageSize = MainSettings.PageSize; if (UserId > 0) _pageSize = UserDefaultPageSize; if (_pageSize < 5) _pageSize = 10; _rowIndex = (PageId == 1) ? 0 : ((PageId * _pageSize) - _pageSize); var db = new Data.Common(); var fc = new ForumController(); var forumIds = fc.GetForumsForUser(ForumUser.UserRoles, PortalId, ModuleId, "CanRead"); var sCrumb = "<a href=\"" + Utilities.NavigateUrl(TabId, "", new[] { ParamKeys.ViewType + "=grid", "afgt=xxx" }) + "\">yyyy</a>"; sCrumb = sCrumb.Replace("xxx", "{0}").Replace("yyyy", "{1}"); if (Request.Params["afgt"] != null) { var gview = Utilities.XSSFilter(Request.Params["afgt"]).ToLowerInvariant(); switch (gview) { case "notread": if (UserId != -1) { lblHeader.Text = GetSharedResource("[RESX:NotRead]"); _dtResults = db.UI_NotReadView(PortalId, ModuleId, UserId, _rowIndex, _pageSize, sort, forumIds).Tables[0]; if (_dtResults.Rows.Count > 0) { _rowCount = _dtResults.Rows[0].GetInt("RecordCount"); btnMarkRead.Visible = true; btnMarkRead.InnerText = GetSharedResource("[RESX:MarkAllRead]"); } } else Response.Redirect(NavigateUrl(TabId), true); break; case "unanswered": lblHeader.Text = GetSharedResource("[RESX:Unanswered]"); _dtResults = db.UI_UnansweredView(PortalId, ModuleId, UserId, _rowIndex, _pageSize, sort, forumIds).Tables[0]; if (_dtResults.Rows.Count > 0) _rowCount = _dtResults.Rows[0].GetInt("RecordCount"); break; case "tags": var tagId = -1; if (Request.QueryString["aftg"] != null && SimulateIsNumeric.IsNumeric(Request.QueryString["aftg"])) tagId = int.Parse(Request.QueryString["aftg"]); lblHeader.Text = GetSharedResource("[RESX:Tags]"); _dtResults = db.UI_TagsView(PortalId, ModuleId, UserId, _rowIndex, _pageSize, sort, forumIds, tagId).Tables[0]; if (_dtResults.Rows.Count > 0) _rowCount = _dtResults.Rows[0].GetInt("RecordCount"); break; case "mytopics": if (UserId != -1) { lblHeader.Text = GetSharedResource("[RESX:MyTopics]"); _dtResults = db.UI_MyTopicsView(PortalId, ModuleId, UserId, _rowIndex, _pageSize, sort, forumIds).Tables[0]; if (_dtResults.Rows.Count > 0) _rowCount = _dtResults.Rows[0].GetInt("RecordCount"); } else Response.Redirect(NavigateUrl(TabId), true); break; case "activetopics": lblHeader.Text = GetSharedResource("[RESX:ActiveTopics]"); /* if (UserLastAccess != Utilities.NullDate()) { timeFrame = Convert.ToInt32(SimulateDateDiff.DateDiff(SimulateDateDiff.DateInterval.Minute, UserLastAccess, DateTime.Now)); drpTimeFrame.Items.Insert(0, new ListItem(GetDate(UserLastAccess), "~" + timeFrame.ToString())); } */ var timeFrame = Utilities.SafeConvertInt(Request.Params["ts"], 1440); if (timeFrame < 15 | timeFrame > 80640) timeFrame = 1440; drpTimeFrame.Visible = true; drpTimeFrame.SelectedIndex = drpTimeFrame.Items.IndexOf(drpTimeFrame.Items.FindByValue(timeFrame.ToString())); _dtResults = db.UI_ActiveView(PortalId, ModuleId, UserId, _rowIndex, _pageSize, sort, timeFrame, forumIds).Tables[0]; if (_dtResults.Rows.Count > 0) _rowCount = Convert.ToInt32(_dtResults.Rows[0]["RecordCount"]); break; default: Response.Redirect(NavigateUrl(TabId), true); break; } sCrumb = string.Format(sCrumb, gview, lblHeader.Text); if (MainSettings.UseSkinBreadCrumb) Environment.UpdateBreadCrumb(Page.Controls, sCrumb); var tempVar = BasePage; Environment.UpdateMeta(ref tempVar, "[VALUE] - " + lblHeader.Text, "[VALUE]", "[VALUE]"); } if (_dtResults != null && _dtResults.Rows.Count > 0) { litRecordCount.Text = string.Format(GetSharedResource("[RESX:SearchRecords]"), _rowIndex + 1, _rowIndex + _dtResults.Rows.Count, _rowCount); pnlMessage.Visible = false; try { rptTopics.Visible = true; rptTopics.DataSource = _dtResults; rptTopics.DataBind(); BuildPager(PagerTop); BuildPager(PagerBottom); } catch (Exception ex) { litMessage.Text = ex.Message; pnlMessage.Visible = true; rptTopics.Visible = false; } } else { litMessage.Text = GetSharedResource("[RESX:SearchNoResults]"); pnlMessage.Visible = true; } }
private void BindPosts() { _pageSize = (UserId > 0) ? UserDefaultPageSize : MainSettings.PageSize; if (_pageSize < 5) _pageSize = 10; _rowIndex = (PageId - 1) * _pageSize; // If we don't have a search string, tag or user id, there is nothing we can do so exit if (SearchText == string.Empty && Tags == string.Empty && AuthorUsername == String.Empty && AuthorUserId <= 0) return; // Build the list of forums to search // An intersection of the forums allows vs forums requested. var parseId = 0; var fc = new ForumController(); var sForumsAllowed = fc.GetForumsForUser(ForumUser.UserRoles, PortalId, ModuleId, "CanRead", true); // Make sure and pass strict = true here var forumsAllowed = sForumsAllowed.Split(new [] {':',';'}).Where(f => int.TryParse(f, out parseId)).Select(f => parseId).ToList(); var forumsRequested = Forums.Split(new[] { ':', ';' }).Where(f => int.TryParse(f, out parseId)).Select(f => parseId).ToList(); var forumsToSearch = string.Empty; // If forums requested is empty or contains and entry less than or equal to zero, return all available forums if(!forumsRequested.Any() || forumsRequested.Any(o => o <= 0)) forumsToSearch = forumsAllowed.Aggregate(forumsToSearch, (current, f) => current + ((current.Length == 0 ? string.Empty : ":") + f)); else forumsToSearch = forumsRequested.Where(forumsAllowed.Contains).Aggregate(forumsToSearch, (current, f) => current + ((current.Length == 0 ? String.Empty : ":") + f)); const int maxCacheHours = 1; var ds = DataProvider.Instance().Search(PortalId, ModuleId, UserId, SearchId, _rowIndex, _pageSize, SearchText, SearchType, SearchColumns, SearchDays, AuthorUserId, AuthorUsername, forumsToSearch, Tags, ResultType, Sort, maxCacheHours, MainSettings.FullText); var dtSummary = (ds != null) ? ds.Tables[0] : null; _searchId = (dtSummary != null) ? Convert.ToInt32(dtSummary.Rows[0][0]) : 0; _rowCount = (dtSummary != null) ? Convert.ToInt32(dtSummary.Rows[0][1]) : 0; _searchDuration = (dtSummary != null) ? Convert.ToInt32(dtSummary.Rows[0][2]) : 0; _searchAge = (dtSummary != null) ? Convert.ToInt32(dtSummary.Rows[0][3]) : 0; var totalSeconds = new TimeSpan(0, 0, 0, 0, _searchDuration.Value).TotalSeconds; var ageInMinutes = new TimeSpan(0, 0, 0, 0, _searchAge.Value).TotalMinutes; litSearchDuration.Text = string.Format(GetSharedResource("[RESX:SearchDuration]"), totalSeconds); if(ageInMinutes > 0.25) litSearchAge.Text = string.Format(GetSharedResource("[RESX:SearchAge]"), ageInMinutes); _parameters = null; // We reset this so we make sure to get an updated version var dtResults = (ds != null) ? ds.Tables[1] : null; if (dtResults != null && dtResults.Rows.Count > 0) { litRecordCount.Text = string.Format(GetSharedResource("[RESX:SearchRecords]"), _rowIndex + 1, _rowIndex + dtResults.Rows.Count, _rowCount); var rptResults = ResultType == 0 ? rptTopics : rptPosts; pnlMessage.Visible = false; try { rptResults.Visible = true; rptResults.DataSource = dtResults; rptResults.DataBind(); BuildPager(PagerTop); BuildPager(PagerBottom); } catch (Exception ex) { litMessage.Text = ex.Message; pnlMessage.Visible = true; rptResults.Visible = false; } } else { litMessage.Text = GetSharedResource("[RESX:SearchNoResults]"); pnlMessage.Visible = true; } }
private void BindPosts(string sort = "ASC") { _pageSize = MainSettings.PageSize; if (UserId > 0) { _pageSize = UserDefaultPageSize; } if (_pageSize < 5) { _pageSize = 10; } _rowIndex = (PageId == 1) ? 0 : ((PageId * _pageSize) - _pageSize); var db = new Data.Common(); var fc = new ForumController(); var forumIds = fc.GetForumsForUser(ForumUser.UserRoles, PortalId, ModuleId, "CanRead"); var sCrumb = "<a href=\"" + Utilities.NavigateUrl(TabId, "", new[] { ParamKeys.ViewType + "=grid", "afgt=xxx" }) + "\">yyyy</a>"; sCrumb = sCrumb.Replace("xxx", "{0}").Replace("yyyy", "{1}"); if (Request.Params["afgt"] != null) { var gview = Utilities.XSSFilter(Request.Params["afgt"]).ToLowerInvariant(); switch (gview) { case "notread": if (UserId != -1) { lblHeader.Text = GetSharedResource("[RESX:NotRead]"); _dtResults = db.UI_NotReadView(PortalId, ModuleId, UserId, _rowIndex, _pageSize, sort, forumIds).Tables[0]; if (_dtResults.Rows.Count > 0) { _rowCount = _dtResults.Rows[0].GetInt("RecordCount"); btnMarkRead.Visible = true; btnMarkRead.InnerText = GetSharedResource("[RESX:MarkAllRead]"); } } else { Response.Redirect(NavigateUrl(TabId), true); } break; case "unanswered": lblHeader.Text = GetSharedResource("[RESX:Unanswered]"); _dtResults = db.UI_UnansweredView(PortalId, ModuleId, UserId, _rowIndex, _pageSize, sort, forumIds).Tables[0]; if (_dtResults.Rows.Count > 0) { _rowCount = _dtResults.Rows[0].GetInt("RecordCount"); } break; case "tags": var tagId = -1; if (Request.QueryString["aftg"] != null && SimulateIsNumeric.IsNumeric(Request.QueryString["aftg"])) { tagId = int.Parse(Request.QueryString["aftg"]); } lblHeader.Text = GetSharedResource("[RESX:Tags]"); _dtResults = db.UI_TagsView(PortalId, ModuleId, UserId, _rowIndex, _pageSize, sort, forumIds, tagId).Tables[0]; if (_dtResults.Rows.Count > 0) { _rowCount = _dtResults.Rows[0].GetInt("RecordCount"); } break; case "mytopics": if (UserId != -1) { lblHeader.Text = GetSharedResource("[RESX:MyTopics]"); _dtResults = db.UI_MyTopicsView(PortalId, ModuleId, UserId, _rowIndex, _pageSize, sort, forumIds).Tables[0]; if (_dtResults.Rows.Count > 0) { _rowCount = _dtResults.Rows[0].GetInt("RecordCount"); } } else { Response.Redirect(NavigateUrl(TabId), true); } break; case "activetopics": lblHeader.Text = GetSharedResource("[RESX:ActiveTopics]"); /* * if (UserLastAccess != Utilities.NullDate()) * { * timeFrame = Convert.ToInt32(SimulateDateDiff.DateDiff(SimulateDateDiff.DateInterval.Minute, UserLastAccess, DateTime.Now)); * drpTimeFrame.Items.Insert(0, new ListItem(GetDate(UserLastAccess), "~" + timeFrame.ToString())); * } */ var timeFrame = Utilities.SafeConvertInt(Request.Params["ts"], 1440); if (timeFrame < 15 | timeFrame > 80640) { timeFrame = 1440; } drpTimeFrame.Visible = true; drpTimeFrame.SelectedIndex = drpTimeFrame.Items.IndexOf(drpTimeFrame.Items.FindByValue(timeFrame.ToString())); _dtResults = db.UI_ActiveView(PortalId, ModuleId, UserId, _rowIndex, _pageSize, sort, timeFrame, forumIds).Tables[0]; if (_dtResults.Rows.Count > 0) { _rowCount = Convert.ToInt32(_dtResults.Rows[0]["RecordCount"]); } break; default: Response.Redirect(NavigateUrl(TabId), true); break; } sCrumb = string.Format(sCrumb, gview, lblHeader.Text); if (MainSettings.UseSkinBreadCrumb) { Environment.UpdateBreadCrumb(Page.Controls, sCrumb); } var tempVar = BasePage; Environment.UpdateMeta(ref tempVar, "[VALUE] - " + lblHeader.Text, "[VALUE]", "[VALUE]"); } if (_dtResults != null && _dtResults.Rows.Count > 0) { litRecordCount.Text = string.Format(GetSharedResource("[RESX:SearchRecords]"), _rowIndex + 1, _rowIndex + _dtResults.Rows.Count, _rowCount); pnlMessage.Visible = false; try { rptTopics.Visible = true; rptTopics.DataSource = _dtResults; rptTopics.DataBind(); BuildPager(PagerTop); BuildPager(PagerBottom); } catch (Exception ex) { litMessage.Text = ex.Message; pnlMessage.Visible = true; rptTopics.Visible = false; } } else { litMessage.Text = GetSharedResource("[RESX:SearchNoResults]"); pnlMessage.Visible = true; } }
public HttpResponseMessage GetForumsList() { var portalSettings = PortalSettings; var userInfo = portalSettings.UserInfo; var forumUser = new UserController().GetUser(portalSettings.PortalId, ActiveModule.ModuleID, userInfo.UserID); var fc = new ForumController(); var forumIds = fc.GetForumsForUser(forumUser.UserRoles, portalSettings.PortalId, ActiveModule.ModuleID, "CanView", true); DataTable ForumTable = fc.GetForumView(portalSettings.PortalId, ActiveModule.ModuleID, userInfo.UserID, userInfo.IsSuperUser, forumIds); Dictionary<string, string> rows = new Dictionary<string, string>();; foreach (DataRow dr in ForumTable.Rows) { rows.Add(dr["ForumId"].ToString(),dr["ForumName"].ToString()); } return Request.CreateResponse(HttpStatusCode.OK, rows.ToJson()); }