Skip to content

Instantly share code, notes, and snippets.

@{
var pageInfo = string.Empty;
if (Model.AirportSearchResults.Count > 0)
{
var first = @Model.Skip + 1;
var last = @Model.Skip + pageSize;
pageInfo = first + " - " + last + " of " + @Model.Count;
}
int prevSkip = @Model.Skip - pageSize;
@using AFDSearch.Models
@model AirportSearch
@{
ViewBag.Title = "Airport Search";
}
@{
const int pageSize = 10;
int currentPage = 0;
}
@foreach (FacetInfo facetInfo in Model.FacetResults)
{
<p>@facetInfo.FacetName</p>
<ul>
@foreach (var facet in facetInfo.Facets)
{
var facetText = @facet.Key + "(" + facet.Value + ")";
var filter = string.IsNullOrEmpty(@Model.Filter) ? string.Empty : @Model.Filter + " and ";
<p style="margin: 0">@Html.ActionLink(facetText, "Search", new AirportSearch() {Top = pageSize, Skip = currentPage * pageSize, Filter = filter + @facetInfo.FacetName + " eq '" + @facet.Key + "'"})</p>
}
@kdhollow
kdhollow / gist:76199a0187fe92f4b3a0
Last active February 27, 2016 21:19
Adding Top and Skip to AirportController
long count = 0;
var result = await azureSearchEngine.SearchDocumentsAsync<Airport>(indexName, searchText, facetfields, true, top, model.Skip,
model.Filter,
airport => new Airport() {Id = airport.Id, Identifier = airport.Identifier, Name = airport.Name, City = airport.City, State = airport.State, Chart = airport.Chart, Region = airport.Region, AfdLink = airport.AfdLink},
(facetName, facets) =>
{
facetResults.Add(new FacetInfo() {FacetName = facetName, Facets = facets});
},
documentCount => { if (null != documentCount) count = documentCount.Value; });
using System.Collections.Generic;
namespace AFDSearch.Models
{
public class AirportSearch
{
public AirportSearch()
{
AirportSearchResults = new List<Airport>();
}
@using AFDSearch.Models
@model AirportSearch
@{
ViewBag.Title = "Airport Search";
}
<style>
p {
font-size: 12px;
}
ul, li{
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Threading.Tasks;
using System.Web.Mvc;
using AFDSearch.Models;
using BlackBarLabs.Search.Azure;
namespace AFDSearch.Controllers
{
var resultsModel = new AirportSearch();
resultsModel.SearchText = model.SearchText;
resultsModel.AirportSearchResults = result.ToList();
resultsModel.FacetResults = facetResults;
resultsModel.Filter = model.Filter;
return View(resultsModel);
var result = await azureSearchEngine.SearchDocumentsAsync<Airport>(indexName, searchText, facetfields, true, top, null,
model.Filter,
airport => new Airport() {Id = airport.Id, Identifier = airport.Identifier, Name = airport.Name, City = airport.City, State = airport.State, Chart = airport.Chart, Region = airport.Region, AfdLink = airport.AfdLink},
(facetName, facets) =>
{
facetResults.Add(new FacetInfo() {FacetName = facetName, Facets = facets});
},
count => { });
@kdhollow
kdhollow / gist:b7ccb40d324269cc21be
Created February 27, 2016 18:59
Setting up top and search text
// By default, we want to get back no results, but we want to get facet and count information for the entire result set
int? top = DefaultTopCount;
var searchText = model.SearchText;
if (string.IsNullOrEmpty(searchText) && string.IsNullOrEmpty(model.Filter))
{
searchText = "*";
top = 0;
}