Skip to content
This repository was archived by the owner on Jul 10, 2024. It is now read-only.

Commit 4cd1c51

Browse files
committed
Make the MyAgenda page work again
1 parent d5b941b commit 4cd1c51

File tree

5 files changed

+54
-57
lines changed

5 files changed

+54
-57
lines changed

src/FrontEnd/Pages/Index.cshtml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@
3030
<div class="row">
3131
@foreach (var session in timeSlot)
3232
{
33+
var inUserAgenda = Model.UserSessions?.Contains(session.Id) ?? false;
34+
if (inUserAgenda || Model.ShowSessionsNotInAgenda())
35+
{
3336
<div class="col-md-3 mb-4">
3437
<div class="card shadow session h-100">
3538
<div class="card-header">@session.Track?.Name</div>
@@ -49,7 +52,7 @@
4952
<input type="hidden" name="sessionId" value="@session.Id" />
5053
<p class="mb-0">
5154
<a authz-policy="Admin" asp-page="/Admin/EditSession" asp-route-id="@session.Id" class="btn btn-default btn-sm">Edit</a>
52-
@if (Model.UserSessions?.Contains(session.Id) ?? false)
55+
@if (inUserAgenda)
5356
{
5457
<button type="submit" asp-page-handler="Remove" asp-route-day="@Model.CurrentDayOffset" class="btn btn-default btn-sm bg-transparent" title="Remove from my personal agenda">
5558
<i class="icon ion-md-star" aria-hidden="true"></i>
@@ -66,6 +69,7 @@
6669
</div>
6770
</div>
6871
</div>
72+
}
6973
}
7074
</div>
7175
}

src/FrontEnd/Pages/Index.cshtml.cs

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ public async Task<IActionResult> OnPostRemoveAsync(int sessionId, int day = 0)
6161
return RedirectToPage(new { day });
6262
}
6363

64-
protected virtual Task<ConferenceData> GetConferenceDataAsync()
64+
public virtual bool ShowSessionsNotInAgenda() => true;
65+
66+
protected Task<ConferenceData> GetConferenceDataAsync()
6567
{
6668
return _cache.GetOrCreateAsync(CacheKeys.ConferenceData, async entry =>
6769
{
@@ -72,26 +74,27 @@ protected virtual Task<ConferenceData> GetConferenceDataAsync()
7274

7375
var numberOfDays = ((endDate - startDate)?.Days + 1) ?? 0;
7476

75-
var dict = new ConferenceData(numberOfDays);
77+
var confData = new ConferenceData(numberOfDays);
7678

7779
for (int i = 0; i < numberOfDays; i++)
7880
{
7981
var filterDate = startDate?.AddDays(i);
8082

81-
dict[i] = sessions.Where(s => s.StartTime?.Date == filterDate)
82-
.OrderBy(s => s.TrackId)
83-
.GroupBy(s => s.StartTime)
84-
.OrderBy(g => g.Key);
83+
confData[i] = sessions.Where(s => s.StartTime?.Date == filterDate)
84+
.OrderBy(s => s.TrackId)
85+
.GroupBy(s => s.StartTime)
86+
.OrderBy(g => g.Key);
8587
}
8688

8789
entry.SetSlidingExpiration(TimeSpan.FromHours(1));
8890

89-
dict.StartDate = startDate;
90-
dict.EndDate = endDate;
91-
dict.DayOffsets = Enumerable.Range(0, numberOfDays)
92-
.Select(offset => (offset, (startDate?.AddDays(offset))?.DayOfWeek));
91+
confData.StartDate = startDate;
92+
confData.EndDate = endDate;
93+
confData.DayOffsets = Enumerable.Range(0, numberOfDays)
94+
.Select(offset =>
95+
(offset, (startDate?.AddDays(offset))?.DayOfWeek));
9396

94-
return dict;
97+
return confData;
9598
});
9699
}
97100

@@ -102,7 +105,9 @@ public ConferenceData(int capacity) : base(capacity)
102105
}
103106

104107
public DateTimeOffset? StartDate { get; set; }
108+
105109
public DateTimeOffset? EndDate { get; set; }
110+
106111
public IEnumerable<(int Offset, DayOfWeek? DayofWeek)> DayOffsets { get; set; }
107112
}
108113
}

src/FrontEnd/Pages/MyAgenda.cshtml

Lines changed: 32 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -25,57 +25,52 @@
2525
}
2626

2727
<ul class="nav nav-pills">
28-
@*@foreach (var day in Model.DayOffsets)
28+
@foreach (var day in Model.ConferenceModel.DayOffsets)
2929
{
30-
<li role="presentation" class="@(Model.CurrentDayOffset == day.Offset ? "active" : null)">
31-
<a asp-route-day="@day.Offset">@day.DayofWeek?.ToString()</a>
30+
<li role="presentation" class="nav-item">
31+
<a class="nav-link @(Model.CurrentDayOffset == day.Offset ? "active" : null)" asp-route-day="@day.Offset">@day.DayofWeek?.ToString()</a>
3232
</li>
33-
}*@
33+
}
3434
</ul>
3535

