Exemple #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));
        }
Exemple #2
0
        public ExportResult Export(ExportCriteria criteria, int loggedInUserId)
        {
            if (criteria.ExportType != "excel")
            {
                throw new CustomException("Invalid export type.");
            }
            IdeaSearchResults results = ideaData.GetAll(criteria, loggedInUserId);

            return(new ExportResult
            {
                ResultBytes = ExportExcel(results),
                ContentType = EXCEL_CONTENT_TYPE,
                FileName = "Ideas.xlsx"
            });
        }
Exemple #3
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));
        }
Exemple #4
0
        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);
        }
Exemple #5
0
 private byte[] ExportExcel(IdeaSearchResults searchresults)
 {
     byte[] result = null;
     using (ExcelPackage package = new ExcelPackage())
     {
         ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Ideas");
         SetHeaders(worksheet);
         int rowNumber = 2;
         foreach (IdeaDataObject idea in searchresults.Results)
         {
             worksheet.Cells[rowNumber, 1].Value          = idea.CreateDate.ToShortDateString();
             worksheet.Cells[rowNumber, 2].Value          = string.Format("{0}, {1}", idea.User.FirstName, idea.User.LastName);
             worksheet.Cells[rowNumber, 3].Value          = idea.Title;
             worksheet.Cells[rowNumber, 4].Value          = string.Join("\n", idea.FieldOfWater.Select(x => x.Name).ToList());
             worksheet.Cells[rowNumber, 4].Style.WrapText = true;
             worksheet.Cells[rowNumber, 5].Value          = idea.Status.Name;
             rowNumber = rowNumber + 1;
         }
         worksheet.Cells.AutoFitColumns();
         result = package.GetAsByteArray();
     }
     return(result);
 }