@inherits Custom.Hybrid.Razor14
@using ToSic.Razor.Blade;
@using System.Linq;
<!-- unimportant stuff, hidden -->
<div @Sys.PageParts.InfoWrapper()>
@Html.Partial("../shared/DefaultInfoSection.cshtml")
<div @Sys.PageParts.InfoIntro()>
<h2>Example from CSV</h2>
<p>
CSV files are often used so website-owners can upload data from another system. This example shows us getting the CSV-file through a query and visualizing it here.
<br>
</p>
</div>
</div>
@{
// get the query
var query = Kit.Data.GetQuery("ProductsFromCSV");
// get the data from the query
var products = AsList(query);
// get the current product or the default - the query always selects one
var current = AsList(query["Current"]).FirstOrDefault();
// Get the current url params so we can derive from it for details links
var urlParams = CmsContext.Page.Parameters;
}
<ul>
@foreach (var product in products) {
<!-- this li will have class=selected if it's the current one -->
<li class='@(product == current ? "selected" : "")'>
<!-- this creates a link to the current page and product=id -->
<a href='@Link.To(parameters: urlParams.Set("product", product.EntityId.ToString()))'>
@product.Name (#@product.Id)
</a>
@if (current == product) {
<br>
<em>
@current.Description
(<a href="@product.Link" target="_blank">find out more</a>)
</em>
}
</li>
}
</ul>
@* Footer *@
@Html.Partial("../Shared/Layout/FooterWithSource.cshtml", new { Sys = Sys })