@page "/seizoenen" @attribute [Authorize(Policy = "Editor")] @inject SeasonService SeizoenSvc @inject ArticleService Artikelen @inject LatexService Latex @inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Af Seizoenen — ProostenKrant

Seizoenen & drukwerk

Per seizoen wordt een editie van de krant gedrukt. Publiceer artikelen en druk daarna de editie.

@if (_melding is not null) {

@_melding @if (_nieuwPdf is not null) {  Download de krant → }

} @if (_fout is not null) {

@_fout

}
@foreach (var seizoen in _seizoenInfo) {

@seizoen.Season.Name @seizoen.Season.StartDate.Year

@if (seizoen.IsHuidig) { lopende editie }

@Krant.DutchShortDate(seizoen.Season.StartDate) — @Krant.DutchShortDate(seizoen.Season.EndDate)

Artikelen bekijken
}

Gedrukte edities

@if (_edities.Count > 0) { @foreach (var editie in _edities) { }
EditieDatumGrootte
@editie.DisplayName @Krant.DutchShortDate(editie.Date) @(editie.SizeBytes / 1024) kB Download PDF
} else {

Er werd nog geen editie gedrukt.

} @code { [SupplyParameterFromForm(FormName = "genereer-seizoen")] private GenereerInput Input { get; set; } = new(); private sealed class GenereerInput { public int SeasonId { get; set; } } private List<(Season Season, int Gepubliceerd, int Klad, bool IsHuidig)> _seizoenInfo = new(); private List _edities = new(); private string? _melding; private string? _fout; private string? _nieuwPdf; private string? _afToken; [CascadingParameter] private HttpContext HttpContext { get; set; } = default!; protected override async Task OnInitializedAsync() { _afToken = Af.GetAndStoreTokens(HttpContext).RequestToken; var seasons = await SeizoenSvc.GetAllAsync(); var alle = await Artikelen.GetAllAsync(); _seizoenInfo = seasons.Select(s => { var vanS = alle.Where(a => a.SeasonId == s.Id).ToList(); return (s, vanS.Count(a => a.Status == "published"), vanS.Count(a => a.Status == "draft"), s.StartDate <= DateTime.Now && s.EndDate >= DateTime.Now); }).ToList(); _edities = Latex.ListEditions(); LeesMelding(); } private void LeesMelding() { var query = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(new Uri(Nav.Uri).Query); query.TryGetValue("melding", out var melding); query.TryGetValue("fout", out var fout); _melding = melding; _fout = fout; query.TryGetValue("pdf", out var pdf); _nieuwPdf = pdf; } }