コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
ファイル: IdeasData.cs プロジェクト: jeethendradv/IdeaPool
        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);
        }
コード例 #4
0
 public IdeaSearchResults GetAll(IdeaSearchSettings searchsettings, int currentUserId)
 {
     return(ideaData.GetAll(searchsettings, currentUserId));
 }