using Core.Entities;
using Data;
using Microsoft.EntityFrameworkCore;
namespace WebApp.Services;
///
/// Service for loading meeting schedule data from the database.
///
public class MeetingScheduleDataService : IMeetingScheduleDataService
{
private readonly AppDbContext _context;
public MeetingScheduleDataService(AppDbContext context)
{
_context = context;
}
public async Task LoadTeamsAsync()
{
return await _context.Teams
.AsNoTracking()
.Include(e => e.Event)
.Include(e => e.Students)
.OrderBy(e => e.Event.Name)
.ThenBy(e => e.Identifier)
.ToArrayAsync();
}
public async Task LoadStudentsAsync()
{
return await _context.Students
.AsNoTracking()
.Include(e => e.Teams)
.ThenInclude(t => t.Event)
.Include(e => e.Teams)
.ThenInclude(t => t.Captain)
.Include(e => e.EventRankings)
.ThenInclude(e => e.EventDefinition)
.OrderBy(e => e.FirstName)
.ToArrayAsync();
}
}