public IHttpActionResult GetUsers(SearchTopic searchTopic) { if (!BoardContext.Current.IsAdmin && !BoardContext.Current.IsForumModerator) { return(this.NotFound()); } var users = this.Get <IUserDisplayName>().FindUserContainsName(searchTopic.SearchTerm); if (!users.Any()) { return(this.NotFound()); } var usersFound = users .Select( user => new SelectOptions { text = user.DisplayOrUserName(), id = user.ID.ToString() }).ToList(); var pagedTopics = new SelectPagedOptions { Total = usersFound.Count, Results = usersFound }; return(this.Ok(pagedTopics)); }
public IHttpActionResult GetTopics(SearchTopic searchTopic) { if (!BoardContext.Current.IsAdmin && !BoardContext.Current.IsForumModerator) { return(this.NotFound()); } if (searchTopic.SearchTerm.IsSet()) { var topics = this.Get <IDataCache>().GetOrSet( $"TopicsList_{searchTopic.ForumId}", () => this.GetRepository <Topic>().Get(t => t.ForumID == searchTopic.ForumId), TimeSpan.FromMinutes(5)); var topicsList = topics .Where(topic => topic.TopicName.ToLower().Contains(searchTopic.SearchTerm.ToLower())) .Select( topic => new SelectOptions { text = topic.TopicName, id = topic.ID.ToString() }).ToList(); var pagedTopics = new SelectPagedOptions { Total = 0, Results = topicsList }; return(this.Ok(pagedTopics)); } else { var topics = this.GetRepository <Topic>().ListAsDataTable( searchTopic.ForumId, null, DateTimeHelper.SqlDbMinTime(), DateTime.UtcNow, searchTopic.Page, 15, false, false, false); var topicsList = (from DataRow topic in topics.Rows select new SelectOptions { text = topic["Subject"].ToString(), id = topic["TopicID"].ToString() }).ToList(); var topicsEnum = topics.AsEnumerable(); var pagedTopics = new SelectPagedOptions { Total = topicsEnum.Any() ? topicsEnum.First().Field <int>("TotalRows") : 0, Results = topicsList }; return(this.Ok(pagedTopics)); } }
public void GetTopics(int forumID, int page, string searchTerm) { var serializer = new JavaScriptSerializer(); if (!YafContext.Current.IsAdmin && !YafContext.Current.IsForumModerator) { this.Context.Response.Write("{ 'No Access' }"); return; } if (searchTerm.IsSet()) { var topics = this.Get <IDataCache>() .GetOrSet( "TopicsList_{0}".FormatWith(forumID), () => LegacyDb.topic_list( forumID, null, DateTimeHelper.SqlDbMinTime(), DateTime.UtcNow, 0, 30000, false, false, false), TimeSpan.FromMinutes(5)); var topicsList = (from DataRow topic in topics.Rows where topic["Subject"].ToString().ToLower().Contains(searchTerm.ToLower()) select new SelectOptions { text = topic["Subject"].ToString(), id = topic["TopicID"].ToString() }).ToList(); var pagedTopics = new SelectPagedOptions { Total = 0, Results = topicsList }; this.Context.Response.Write(serializer.Serialize(pagedTopics)); } else { var topics = LegacyDb.topic_list( forumID, null, DateTimeHelper.SqlDbMinTime(), DateTime.UtcNow, page, 15, false, false, false); var topicsList = (from DataRow topic in topics.Rows select new SelectOptions { text = topic["Subject"].ToString(), id = topic["TopicID"].ToString() }).ToList(); var topicsEnum = topics.AsEnumerable(); var pagedTopics = new SelectPagedOptions { Total = topicsEnum.Any() ? topicsEnum.First().Field <int>("TotalRows") : 0, Results = topicsList }; this.Context.Response.Write(serializer.Serialize(pagedTopics)); } }