many bug fixes and features added
This commit is contained in:
@@ -8,7 +8,7 @@ namespace SportsDivision.Infrastructure.Repositories;
|
||||
public class EventRegistrationRepository : Repository<EventRegistration>, IEventRegistrationRepository
|
||||
{
|
||||
public EventRegistrationRepository(ApplicationDbContext context) : base(context) { }
|
||||
public async Task<IEnumerable<EventRegistration>> GetByTournamentEventLevelAsync(int tournamentEventLevelId) => await _dbSet.Where(r => r.TournamentEventLevelId == tournamentEventLevelId).Include(r => r.Student).ThenInclude(s => s!.School).Include(r => r.Score).ToListAsync();
|
||||
public async Task<IEnumerable<EventRegistration>> GetByTournamentEventLevelAsync(int tournamentEventLevelId) => await _dbSet.Where(r => r.TournamentEventLevelId == tournamentEventLevelId).Include(r => r.Student).ThenInclude(s => s!.School).Include(r => r.TournamentEventLevel).ThenInclude(t => t.Event).Include(r => r.TournamentEventLevel).ThenInclude(t => t.EventLevel).Include(r => r.Score).ToListAsync();
|
||||
public async Task<IEnumerable<EventRegistration>> GetByStudentAsync(int studentId) => await _dbSet.Where(r => r.StudentId == studentId).Include(r => r.TournamentEventLevel).ThenInclude(t => t.Event).Include(r => r.TournamentEventLevel).ThenInclude(t => t.EventLevel).Include(r => r.TournamentEventLevel).ThenInclude(t => t.Tournament).Include(r => r.Score).ToListAsync();
|
||||
public async Task<bool> IsStudentRegisteredAsync(int tournamentEventLevelId, int studentId) => await _dbSet.AnyAsync(r => r.TournamentEventLevelId == tournamentEventLevelId && r.StudentId == studentId);
|
||||
public async Task<IEnumerable<EventRegistration>> GetBySchoolAndTournamentAsync(int schoolId, int tournamentId) => await _dbSet.Where(r => r.Student != null && r.Student.SchoolId == schoolId && r.TournamentEventLevel.TournamentId == tournamentId).Include(r => r.Student).Include(r => r.TournamentEventLevel).ThenInclude(t => t.Event).Include(r => r.TournamentEventLevel).ThenInclude(t => t.EventLevel).Include(r => r.Score).ToListAsync();
|
||||
|
||||
@@ -17,7 +17,7 @@ public class Repository<T> : IRepository<T> where T : class
|
||||
}
|
||||
|
||||
public async Task<T?> GetByIdAsync(int id) => await _dbSet.FindAsync(id);
|
||||
public async Task<IEnumerable<T>> GetAllAsync() => await _dbSet.ToListAsync();
|
||||
public virtual async Task<IEnumerable<T>> GetAllAsync() => await _dbSet.ToListAsync();
|
||||
public async Task<IEnumerable<T>> FindAsync(Expression<Func<T, bool>> predicate) => await _dbSet.Where(predicate).ToListAsync();
|
||||
public async Task<T> AddAsync(T entity) { await _dbSet.AddAsync(entity); return entity; }
|
||||
public async Task AddRangeAsync(IEnumerable<T> entities) => await _dbSet.AddRangeAsync(entities);
|
||||
|
||||
@@ -8,6 +8,6 @@ namespace SportsDivision.Infrastructure.Repositories;
|
||||
public class RoundRepository : Repository<Round>, IRoundRepository
|
||||
{
|
||||
public RoundRepository(ApplicationDbContext context) : base(context) { }
|
||||
public async Task<IEnumerable<Round>> GetByTournamentEventLevelAsync(int tournamentEventLevelId) => await _dbSet.Where(r => r.TournamentEventLevelId == tournamentEventLevelId).Include(r => r.Heats).OrderBy(r => r.RoundOrder).ToListAsync();
|
||||
public async Task<IEnumerable<Round>> GetByTournamentEventLevelAsync(int tournamentEventLevelId) => await _dbSet.Where(r => r.TournamentEventLevelId == tournamentEventLevelId).Include(r => r.Heats).ThenInclude(h => h.HeatLanes).OrderBy(r => r.RoundOrder).ToListAsync();
|
||||
public async Task<Round?> GetWithHeatsAsync(int roundId) => await _dbSet.Include(r => r.Heats).ThenInclude(h => h.HeatLanes).ThenInclude(hl => hl.EventRegistration).ThenInclude(er => er.Student).ThenInclude(s => s!.School).Include(r => r.TournamentEventLevel).ThenInclude(t => t.Event).Include(r => r.TournamentEventLevel).ThenInclude(t => t.EventLevel).FirstOrDefaultAsync(r => r.RoundId == roundId);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,8 @@ namespace SportsDivision.Infrastructure.Repositories;
|
||||
public class SchoolRepository : Repository<School>, ISchoolRepository
|
||||
{
|
||||
public SchoolRepository(ApplicationDbContext context) : base(context) { }
|
||||
public async Task<IEnumerable<School>> GetByZoneAsync(int zoneId) => await _dbSet.Where(s => s.ZoneId == zoneId).Include(s => s.Zone).OrderBy(s => s.Name).ToListAsync();
|
||||
public async Task<IEnumerable<School>> GetBySchoolLevelAsync(SchoolLevel level) => await _dbSet.Where(s => s.SchoolLevel == level).Include(s => s.Zone).OrderBy(s => s.Name).ToListAsync();
|
||||
public override async Task<IEnumerable<School>> GetAllAsync() => await _dbSet.Include(s => s.Zone).Include(s => s.Students).OrderBy(s => s.Name).ToListAsync();
|
||||
public async Task<IEnumerable<School>> GetByZoneAsync(int zoneId) => await _dbSet.Where(s => s.ZoneId == zoneId).Include(s => s.Zone).Include(s => s.Students).OrderBy(s => s.Name).ToListAsync();
|
||||
public async Task<IEnumerable<School>> GetBySchoolLevelAsync(SchoolLevel level) => await _dbSet.Where(s => s.SchoolLevel == level).Include(s => s.Zone).Include(s => s.Students).OrderBy(s => s.Name).ToListAsync();
|
||||
public async Task<School?> GetWithStudentsAsync(int schoolId) => await _dbSet.Include(s => s.Students).Include(s => s.Zone).FirstOrDefaultAsync(s => s.SchoolId == schoolId);
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@ namespace SportsDivision.Infrastructure.Repositories;
|
||||
public class ScoringConstantRepository : Repository<ScoringConstant>, IScoringConstantRepository
|
||||
{
|
||||
public ScoringConstantRepository(ApplicationDbContext context) : base(context) { }
|
||||
public override async Task<IEnumerable<ScoringConstant>> GetAllAsync() => await _dbSet.Include(s => s.Event).OrderBy(s => s.Event!.Name).ToListAsync();
|
||||
public async Task<ScoringConstant?> GetByEventAsync(int eventId) => await _dbSet.FirstOrDefaultAsync(s => s.EventId == eventId);
|
||||
}
|
||||
|
||||
@@ -8,7 +8,8 @@ namespace SportsDivision.Infrastructure.Repositories;
|
||||
public class TournamentRepository : Repository<Tournament>, ITournamentRepository
|
||||
{
|
||||
public TournamentRepository(ApplicationDbContext context) : base(context) { }
|
||||
public async Task<IEnumerable<Tournament>> GetActiveAsync() => await _dbSet.Where(t => !t.IsArchived).Include(t => t.Zone).OrderByDescending(t => t.StartDate).ToListAsync();
|
||||
public override async Task<IEnumerable<Tournament>> GetAllAsync() => await _dbSet.Include(t => t.Zone).Include(t => t.TournamentEventLevels).OrderByDescending(t => t.StartDate).ToListAsync();
|
||||
public async Task<IEnumerable<Tournament>> GetActiveAsync() => await _dbSet.Where(t => !t.IsArchived).Include(t => t.Zone).Include(t => t.TournamentEventLevels).OrderByDescending(t => t.StartDate).ToListAsync();
|
||||
public async Task<Tournament?> GetWithEventLevelsAsync(int tournamentId) => await _dbSet.Include(t => t.TournamentEventLevels).ThenInclude(te => te.Event).Include(t => t.TournamentEventLevels).ThenInclude(te => te.EventLevel).Include(t => t.Zone).FirstOrDefaultAsync(t => t.TournamentId == tournamentId);
|
||||
public async Task<Tournament?> GetFullTournamentAsync(int tournamentId) => await _dbSet.Include(t => t.Zone).Include(t => t.TournamentEventLevels).ThenInclude(te => te.Event).Include(t => t.TournamentEventLevels).ThenInclude(te => te.EventLevel).Include(t => t.TournamentEventLevels).ThenInclude(te => te.Registrations).ThenInclude(r => r.Student).ThenInclude(s => s!.School).FirstOrDefaultAsync(t => t.TournamentId == tournamentId);
|
||||
}
|
||||
|
||||
@@ -248,9 +248,9 @@ public class DatabaseSeeder
|
||||
Add("400m", 1.53775m, 82m, 1.81m, "seconds");
|
||||
Add("1500m", 0.03768m, 480m, 1.85m, "seconds");
|
||||
Add("80mH", 5.74352m, 28.5m, 1.92m, "seconds");
|
||||
Add("Long Jump", 0.14354m, 220m, 1.4m, "centimetres");
|
||||
Add("Triple Jump", 0.14354m, 220m, 1.4m, "centimetres");
|
||||
Add("High Jump", 0.8465m, 75m, 1.42m, "centimetres");
|
||||
Add("Long Jump", 90.56762m, 2.2m, 1.4m, "metres");
|
||||
Add("Triple Jump", 90.56762m, 2.2m, 1.4m, "metres");
|
||||
Add("High Jump", 585.63492m, 0.75m, 1.42m, "metres");
|
||||
Add("Shot Put 3kg", 51.39m, 1.5m, 1.05m, "metres"); Add("Shot Put 4kg", 51.39m, 1.5m, 1.05m, "metres");
|
||||
Add("Shot Put 5kg", 51.39m, 1.5m, 1.05m, "metres"); Add("Shot Put 6kg", 51.39m, 1.5m, 1.05m, "metres");
|
||||
Add("Discus 1kg", 12.91m, 4m, 1.1m, "metres"); Add("Discus 1.25kg", 12.91m, 4m, 1.1m, "metres");
|
||||
|
||||
Reference in New Issue
Block a user