public SearchResultsModel DoSearch(string[] contentTypes, string size, string school, string role, string grade, string enrollStatus) { SearchResultsModel SearchResultsModel = null; bool validContentTypes = true; foreach (string contentType in contentTypes) { validContentTypes &= SearchValidation.ValidateSearchFilter(contentType); } if (validContentTypes && //required SearchValidation.ValidateSearchFilter(size) && //required SearchValidation.ValidateSearchFilter(school) //required ) { SearchResultsModel = _searchAdapter.DoSearch(contentTypes, size, school, role, grade, enrollStatus); } else { SearchResultsModel = new SearchResultsModel(); ErrorModel error = new ErrorModel("Invalid search criteria", "Web Search Service"); SearchResultsModel.ErrorList.Add(error); } return(SearchResultsModel); }
public ActionResult Index(string searchText, int page = DEFAULT_PAGE_NUMBER) { if (String.IsNullOrWhiteSpace(searchText)) { var empty = new SearchResultsModel { Items = new StaticPagedList <SearchResultItemModel>(Enumerable.Empty <SearchResultItemModel>(), page, PAGE_SIZE, 0) }; return(View(empty)); } // Validate page number (starting from 1) page = Math.Max(page, DEFAULT_PAGE_NUMBER); var searchParameters = SearchParameters.PrepareForPages(searchText, new[] { INDEX_NAME }, page, PAGE_SIZE, MembershipContext.AuthenticatedUser); var searchResults = SearchHelper.Search(searchParameters); mPagesActivityLogger.LogInternalSearch(searchText); var searchResultItemModels = searchResults.Items .Select(searchResultItem => mSearchItemViewModelFactory.GetTypedSearchResultItemModel(searchResultItem)); var model = new SearchResultsModel { Items = new StaticPagedList <SearchResultItemModel>(searchResultItemModels, page, PAGE_SIZE, searchResults.TotalNumberOfResults), Query = searchText }; return(View(model)); }
public async Task SearchActionRedirectsToTrustViewIfCompanyNumberIsUsedAsId() { Task <SearchResultsModel <TrustSearchResult> > task = Task.Run(() => { var facets = new Dictionary <string, FacetResultModel[]>(); var matches = new List <TrustSearchResult>(); matches.Add(new TrustSearchResult()); var results = new SearchResultsModel <TrustSearchResult>(5, facets, matches, 5, 0); return(results); }); _mockTrustSearchService.Setup(m => m.SearchTrustByCompanyNoAsync("6182612", 0, 1, "", null)).Returns(task); var controller = new TrustSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockLocationSearchService.Object, _mockFilterBuilder.Object, _valService, _mockContextDataService.Object, _mockTrustSearchService.Object, _mockSchoolSearchService.Object, _mockCookieManager.Object); controller.ControllerContext = new ControllerContext(_rc, controller); var result = await controller.Search("6182612", null, SearchTypes.SEARCH_BY_TRUST_NAME_ID, null, null, null, null, false, null, 0); Assert.IsNotNull(result); Assert.AreEqual("Trust", (result as RedirectToRouteResult).RouteValues["controller"]); Assert.AreEqual("Detail", (result as RedirectToRouteResult).RouteValues["action"]); Assert.AreEqual("6182612", (result as RedirectToRouteResult).RouteValues["companyNo"].ToString()); }
public async Task SearchActionReturnsViewWithErrorIfNameIsUsedAsIdAndNoResultsFound() { var schoolTask = Task.Run(() => { var facets = new Dictionary <string, FacetResultModel[]>(); var matches = new List <SchoolSearchResult>(); var results = new SearchResultsModel <SchoolSearchResult>(0, facets, matches, 0, 0); return(results); }); _mockSchoolSearchService.Setup(m => m.SearchSchoolByNameAsync("abc", 0, SearchDefaults.RESULTS_PER_PAGE, null, null)) .Returns((string laEstab, int skip, int take, string @orderby, NameValueCollection queryParams) => schoolTask); var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockLocationSearchService.Object, _mockFilterBuilder.Object, _valService, _mockContextDataService.Object, _mockSchoolSearchService.Object, _mockCookieManager.Object); controller.ControllerContext = new ControllerContext(_rc, controller); var response = await controller.Search("abc", SearchTypes.SEARCH_BY_NAME_ID, null, null, null, null, null, false, null, 1); Assert.IsNotNull(response); Assert.IsNotNull((response as ViewResult).Model); Assert.IsTrue(((response as ViewResult).Model as SearchViewModel).HasError()); Assert.AreEqual(SearchErrorMessages.NO_SCHOOL_NAME_RESULTS, ((response as ViewResult).Model as SearchViewModel).ErrorMessage); }
public async Task SearchActionNotRedirectsToSchoolViewIfValidUrnProvidedInAddSchoolPage() { var matches = new List <SchoolSearchResult>(); matches.Add(new SchoolSearchResult() { URN = "654321" }); matches.Add(new SchoolSearchResult() { URN = "123456" }); var edubaseSearchResponse = new SearchResultsModel <SchoolSearchResult>(1, null, matches, 50, 0); var task = Task.Run(() => { return(edubaseSearchResponse); }); _mockSchoolSearchService.Setup(m => m.SearchSchoolByNameAsync("Test", 50, 50, It.IsAny <string>(), It.IsAny <NameValueCollection>())) .Returns((string name, int skip, int take, string orderby, NameValueCollection queryParams) => task); var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockLocationSearchService.Object, _mockFilterBuilder.Object, _valService, _mockContextDataService.Object, _mockSchoolSearchService.Object, _mockCookieManager.Object); controller.ControllerContext = new ControllerContext(_rc, controller); var result = await controller.Search("Test (ABC 3DX)", SearchTypes.SEARCH_BY_NAME_ID, "123456", null, null, null, null, false, null, 2, null, "AddSchool"); Assert.IsTrue(result is ViewResult); Assert.AreEqual("SearchResults", (result as ViewResult).ViewName); }
public async Task SearchActionCallsServiceWithAddressRemovedFromSchoolNameOnAddSchools() { var matches = new List <SchoolSearchResult>(); matches.Add(new SchoolSearchResult() { URN = "654321" }); matches.Add(new SchoolSearchResult() { URN = "123456" }); var edubaseSearchResponse = new SearchResultsModel <SchoolSearchResult>(1, null, matches, 50, 0); var task = Task.Run(() => { return(edubaseSearchResponse); }); _mockSchoolSearchService.Setup(m => m.SearchSchoolByNameAsync("Test", 50, 50, It.IsAny <string>(), It.IsAny <NameValueCollection>())) .Returns((string name, int skip, int take, string orderby, NameValueCollection queryParams) => task); var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockLocationSearchService.Object, _mockFilterBuilder.Object, _valService, _mockContextDataService.Object, _mockSchoolSearchService.Object, _mockCookieManager.Object); controller.ControllerContext = new ControllerContext(_rc, controller); var result = await controller.Search("Test (SQR 3NT)", SearchTypes.SEARCH_BY_NAME_ID, "123", null, null, null, null, false, string.Empty, 2, null, "addSchools"); _mockSchoolSearchService.Verify(req => req.SearchSchoolByNameAsync("Test", 50, 50, string.Empty, null), Times.Once()); }
private SearchResultsModel randomizeResults(SearchResultsModel srm) { SearchResultsModel randomizedResults = new SearchResultsModel(); bool stillWorking = true; Random r = new Random(); while (stillWorking) { if (srm.Records.Count > 0) { //get random index into search results int iRandom = r.Next(0, srm.Records.Count); //add that record to the randomized results randomizedResults.Records.Add(srm.Records[iRandom]); //remove that record from the non-randomized results srm.Records.RemoveAt(iRandom); } else { stillWorking = false; } } return(randomizedResults); }
public ActionResult Search(SearchRouteModel model) { var departStation = RouteFacade.GetAllStationsByFilter(new StationFilter { Name = model.DepartName, Town = model.DepartTown }).FirstOrDefault(); var arriveStation = RouteFacade.GetAllStationsByFilter(new StationFilter { Name = model.ArriveName, Town = model.ArriveTown }).FirstOrDefault(); if (arriveStation == null || departStation == null || !ModelState.IsValid) { ViewBag.Message = "Station cannot be null"; return(View(model)); } var routeStations = RouteFacade.FindRoutesWithStations(departStation.ID, arriveStation.ID, model.Time); var resultModel = new SearchResultsModel { DepartStation = departStation, ArriveStation = arriveStation, Results = routeStations }; //return View("DisplaySearchResults", resultModel); TempData["model"] = resultModel; return(RedirectToAction("DisplaySearchResults")); }
public ActionResult FacetSearchResults(string query) { //var siteSearchPage = SitecoreContext.GetCurrentItem<SiteSearchPage>(); var searchTerm = query; var selFacet = Request.QueryString[FacetQueryStringKey]; var model = new SearchResultsModel { QueryStringKey = QueryStringKey, FacetQueryStringKey = FacetQueryStringKey, Facet = selFacet }; model.Keyword = searchTerm; string totalCount = "0"; string selFacetCount = string.Empty; model.Facets = GetFacets(searchTerm, out totalCount); if (!string.IsNullOrEmpty(selFacet)) { model.Facets.TryGetValue(selFacet, out selFacetCount); } model.AllResultsCount = totalCount; if (!string.IsNullOrEmpty(selFacetCount)) { model.SelectedFacetCount = selFacetCount.Split('|')[1]; } return this.View("~/Views/HabSearch/AdvanceSearchResults.cshtml", model); }
protected override async Task <dynamic> GetSearchResultsAsync(string nameId, string searchType, string locationorpostcode, string locationCoordinates, string laCode, decimal?radius, bool openOnly, string orderby, int page, int take = 50) { SearchResultsModel <SchoolSearchResult> response = null; switch (searchType) { case SearchTypes.SEARCH_BY_LA_ESTAB: response = await _schoolSearchService.SearchSchoolByLaEstabAsync(nameId, (page - 1) *SearchDefaults.RESULTS_PER_PAGE, take, orderby, Request.QueryString); break; case SearchTypes.SEARCH_BY_LOCATION: var latLng = locationCoordinates.Split(','); response = await _schoolSearchService.SearchSchoolByLatLonAsync(latLng[0], latLng[1], (radius ?? SearchDefaults.TRUST_LOCATION_SEARCH_DISTANCE) * 1.6m, (page - 1) *SearchDefaults.RESULTS_PER_PAGE, take, orderby, Request.QueryString); break; case SearchTypes.SEARCH_BY_LA_CODE_NAME: response = await _schoolSearchService.SearchSchoolByLaCodeAsync(laCode, (page - 1) *SearchDefaults.RESULTS_PER_PAGE, take, string.IsNullOrEmpty(orderby)?EdubaseDataFieldNames.ESTAB_NAME : orderby, Request.QueryString); break; } OrderFacetFilters(response); return(response); }
public IActionResult Results(string searchQuery) { var posts = _postService.GetFilteredPosts(searchQuery); var areNoResults = (!string.IsNullOrEmpty(searchQuery) && !posts.Any()); var postListing = posts.Select(post => new PostListingModel { Id = post.Id, AuthorId = post.User.Id, AuthorRating = post.User.Rating, AuthorName = post.User.UserName, Title = post.Title, DatePosted = post.Created, RepliesCount = post.Replies.Count(), Forum = BuildForumListing(post) }); var model = new SearchResultsModel { posts = postListing, searchQuery = searchQuery, EmptySearchResults = areNoResults }; return(View(model)); }
SearchResultsModel IDAL.GetSearchResults(string query, ref IDbConnection conn) { if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken) { conn.Open(); } SearchResultsModel results = new SearchResultsModel(); IDbCommand cmd = SqlUtility.CreateCommand(conn, SP_SEARCH_TOTALS, new Dictionary <string, object>() { { "Criteria", query } }); DataTable dt = SqlUtility.Execute(cmd); if (dt != null) { foreach (DataRow dr in dt.Rows) { results = new SearchResultsModel(dr); break; } } results.Query = query; return(results); }
public ActionResult Index(string searchText, int page = DEFAULT_PAGE_NUMBER) { if (String.IsNullOrWhiteSpace(searchText)) { var empty = new SearchResultsModel { Items = new StaticPagedList <SearchResultItemModel>(Enumerable.Empty <SearchResultItemModel>(), page, PAGE_SIZE, 0) }; return(View(empty)); } // Validate page number (starting from 1) page = Math.Max(page, DEFAULT_PAGE_NUMBER); var searchResults = mSearchService.Search(new SearchOptions(searchText, new [] { INDEX_NAME }) { PageNumber = page, PageSize = PAGE_SIZE }); var searchResultItemModels = searchResults.Items .Select(searchResultItem => mSearchItemViewModelFactory.GetTypedSearchResultItemModel(searchResultItem)); var model = new SearchResultsModel { Items = new StaticPagedList <SearchResultItemModel>(searchResultItemModels, page, PAGE_SIZE, searchResults.TotalNumberOfResults), Query = searchText }; return(View(model)); }
public async Task <SearchResultsModel <SchoolSearchResult> > ExecuteGeoSpatialSearch( string lat, string lon, decimal distance, string filter, string orderBy, int skip, int take) { const string search = "*"; var latitude = double.Parse(lat); var longitude = double.Parse(lon); var filterBuilder = new StringBuilder(); var orderByField = string.IsNullOrEmpty(orderBy) ? string.Format(GeoDistanceLocationOrderFormat, latitude, longitude) : orderBy; filterBuilder.AppendFormat(GeoDistanceLocationSearchFormat, latitude, longitude, distance); if (!string.IsNullOrEmpty(filter)) { filterBuilder.AppendFormat(" and " + filter); } var facets = new[] { EdubaseDataFieldNames.TYPE_OF_ESTAB, EdubaseDataFieldNames.OVERALL_PHASE, EdubaseDataFieldNames.RELIGIOUS_CHARACTER, EdubaseDataFieldNames.OFSTED_RATING, EdubaseDataFieldNames.ESTAB_STATUS }; var parameters = new SearchParameters() { OrderBy = new[] { orderByField }, Filter = filterBuilder.ToString(), Skip = skip, Top = take, IncludeTotalResultCount = true, Facets = facets.ToList(), SearchMode = SearchMode.All }; DocumentSearchResult <SchoolSearchResult> response; try { response = await _indexClient.Documents.SearchAsync <SchoolSearchResult>(search, parameters); } catch (Exception exc) { throw new ApplicationException( $"Edubase school search error: {exc.Message}"); } var facetsModel = MapResponseFacetsToFacetsModel(response); var results = new SearchResultsModel <SchoolSearchResult>((int)response.Count, facetsModel, response.Results.Select(r => r.Document), take, skip) { QueryLat = latitude.ToString(), QueryLong = longitude.ToString() }; return(results); }
public SearchResultsModel DoSearch(string[] contentTypes, string size, string school, string role, string grade, string enrollStatus) { SearchResultsModel srm = new SearchResultsModel(); srm.ErrorList.Add(new ErrorModel("DoSearch not implemented for mocking.")); return(srm); }
public IActionResult Search(string query) { var model = new SearchResultsModel { Query = query }; return(View(model)); }
public void Update(SearchResultsModel model) { this.Results.Clear(); foreach (SearchResult result in model.Results) { this.Results.Add(result); } }
public SearchResultsModel GetSchools(string filter, int offset, int rows) { SearchResultsModel srm = null; srm = GetOrganizations(filter, offset, rows, OrganizationTypes.SCHL); return(srm); }
public IActionResult Search(string searchText) { var response = searchClient.SearchOrder(searchText); var model = new SearchResultsModel { Results = response.Documents.ToList() }; return(View(model)); }
public async Task <IActionResult> Index([FromQuery] SearchParameters parameters) { _logger.LogInformation("Search: " + parameters); var results = await _solr.QueryAsync(BuildQuery(parameters), BuildQueryOptions(parameters)); var model = new SearchResultsModel(results, BuildFacetModels(results.FacetFields), results.NumFound, parameters); return(View(model)); }
private void MarkAcademiesInsideSearchArea(SearchResultsModel <SchoolSearchResult> academySearchResults, List <AcademyTrustViewModel> trustList) { foreach (var academySearchResult in academySearchResults.Results) { var schoolMatch = trustList.SelectMany(t => t.AcademiesList).Where(a => a.Id.ToString() == academySearchResult.URN).FirstOrDefault(); if (schoolMatch != null) { schoolMatch.InsideSearchArea = true; } } }
public IActionResult SearchResults(SearchModel parameter) { SearchResultsModel Results = new SearchResultsModel(); Results.Results = profileSearchDAL.SearchAll(parameter.searchParameter); if (Results.Results.Count == 0) { ProfileViewModel Container = new ProfileViewModel(); Results.Results.Add(Container); } return(View(Results)); }
public ActionResult Search(string txtSearch) { TempData["SearchText"] = txtSearch; esvWrapper wrapper = new esvWrapper("passageQuery", txtSearch, "crossway-xml-1.0"); ViewBag.Notes = db.Notes.ToList(); SearchResultsModel search = new SearchResultsModel(); search = wrapper.getEsvXml(); return(View("SearchResults", search)); }
public async Task SearchActionRunsAndReturnsTheOnlyLaSuggestionResultIfSearchByLAName() { dynamic laSearchResponse = new List <dynamic>() { new{ id = "840", LANAME = "County Durham", REGION = "1", REGIONNAME = "North East A" }, new{ id = "841", LANAME = "Darlington", REGION = "1", REGIONNAME = "North East A" } }; _mockLaService.Setup(m => m.GetLocalAuthorities()).Returns(() => laSearchResponse); _mockLaSearchService.Setup(m => m.SearchExactMatch("Test")).Returns(() => new LaModel() { Id = "123", LaName = "Test" }); var matchedResults = new List <SchoolSearchResult>(); matchedResults.Add(new SchoolSearchResult() { URN = "654321" }); var edubaseSearchResponse = new SearchResultsModel <SchoolSearchResult>(2, null, matchedResults, 50, 0); var task = Task.Run(() => { return(edubaseSearchResponse); }); _mockSchoolSearchService.Setup(m => m.SearchSchoolByLaCodeAsync("123", 0, 50, "EstablishmentName", null)).Returns((string name, int skip, int take, string orderby, NameValueCollection queryParams) => task); var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockLocationSearchService.Object, _mockFilterBuilder.Object, _valService, _mockContextDataService.Object, _mockSchoolSearchService.Object, _mockCookieManager.Object); controller.ControllerContext = new ControllerContext(_rc, controller); var result = await controller.Search(null, SearchTypes.SEARCH_BY_LA_CODE_NAME, null, null, null, "Test", null, false, null); Assert.IsTrue(result is ViewResult); Assert.AreEqual("SearchResults", (result as ViewResult).ViewName); }
/// <summary> /// /// </summary> /// <param name="organizations"></param> /// <returns></returns> public static SearchResultsModel FromOrgContractList(List <RefOrganizationContract> organizations) { var srm = new SearchResultsModel(); srm.Records = new List <SearchRecordModel>(); foreach (var org in organizations) { var record = new SearchRecordModel(); record.Fields = PopulateRecord(org); srm.Records.Add(record); } return(srm); }
protected void OrderFacetFilters(SearchResultsModel <SchoolSearchResult> results) { if (results?.Facets != null) { var orderedFacetFilters = new Dictionary <string, FacetResultModel[]>(); foreach (var facet in results.Facets) { if (facet.Key == "OverallPhase") { orderedFacetFilters.Add(facet.Key, facet.Value.OrderBy(fr => { switch (fr.Value) { case "Nursery": return(1); case "Primary": return(2); case "Secondary": return(3); case "All-through": case "All through": return(4); case "Pupil referral unit": return(5); case "Special": return(6); case "16 plus": return(7); default: return(0);; } }).ToArray()); } else { orderedFacetFilters.Add(facet.Key, facet.Value.OrderBy(fr => fr.Value).ToArray()); } } results.Facets = orderedFacetFilters; } }
public ActionResult Index(string searchText, int page = DEFAULT_PAGE_NUMBER) { // Validate page number (starting from 1) var pageNumber = Math.Max(page, DEFAULT_PAGE_NUMBER); int totalItemsCount; var searchResults = mService.Search(searchText, pageNumber - 1, PAGE_SIZE, out totalItemsCount); var model = new SearchResultsModel { Items = new StaticPagedList <SearchResultItem>(searchResults ?? new List <SearchResultItem>(), pageNumber, PAGE_SIZE, totalItemsCount), Query = searchText }; return(View(model)); }
/// <summary> /// Gets the search results model from the search term/// /// </summary> /// <param name="searchModel">The search model with search term and other settings in it</param> /// <param name="allKeys">The form keys that were submitted</param> /// <returns>A SearchResultsModel object loaded with the results</returns> public SearchResultsModel GetSearchResults(SearchViewModel searchModel, string[] allKeys) { SearchResultsModel resultsModel = new SearchResultsModel(); resultsModel.SearchTerm = searchModel.SearchTerm; resultsModel.PageNumber = GetPageNumber(allKeys); ISearchResults allResults = SearchUsingExamine(searchModel.DocTypeAliases.Split(','), searchModel.SearchGroups); resultsModel.TotalItemCount = allResults.TotalItemCount; resultsModel.Results = GetResultsForThisPage(allResults, resultsModel.PageNumber, searchModel.PageSize); resultsModel.PageCount = Convert.ToInt32(Math.Ceiling((decimal)resultsModel.TotalItemCount / (decimal)searchModel.PageSize)); resultsModel.PagingBounds = GetPagingBounds(resultsModel.PageCount, resultsModel.PageNumber, searchModel.PagingGroupSize); return(resultsModel); }
private static SearchResultsModel handleNoResults(string input) { if (input != null) { _log.Warn("search results were null: " + input); } else { _log.Warn("search results were null and input was null"); } SearchResultsModel results = new SearchResultsModel(); results.ErrorList.Add(new ErrorModel("There was a problem performing the search")); return(results); }
public SearchResultsModel getEsvXml() { SearchResultsModel sr = new SearchResultsModel(); using (var client = new HttpClient()) { if (this.Passage.Length > 0) { String xml = string.Empty; xml = getESVPassage("&include-simple-entities=true"); // may want to change this to the original search text followed by a seperate call for the xml // that way i have both cached in memory sr.searchResults = xml; XDocument xDoc = XDocument.Parse(xml); //xDoc.Save(AppDomain.CurrentDomain.BaseDirectory.ToString() + @"\Gen1.xml"); var verses = (from v in xDoc.Descendants("verse-unit") select v); StringBuilder sb = new StringBuilder(); var chapter = (from v in xDoc.Descendants("current") select v); foreach (XElement c in chapter) { sr.chapter = c.Value; } // below: // instead of building verse html, i will build a verse model // and pass that model thru to the view for html parsing foreach (XElement verse in verses) { sr.verses.Add(buildVerse(verse)); } // perform xml verse formatting prior to output. } return(sr); } }
private async Task <ActionResult> SearchByTrustLocationCoordinates(string locationOrPostcode, string locationCoordinates, decimal?radius, bool openOnly = false, string orderby = "", int page = 1, string referrer = "home/index") { var schoolLevelOrdering = DetermineSchoolLevelOrdering(orderby); SearchResultsModel <SchoolSearchResult> searchResults = await GetSearchResultsAsync(null, SearchTypes.SEARCH_BY_TRUST_LOCATION, null, locationCoordinates, null, radius, openOnly, schoolLevelOrdering, page); if (searchResults.NumberOfResults == 0) { return(ErrorView(SearchTypes.SEARCH_BY_TRUST_LOCATION, referrer, SearchErrorMessages.NO_LOCATION_RESULTS)); } var trustsVm = await BuildTrustViewModelListFromFoundAcademiesAsync(searchResults, orderby, page, SearchTypes.SEARCH_BY_TRUST_LOCATION, null, locationOrPostcode, null); ApplyTrustLevelOrdering(orderby, trustsVm); return(View("SearchResults", trustsVm)); }
public ClaimSearchController(ApplicationModel applicationModel, IUnityContainer container, IClaimClientService claimService, AppModel appModel, ISearchServiceHandler searchService, SearchResultsModel searchFilterModel, IMetadataClientService metadataService, IEventAggregator eventAggregator, ClaimSearchModel searchModel) : base(eventAggregator, searchFilterModel, container) { this.ClaimSearchModel = searchModel; this._applicationModel = applicationModel; this._claimsService = claimService; this._metadataService = metadataService; this._claimContainer = container; this._eventAggregator = eventAggregator; this._searchManager = new SearchManager(); // Close the search tab. this.ClaimSearchModel.OnCloseClick += new EventHandler(this._claimSearchModel_OnCloseClick); // Display the preview of the selected claim. this.ClaimSearchModel.SelectedRowChanged += new EventHandler<SelectedRowChangedEventArgs>(this._claimSearchModel_SelectedRowChanged); // Grid paging. this.ClaimSearchModel.NeedData += new EventHandler<SearchDataRequestEventArgs>(this._claimSearchModel_NeedData); this.ClaimSearchModel.RefreshView += new EventHandler(this._claimSearchModel_RefreshView); }
public string SearchModelObj(BrowseResultsModel model) { var searchModel = new SearchResultsModel(); searchModel.Dates = model.Dates; searchModel.Location = model.Location; searchModel.FirstName = model.FirstName; searchModel.LastName = model.LastName; searchModel.AllOfTheWordsString = model.AllOfTheWordsString; searchModel.ExactPhraseString = model.ExactPhraseString; searchModel.AnyOfTheWordsString = model.AnyOfTheWordsString; searchModel.WithoutWordsString = model.WithoutWordsString; if (!string.IsNullOrWhiteSpace(searchModel.AllOfTheWordsString)) { if (searchModel.AllOfTheWordsString.Trim().ToLower() == "battle gettysburg civil war") { searchModel.AllOfTheWordsString = ""; } } if (!string.IsNullOrWhiteSpace(searchModel.AnyOfTheWordsString)) { if (searchModel.AnyOfTheWordsString.Trim().ToLower() == "soldier infantry") { searchModel.AnyOfTheWordsString = ""; } } if (!string.IsNullOrWhiteSpace(searchModel.ExactPhraseString)) { if (searchModel.ExactPhraseString.Trim().ToLower() == "john smith buried") { searchModel.ExactPhraseString = ""; } } if (!string.IsNullOrWhiteSpace(searchModel.WithoutWordsString)) { if (searchModel.WithoutWordsString.Trim().ToLower() == "adams george henry") { searchModel.WithoutWordsString = ""; } } if (String.IsNullOrWhiteSpace(searchModel.AllOfTheWordsString) && String.IsNullOrWhiteSpace(searchModel.ExactPhraseString) && String.IsNullOrWhiteSpace(searchModel.AnyOfTheWordsString) && String.IsNullOrWhiteSpace(searchModel.LastName)) { return string.Empty; } var helper = new SearchHelper(_savedSearchService, _common); if (searchModel.Dates.IsPublicationDate == false) { searchModel.Dates = new DateModels(); } else { if (searchModel.Dates.IsExactDate == true) { searchModel.Dates.EndYear = ""; searchModel.Dates.EndMonth = ""; searchModel.Dates.EndDay = ""; } if (searchModel.Dates.IsBetweenYears == true) { searchModel.Dates.StartYear = searchModel.Dates.BetweenStartYear; searchModel.Dates.EndYear = searchModel.Dates.BetweenEndYear; searchModel.Dates.StartMonth = ""; searchModel.Dates.StartDay = ""; searchModel.Dates.EndMonth = ""; searchModel.Dates.EndDay = ""; } if (searchModel.Dates.IsBetweenDates == true) { searchModel.Dates.StartYear = searchModel.Dates.BetweenDatesYear; searchModel.Dates.StartMonth = searchModel.Dates.BetweenDatesMonth; searchModel.Dates.StartDay = searchModel.Dates.BetweenDatesDay; } } if (searchModel.Location.IsPublicationLocation == false) { searchModel.Location = new LocationModels(); } string _url = helper.getURLfromSearchValues(searchModel, "", 0); return _url; }
// // GET: /Search/ public ActionResult Index(string searchterm, string Subject, string quarter, string timestart, string timeend, string day_su, string day_m, string day_t, string day_w, string day_th, string day_f, string day_s, string f_oncampus, string f_online, string f_hybrid, string avail, string latestart, string numcredits, int p_offset = 0) { // We don't currently support quoted phrases. - 4/19/2012, [email protected] searchterm = searchterm.Replace("\"", string.Empty); // TODO: This needs to be configurable if (quarter == "CE") { Response.Redirect("http://www.campusce.net/BC/Search/Search.aspx?q=" + searchterm, true); return null; } if (String.IsNullOrEmpty(searchterm.Trim())) { return RedirectToAction("AllClasses", "Classes", new { YearQuarterID = quarter }); } ViewBag.timestart = timestart; ViewBag.timeend = timeend; ViewBag.avail = avail; ViewBag.Modality = Helpers.ConstructModalityList(f_oncampus, f_online, f_hybrid); ViewBag.Days = Helpers.ConstructDaysList(day_su, day_m, day_t, day_w, day_th, day_f, day_s); ViewBag.Subject = Subject; ViewBag.searchterm = Regex.Replace(searchterm, @"\s+", " "); // replace each clump of whitespace w/ a single space (so the database can better handle it) ViewBag.ErrorMsg = string.Empty; IList<ISectionFacet> facets = Helpers.addFacets(timestart, timeend, day_su, day_m, day_t, day_w, day_th, day_f, day_s, f_oncampus, f_online, f_hybrid, avail, latestart, numcredits); ViewBag.LinkParams = Helpers.getLinkParams(Request, "submit"); using (OdsRepository repository = new OdsRepository()) { YearQuarter yrq = string.IsNullOrWhiteSpace(quarter) ? repository.CurrentYearQuarter : YearQuarter.FromFriendlyName(quarter); IList<YearQuarter> menuQuarters = Helpers.GetYearQuarterListForMenus(repository); QuarterNavigationModel quarterNavigation = new QuarterNavigationModel { NavigationQuarters = menuQuarters, CurrentQuarter = menuQuarters[0], ViewingQuarter = yrq, }; IList<Section> sections; using (_profiler.Step("API::GetSections()")) { if (string.IsNullOrWhiteSpace(Subject)) { sections = repository.GetSections(yrq, facets); } else { IList<string> prefixes = SubjectInfo.GetSubjectPrefixes(Subject); sections = repository.GetSections(prefixes, yrq, facets); } } int currentPage; int totalPages; int itemCount; IList<SectionWithSeats> sectionsEnum; IList<SearchResult> searchResults; SearchResultNoSectionModel noSectionSearchResults; IList<SectionsBlock> courseBlocks; using (ClassScheduleDb db = new ClassScheduleDb()) { searchResults = GetSearchResults(db, searchterm, quarter); noSectionSearchResults = GetNoSectionSearchResults(db, searchterm, yrq); sections = (from s in sections join r in searchResults on s.ID.ToString() equals r.ClassID select s).ToList(); sectionsEnum = Helpers.GetSectionsWithSeats(yrq.ID, sections, db); // do not count Linked sections (since we don't display them) itemCount = sectionsEnum.Count(s => !s.IsLinked); totalPages = (int)Math.Round((itemCount / ITEMS_PER_PAGE) + 0.5); currentPage = p_offset + 1; using (_profiler.Step("Getting just records for page")) { if (currentPage > totalPages && totalPages > 0) { currentPage = totalPages; } sectionsEnum = sectionsEnum.Skip(p_offset * ITEMS_PER_PAGE).Take(ITEMS_PER_PAGE).ToList(); } courseBlocks = Helpers.GroupSectionsIntoBlocks(sectionsEnum, db); } IEnumerable<string> allSubjects; using (_profiler.Step("Getting distinct list of subjects")) { allSubjects = sectionsEnum.Select(c => c.CourseSubject).Distinct().OrderBy(c => c); } SearchResultsModel model = new SearchResultsModel { ItemCount = itemCount, TotalPages = totalPages, CurrentPage = currentPage, Courses = courseBlocks, SearchResultNoSection = noSectionSearchResults, AllSubjects = allSubjects, QuarterNavigation = quarterNavigation, }; return View(model); } }
public ActionResult AdvanceSearchResults(int? page) { var searchTerm = Request.QueryString[QueryStringKey]; if (Tracker.Current != null && Tracker.Enabled) { //Check HabSearch Analytics Settings var habSearchAnalytics = HabSearchAnalyticsRepository.GetHabSearchAnalyticsSettings(); if (habSearchAnalytics != null && (habSearchAnalytics.IsAnalyticsEnabled && !string.IsNullOrWhiteSpace(habSearchAnalytics.SearchTermsRootFolderPath))) { SetPatternCard(searchTerm, habSearchAnalytics.SearchTermsRootFolderPath); } } var model = new SearchResultsModel { QueryStringKey = QueryStringKey, FacetQueryStringKey = FacetQueryStringKey, }; try { var selFacet = Request.QueryString[FacetQueryStringKey]; model.Keyword = searchTerm; model.Facet = selFacet; var results = SearchProvider.Search(searchTerm); model.SearchResults = results; model.ResultsCount = results.Count().ToString(); string totalCount = "0"; model.Facets = GetFacets(searchTerm, out totalCount); model.AllResultsCount = totalCount; if (int.Parse(model.ResultsCount) < model.EndResultNumber) { model.EndResultNumber = int.Parse(model.ResultsCount); } string selFacetCount = string.Empty; if (!string.IsNullOrEmpty(selFacet)) { model.Facets.TryGetValue(selFacet, out selFacetCount); } model.AllResultsCount = totalCount; if (!string.IsNullOrEmpty(selFacetCount)) { model.SelectedFacetCount = selFacetCount.Split('|')[1]; } var searchResultsModel = HttpContext.Items["SearchModel"] as SearchResultsModel; if (searchResultsModel == null) HttpContext.Items["SearchModel"] = model; return View("~/Views/HabSearch/AdvanceSearchResults.cshtml", model); } catch (Exception ex) { Log.Error("Something went wrong while performing a site search", ex, this); return View("~/Views/HabSearch/AdvanceSearchResults.cshtml"); } }
/// <summary> /// Set search term(user given) in search model /// </summary> /// <param name="model"></param> private void SearchModelObj(ref BrowseResultsModel model) { var searchModel = new SearchResultsModel(); searchModel.Dates = model.Dates; searchModel.Location = model.Location; searchModel.FirstName = model.FirstName; searchModel.LastName = model.LastName; searchModel.AllOfTheWordsString = model.AllOfTheWordsString; searchModel.ExactPhraseString = string.Empty; searchModel.AnyOfTheWordsString = string.Empty; searchModel.WithoutWordsString = string.Empty; if (!string.IsNullOrWhiteSpace(searchModel.AllOfTheWordsString)) { if (searchModel.AllOfTheWordsString.Trim().ToLower() == "E.g., Moon Landing") { searchModel.AllOfTheWordsString = ""; } } if (!string.IsNullOrWhiteSpace(searchModel.FirstName)) { if (searchModel.FirstName.Trim().ToLower() == "e.g., william") { searchModel.FirstName = ""; } } if (!string.IsNullOrWhiteSpace(searchModel.LastName)) { if (searchModel.LastName.Trim().ToLower() == "e.g., smith") { searchModel.LastName = ""; } } if (String.IsNullOrWhiteSpace(searchModel.AllOfTheWordsString) && String.IsNullOrWhiteSpace(searchModel.ExactPhraseString) && String.IsNullOrWhiteSpace(searchModel.AnyOfTheWordsString) && String.IsNullOrWhiteSpace(searchModel.LastName)) { model.ReturnUrl = string.Empty; } else { if (!string.IsNullOrEmpty(model.Location.CountryID)) { searchModel.Location.IsPublicationLocation = true; } var helper = new SearchHelper(_savedSearchService, _common); if (searchModel.Dates.IsPublicationDate == false) { searchModel.Dates = new DateModels(); } else { if (searchModel.Dates.IsExactDate == true) { searchModel.Dates.EndYear = ""; searchModel.Dates.EndMonth = ""; searchModel.Dates.EndDay = ""; } if (searchModel.Dates.IsBetweenYears == true) { searchModel.Dates.StartYear = searchModel.Dates.BetweenStartYear; searchModel.Dates.EndYear = searchModel.Dates.BetweenEndYear; searchModel.Dates.StartMonth = ""; searchModel.Dates.StartDay = ""; searchModel.Dates.EndMonth = ""; searchModel.Dates.EndDay = ""; } if (searchModel.Dates.IsBetweenDates == true) { searchModel.Dates.StartYear = searchModel.Dates.BetweenDatesYear; searchModel.Dates.StartMonth = searchModel.Dates.BetweenDatesMonth; searchModel.Dates.StartDay = searchModel.Dates.BetweenDatesDay; } } if (searchModel.Location.IsPublicationLocation == false) { searchModel.Location = new LocationModels(); } model.ReturnUrl = helper.getURLfromSearchValues(searchModel, "", 0); } }
public ActionResult Search(string s, string c) { User user = Users.GetLoggedInUser(); SearchResultsModel searchResults = new SearchResultsModel(); searchResults.UserRelationships = null; searchResults.Courses = db.CarsCourses .Where(cc => cc.UserID == user.UserID) .OrderBy(cc => cc.Year) //.ThenBy(cc => cc.SessionOrder) .ToList() .OrderBy(cc => cc.Year) .ThenBy(cc => cc.SessionOrder) .ToList(); if (!String.IsNullOrEmpty(s)) { //results.FriendUserIDs = UserRelationships.GetApprovedFriends().Select(user => user.UserID).ToList(); string query = s; List<User> foundUsers = db.Users .Include("Degrees") .Include("Students") .Include("Employees") .Where(u => u.FirstName == query || u.LastName == query || //u.MiddleName == query || (u.FirstName + " " + u.LastName == query) || //(u.MiddleName + " " + u.LastName == query) || u.AliasFirstName == query || u.AliasLastName == query) .ToList() .OrderByDescending(u => (u.Degrees.Count > 0 || u.Students.Count > 0 || u.Employees.Count > 0)) .ToList(); searchResults.UserRelationships = UserRelationships.GetRelationshipStatuses(foundUsers); UserAction ua = new UserAction() { SourceUserID = user.UserID, TargetUserID = 0, UserActionType = UserActionType.SimpleSearch, ActionDate = DateTime.Now, GroupID = 0, MessageID = 0, PostCommentID = 0, PostID = 0, Text = s }; db.UserActions.Add(ua); db.SaveChanges(); } else if (!String.IsNullOrEmpty(c)) { string[] parts = c.Split(new char[] { ',' }); int year = Int32.Parse(parts[0]); string session = parts[1]; string courseCode = parts[2]; string section = parts[3]; List<int> classmateIds = db.CarsCourses .Where(cc => cc.Year == year && cc.Session == session && cc.CourseCode == courseCode && cc.Section == section) .Select(cc => cc.UserID) .ToList(); List<User> usersInCourse = db.Users .Where(u => classmateIds.Contains(u.UserID) /* && u.ScheduleSecurity == (int) UserSecuritySetting.Public */ ) .OrderBy(u => u.LastName) .ThenBy(u => u.FirstName) .ToList(); searchResults.UserRelationships = UserRelationships.GetRelationshipStatuses(usersInCourse); UserAction ua = new UserAction() { SourceUserID = user.UserID, TargetUserID = 0, UserActionType = UserActionType.ScheduleSearch, ActionDate = DateTime.Now, GroupID = 0, MessageID = 0, PostCommentID = 0, PostID = 0, Text = c }; db.UserActions.Add(ua); db.SaveChanges(); } /* if (searchResults.UserRelationships != null) { searchResults.UserRelationships.RemoveAll(rel => rel.TargetUserID == user.UserID); } */ return View(searchResults); }
public ActionResult Index() { User user = Users.GetLoggedInUser(); SearchResultsModel searchResults = new SearchResultsModel(); searchResults.UserRelationships = null; searchResults.Courses = db.CarsCourses .Where(cc => cc.UserID == user.UserID) .OrderBy(cc => cc.Year) .ThenBy(cc => cc.Session) .ToList(); return View(); //return Redirect("/community/search/"); }
private string fcnRedirectedPage() { var url = string.Empty; if ((Request.Cookies[_config.GetStringValueFromConfig("cookiePrefix", "NewspaperARCHIVE.com") + ".SearchValues"] != null && Request.Cookies[_config.GetStringValueFromConfig("cookiePrefix", "NewspaperARCHIVE.com") + ".SearchValues"].HasKeys)) { var _searchResModel = new SearchResultsModel(); var helper = new SearchHelper(_savedSearchService, _common); _searchResModel = helper.GetModelSearchValuesCookie(_searchResModel); url = helper.getURLfromSearchValues(_searchResModel, "", 0); } return url; }