Add EventOccurrenceParserService and update service registrations
Registered the new EventOccurrenceParserService in Program.cs to handle event occurrence parsing. Updated the _Imports.razor file to reflect the renaming of the EventCalendar component to Calendar. Removed the obsolete EventCalendar component to streamline the codebase.
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
@page "/event-calendar"
|
||||
@attribute [Authorize]
|
||||
@using WebApp.Components.Shared.Components
|
||||
@using WebApp.Models
|
||||
@using WebApp.Services
|
||||
@using Heron.MudCalendar
|
||||
@inject IEventOccurrenceService EventOccurrenceService
|
||||
|
||||
<PageHeader Title="Event Calendar" Description="View competition schedules and event occurrences">
|
||||
<ActionButtons>
|
||||
<MudButton StartIcon="@Icons.Material.Filled.ImportExport" Href="calendar/event-occurrences/import" Variant="Variant.Filled" Color="Color.Primary">Import</MudButton>
|
||||
</ActionButtons>
|
||||
</PageHeader>
|
||||
|
||||
<MudPaper Elevation="2" Class="pa-6">
|
||||
@if (_calendarItems == null)
|
||||
{
|
||||
<MudProgressLinear Indeterminate="true" />
|
||||
<MudText>Loading calendar events...</MudText>
|
||||
}
|
||||
else
|
||||
{
|
||||
<MudCalendar T="CalendarEventItem"
|
||||
Items="_calendarItems"
|
||||
View="CalendarView.Day"
|
||||
CurrentDay=_calendarDate
|
||||
/>
|
||||
}
|
||||
</MudPaper>
|
||||
|
||||
@code {
|
||||
private List<CalendarEventItem>? _calendarItems;
|
||||
private DateTime _calendarDate = DateTime.Today;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
await LoadCalendarEvents();
|
||||
}
|
||||
|
||||
private async Task LoadCalendarEvents()
|
||||
{
|
||||
var occurrences = await EventOccurrenceService.GetEventOccurrencesAsync();
|
||||
_calendarItems = occurrences
|
||||
.Select(occ => new CalendarEventItem(occ))
|
||||
.ToList();
|
||||
|
||||
// Find the next date with events
|
||||
_calendarDate = GetNextDateWithEvents();
|
||||
}
|
||||
|
||||
private DateTime GetNextDateWithEvents()
|
||||
{
|
||||
if (_calendarItems == null || !_calendarItems.Any())
|
||||
{
|
||||
return DateTime.Today;
|
||||
}
|
||||
|
||||
var today = DateTime.Today;
|
||||
var nextEvent = _calendarItems
|
||||
.Where(item => item.Start.Date >= today)
|
||||
.OrderBy(item => item.Start)
|
||||
.FirstOrDefault();
|
||||
|
||||
return nextEvent?.Start.Date ?? _calendarItems.OrderBy(item => item.Start).First().Start.Date;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user