@page "/search/{Query?}" @using Microsoft.Extensions.Configuration @using MultiShop.Shared @inject HttpClient Http @inject IConfiguration Configuration @inject IJSRuntime js
@if (showSearchConfiguration) {

Configuration

Shop Quantity
How many results from each store?

This is the maximum number of results we gather for each store we have access to. The larger the result, the longer it takes to load search queries.

Currency
What currency would you like results in?

The currency displayed may either be from the online store directly, or through currency conversion (we'll put a little tag beside the coonverted ones).

Minimum Rating
We'll crop out the lower rated stuff.

We'll only show products that have a rating greater than or equal to the set minimum rating. Optionally, we can also show those that don't have rating.

Price Range
Whats your budget?

Results will be pruned of budgets that fall outside of the designated range. The checkbox can enable or disable the upper bound. These bounds do include the shipping price if it's known.

Upper limit
.00
Lower limit
.00
Shops Searched
What's your preference?

We'll only look through shops that are enabled in this list. Of course, at least one shop has to be enabled.

@foreach (string shop in Shops.Keys) {
}
Minimum Purchases
If they're purchasing, I am too!

Only products that have enough purchases are shown. Optionally, we can also show results that don't have a purchase tally.

Minimum purchases
Minimum Reviews
Well if this many people say it's good...

Only products with enough reviews/ratings are shown. Optionally, we can also show the results that don't have this information.

Minimum reviews
Shipping
Free shipping?

Show results with shipping rates less than a certain value, and choose whether or not to display listings without shipping information.

Max shipping
.00
}
@if (showResultsConfiguration) {
Results Order
What's important to you?

The results will be sorted by the top category. If the compared results are equal or don't have a value for that category, the next category on the list will be used and so on.

@(item.FriendlyName())
}
@if (searching) { @if (listings.Count != 0) {
Loading...
Looked through @resultsChecked listings and found @listings.Count viable results. We're still looking! } else {
Loading...
Hold tight! We're looking through the stores for viable results... } } else if (listings.Count != 0) { @if (organizing) {
Loading...
Organizing the data to your spec... } else { Looked through @resultsChecked listings and found @listings.Count viable results. } } else if (searched) { We've found @resultsChecked listings and unfortunately none matched your search. } else { Search for something to see the results! }
@if (listings.Count > 0) {
@if (!showSearchConfiguration && !searching) { }
Name Price Shipping Purchases Rating Reviews
@product.Listing.Name
From @product.ShopName @if (product.Listing.ConvertedPrices) { Converted price } @foreach (ResultsProfile.Category c in product.Tops) { @CategoryTags(c) }
@if (product.Listing.UpperPrice != product.Listing.LowerPrice) {
@product.Listing.LowerPrice to @product.Listing.UpperPrice
} else {
@GetOrNA(product.Listing.LowerPrice)
}
@GetOrNA(product.Listing.Shipping)
@GetOrNA(product.Listing.PurchaseCount)
@(product.Listing.Rating != null ? string.Format("{0:P2}", product.Listing.Rating) : "N/A")
@GetOrNA(product.Listing.ReviewCount) View
}