36-
@*@foreach (var timeSlot in Model.Sessions)
36+
@foreach (var timeSlot in Model.ConferenceModel[Model.CurrentDayOffset])
3737
{
3838
<h4>@timeSlot.Key?.ToString("HH:mm")</h4>
3939
<div class="row">
4040
@foreach (var session in timeSlot)
4141
{
42-
<div class="col-md-3 mb-4">
43-
<div class="card shadow session h-100">
44-
<div class="card-header">@session.Track?.Name</div>
45-
<div class="card-body">
46-
<h5 class="card-title"><a asp-page="Session" asp-route-id="@session.Id">@session.Title</a></h5>
47-
</div>
48-
<div class="card-footer">
49-
<ul class="list-inline mb-0">
50-
@foreach (var speaker in session.Speakers)
51-
{
52-
<li class="list-inline-item">
53-
<a asp-page="Speaker" asp-route-id="@speaker.Id">@speaker.Name</a>
54-
</li>
55-
}
56-
</ul>
57-
<form authz="true" method="post">
58-
<input type="hidden" name="sessionId" value="@session.Id" />
59-
<p class="mb-0">
60-
<a authz-policy="Admin" asp-page="/Admin/EditSession" asp-route-id="@session.Id" class="btn btn-default btn-sm">Edit</a>
61-
@if (Model.UserSessions.Contains(session.Id))
42+
var inUserAgenda = Model.UserSessions?.Contains(session.Id) ?? false;
43+
if (inUserAgenda)
44+
{
45+
<div class="col-md-3 mb-4">
46+
<div class="card shadow session h-100">
47+
<div class="card-header">@session.Track?.Name</div>
48+
<div class="card-body">
49+
<h5 class="card-title"><a asp-page="Session" asp-route-id="@session.Id">@session.Title</a></h5>
50+
</div>
51+
<div class="card-footer">
52+
<ul class="list-inline mb-0">
53+
@foreach (var speaker in session.Speakers)
6254
{
63-
<button type="submit" asp-page-handler="Remove" class="btn btn-default btn-sm bg-transparent" title="Remove from my personal agenda">
64-
<i class="icon ion-md-star" aria-hidden="true"></i>
65-
</button>
55+
<li class="list-inline-item">
56+
<a asp-page="Speaker" asp-route-id="@speaker.Id">@speaker.Name</a>
57+
</li>
6658
}
67-
else
68-
{
69-
<button type="submit" class="btn btn-default btn-sm bg-transparent" title="Add to my personal agenda">
70-
<i class="icon ion-md-star-outline" aria-hidden="true"></i>
59+
</ul>
60+
<form authz method="post">
61+
<input type="hidden" name="sessionId" value="@session.Id" />
62+
<p class="mb-0">
63+
<a authz-policy="Admin" asp-page="/Admin/EditSession" asp-route-id="@session.Id" class="btn btn-default btn-sm">Edit</a>
64+
<button type="submit" asp-page-handler="Remove" asp-route-day="@Model.CurrentDayOffset" class="btn btn-default btn-sm bg-transparent" title="Remove from my personal agenda">
65+
<i class="icon ion-md-star" aria-hidden="true"></i>
7166
</button>
72-
}
73-
</p>
74-
</form>
67+
</p>
68+
</form>
69+
</div>
7570
</div>
7671
</div>
77-
</div>
72+
}
7873
}
7974
</div>
80-
}*@
75+
}
8176
</div>

src/FrontEnd/Pages/MyAgenda.cshtml.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,6 @@ public MyAgendaModel(IApiClient client, IMemoryCache cache)
1818

1919
}
2020

21-
protected override Task<ConferenceData> GetConferenceDataAsync()
22-
{
23-
throw new Exception("later asshole");
24-
//return _apiClient.GetSessionsByAttendeeAsync(User.Identity.Name);
25-
}
21+
public override bool ShowSessionsNotInAgenda() => false;
2622
}
2723
}

src/FrontEnd/Pages/Shared/_Layout.cshtml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@
3333
<li class="nav-item">
3434
<a class="nav-link text-dark" asp-page="/Search">Search</a>
3535
</li>
36-
<li class="nav-item">
37-
<a class="nav-link text-dark" asp-area="" asp-page="/Index">Agenda</a>
38-
</li>
3936
<li class="nav-item">
4037
<a class="nav-link text-dark" asp-page="/Speakers">Speakers</a>
4138
</li>

0 commit comments

Comments
 (0)