У меня есть решение, где мне нужно сделать календарь для артистов на фестивале.Я нашел способ сортировки их по .SelectMany().OrderBy().ThenBy().ThenBy()
Теперь мне нужно выйти из цикла (ItemPublisher:Item.WhenAndWhere)
в LINQ, чтобы получить строку ItemPublisher:Item.Title
.
Любая идея о том, как яможет сделать это в том же операторе LINQ.
@inherits Dynamicweb.Rendering.RazorTemplateBase <
Dynamicweb.Rendering.RazorTemplateModel < Dynamicweb.Rendering.Template >>
@using System;
@using System.Collections.Generic;
@using System.Linq;
@{
var lastDay = "";
var currentDay = "";
var lastVenue = "";
var currentVenue = "";
var items = GetLoop("ItemPublisher:Items.List")
.SelectMany(item => item.GetLoop("ItemPublisher:Item.WhenAndWhere"))
.OrderBy(item => item.GetDate("ItemPublisher:Item.WhenAndWhere.Date"))
.ThenBy(item => item.GetString("ItemPublisher:Item.WhenAndWhere.Where"))
.ThenBy(item => item.GetString("ItemPublisher:Item.Title"))
.Select(item => new{
day = item.GetDate("ItemPublisher:Item.WhenAndWhere.Date").ToString("dddd"),
where = item.GetString("ItemPublisher:Item.WhenAndWhere.Where"),
title = item.GetString("ItemPublisher:Item.Title")
});
}
<div class="grid">
<div class="grid__col-md-12 ">
@foreach(var item in items) {
var title = item.title;
if(lastDay != item.day)
{
<h1 class="day u-margin-top--lg u-no-margin">@item.day</h1>
lastDay = item.day;
}
if(lastVenue != item.where)
{
<h2 class="day u-no-margin">@item.where</h2>
lastVenue = item.where;
}
<p>@item.title</p>
}
</div>
</div>