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 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" }); }
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); }
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); }