public ActionResult SearchResultsHtml(int fieldOfWaterId, int statusId, int userId, string searchText) { IdeaSearchSettings searchSettings = new IdeaSearchSettings { PageLength = 0, FieldOfWaterId = fieldOfWaterId, StatusId = statusId, UserId = userId, SearchText = searchText }; IdeaSearchResults searchresults = ProcessFactory.GetIdeaProcess().GetAll(searchSettings, UserId); return(View(searchresults)); }
public JsonResult FetchAll(IdeaSearchSettings searchsettings) { bool hasAccessToOthersIdeas = HasAccess(FeatureAccess.VIEW_IDEAS_OF_OTHERS); if (!hasAccessToOthersIdeas) { searchsettings.UserId = UserId; } IdeaSearchResults searchresults = ProcessFactory.GetIdeaProcess().GetAll(searchsettings, UserId); SearchResults results = new SearchResults(searchresults.TotalCount, searchsettings.PageLength) { Rows = searchresults.Results.Select(idea => MapForDisplay(idea, hasAccessToOthersIdeas)).ToList(), CurrentPage = searchsettings.CurrentPage }; return(Json(results)); }
public IdeaSearchResults GetAll(IdeaSearchSettings searchsettings, int currentUserId) { IdeaSearchResults results = new IdeaSearchResults(); using (var context = new IdeaPoolEntitiesFullTextSearch()) { var query = context.Ideas.AsQueryable(); query = query.Where(x => !x.IsDraft || (x.IsDraft && x.UserId == currentUserId)); if (searchsettings.UserId != 0) { query = query.Where(x => x.UserId == searchsettings.UserId); } if (searchsettings.FieldOfWaterId != 0) { query = query.Where(x => x.IdeasFieldOfWaters.Any(fieldofwater => fieldofwater.FieldOfWaterId == searchsettings.FieldOfWaterId)); } if (searchsettings.StatusId != 0) { query = query.Where(x => x.IdeaStatusId == searchsettings.StatusId); } if (!string.IsNullOrEmpty(searchsettings.SearchText)) { string searchtext = FullTextSearch.Search(searchsettings.SearchText); query = query.Where(x => x.Title.Contains(searchtext) || x.HtmlContent.Contains(searchtext)); } results.TotalCount = query.Count(); query = query .Include(x => x.IdeasFieldOfWaters.Select(field => field.FieldOfWater)) .Include(x => x.IdeaStatus) .Include(x => x.User) .Include(x => x.UnReadDiscussions) .OrderByDescending(x => x.CreatedDate); if (searchsettings.PageLength != 0) { query = query .Skip((searchsettings.CurrentPage - 1) * searchsettings.PageLength) .Take(searchsettings.PageLength); } List <Idea> ideas = query.ToList(); results.Results = MapIdeas(ideas, currentUserId); } return(results); }
public IdeaSearchResults GetAll(IdeaSearchSettings searchsettings, int currentUserId) { return(ideaData.GetAll(searchsettings, currentUserId)); }