using GreadyPoang.DataLayer.Database;
using GreadyPoang.EntityLayer;

namespace GreadyPoang.DataLayer;

public class CombinedRepository : ICombinedRepository
{
    private readonly DataContext _context;

    public CombinedRepository(DataContext context)
    {
        _context = context;
    }


    public IEnumerable<RoundBuilderElement> roundBuilderElements()
    {
        var result = (from gameRound in _context.GameRounds
                      join gamePoint in _context.GamePoints on gameRound.GameRoundId equals gamePoint.GameRoundId
                      join participant in _context.Participants on gamePoint.ParticipantId equals participant.ParticipantId
                      orderby gameRound.GameRoundStartDate descending, participant.LastName, participant.FirstName, gamePoint.GameRoundRegNr
                      select new RoundBuilderElement
                      {
                          ParticipantId = participant.ParticipantId,
                          ParticipantName = participant.LastNameFirstName,
                          GamePointId = gamePoint.GamePointId,
                          GameRoundRegNr = gamePoint.GameRoundRegNr,
                          GameRegPoints = gamePoint.GameRegPoints,
                          GameRoundId = gameRound.GameRoundId,
                          GameRoundStartDate = gameRound.GameRoundStartDate,
                          Status = gameRound.GameStatus
                      }).ToList();
        return result;

    }
}
