@page "/calendar"
@attribute [Authorize]
@using WebApp.Components.Shared.Components
@using WebApp.Models
@using WebApp.Services
@using Heron.MudCalendar
@inject IEventOccurrenceService EventOccurrenceService
Import
@if (_calendarItems == null)
{
Loading calendar events...
}
else
{
}
@code {
private List? _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;
}
}