This is similar to the previous example, except that the CSV file can be uploaded again and again in the App-Settings UI. So the path isn't hard-coded.
@inherits Custom.Hybrid.RazorTyped
@using ToSic.Razor.Blade
@using System.Linq
@{
// get the query
var query = Kit.Data.GetQuery("ProductsFromCsvInAppSettings");
// get the data from the query
var products = AsItems(query);
// get the current author (if available) from the stream Current
var current = AsItem(query.GetStream("Current"));
}
<ul>
@foreach (var product in products) {
<!-- this li will have class=selected if it's the current one -->
<li class='@(product.Equals(current) ? "selected" : "")'>
<!-- this creates a link to the current page and product=id -->
<a href='@Link.To(parameters: MyPage.Parameters.Set("product", product.Id.ToString()))'>
@product.Get("Name") (#@product.Id)
</a>
@if (product.Equals(current)) {
<br>
<em>
@current.Get("Description")
(<a href="@product.Url("Link")" target="_blank">find out more</a>)
</em>
}
</li>
}
</ul>