@page @model ConferenceModel @using System.Net @using global::c3stream.DataModels @using static ConferenceModel @{ if (c3stream.Conferences.All(c => c.Acronym != Request.Query["c"])) { Response.Redirect("/"); return; } c3stream.UpdateCookie(Request, Response, $"/Conference?c={Request.Query["c"]}"); ViewData["Title"] = Request.Query["c"]; var wc = new WebClient(); var conference = c3stream.Conferences.First(c => c.Acronym == Request.Query["c"]); if (conference.Ongoing) { c3stream.UpdateConference(conference); } wc.Dispose(); await using var db = new Database.DbConn(); var states = db.States.ToList(); } @foreach (var talk in Request.Query["orderby"] == "published" ? conference.Talks.OrderByDescending(p => p.ReleaseDate) : conference.Talks.OrderBy(p => p.Date)) { var state = states.FirstOrDefault(p => p.TalkId == talk.Guid && p.UserId == Request.Cookies["bookmark"])?.State; var isWatched = state == "watched"; var isMarked = state == "marked"; var file = $"{talk.Slug}.mp4"; var eventName = talk.Tags.Count <= 1 ? conference.Acronym : talk.Tags[0].Replace("-", "-
"); var category = talk.Tags.Count switch { 0 => "", 1 => talk.Tags[0], 2 => "", 3 => talk.Tags[2], 4 => talk.Tags[3], 5 => talk.Tags[3], 6 => talk.Tags[3], // rc3: is this correct? _ => "" }; @if (isWatched) { } else if (isMarked) { } else { } }
Event @Html.Raw(Request.Query["orderby"] == "published" ? $"Published" : $"Date") Category Title Speaker(s) Lang Actions
@Html.Raw(eventName) @(Request.Query["orderby"] == "published" ? talk.ReleaseDate?.Date.ToShortDateString() : talk.Date?.Date.ToShortDateString()) @category@talk.Title@talk.Title@talk.Title@(talk.Persons.Any() ? talk.Persons.Aggregate((s, s1) => $"{s}, {s1}") : "") @talk.OriginalLanguage
@if (System.IO.File.Exists(System.IO.Path.Combine(c3stream.CachePath, conference.Acronym, file))) { } else { } @if (isWatched) { } else if (isMarked) { } else { }