...
USECASE 10 - Printen ronde indeling
Per competitie en ronde
Per datum
Voor het uitprinten van de rondes hebben wij besloten het op een eigen pagina te zetten. Op deze pagina kan er voor twee werkwijzen gekozen worden. Er kan namelijk per competitie en per ronde een PDF gegenereerd worden of per datum. Als er voor de datum optie gekozen wordt, wordt de datum meegegeven aan de generateMatchesPerDatePDF methode. Deze methode is beschikbaar door de instantie van de PDFService die de methodes bevat voor alles wat met het genereren van de PDF te maken heeft. Aan de methode moeten ook nog het pad waar het bestand opgeslagen gaat worden (pdfPath) en de datum die geselecteerd is door de gebruiker (datePicker) meegegeven worden. In de PDFService worden vervolgens binnen de generateMatchesPerDatePDF methode alle competities (competitions) en competitiegroepen opgehaald (competitionGroups). Om namelijk alle data van een dag op te halen moet dit wel gedaan worden per competitie. De wedstrijden worden zo dus per ronde, per groep en per competitie opgehaald. Dit is een stuk duidelijker dan alle data door elkaar te hebben binnen de PDF. Vervolgens worden de rondes gecontroleerd om te kijken of deze ook wel echt op de ingevoerde datum gehouden worden. Zodra de wedstrijden per group en per competitie opgehaald zijn wordt de naam van het document gegenereerd aangezien deze naam de eerder genoemde informatie nodig heeft. Voor het maken van de naam in de methode generatePDFName wordt de huidige tijd opgehaald om altijd een unieke bestandsnaam te hebben. Als deze namelijk niet uniek is wordt het vorige bestand met die naam overschreven. Vervolgens wordt er gecontroleerd of er daadwerkelijk wedstrijden zijn op de datum die ingevuld is en als dit zo is wordt er een PDF opgesteld met de drawPDF methode. Stel dat er geen rondes op de ingevoerde dag of competitiegroepen of wedstrijden zijn wordt er een melding in het scherm gebracht met een foutmelding. De drawPDF methode wordt dan ook niet aangeroepen. Iedere keer dat de drawPDF methode aangeroepen wordt telt de pdfCounter 1 bij zichzelf op. Dit is later belangrijk voor het weergeven van het aantal gegenereerde PDF's. Anders is het namelijk nogal onduidelijk of er überhaupt wel PDF's gegenereerd zijn. In de drawPDF methode wordt er met iText een PDF gegenereerd met de wedstrijddata van de eerder ingevoerde dag. Als het bestand niet aangemaakt kan worden wordt er een exceptie gegooid die aangeeft dat er geen bestand aangemaakt kan worden.
Vanuit . Vanuit deze pagina moet er worden geselecteerd voor welke CompetitieDTO de rondes uit moeten worden geprint via een dropdown. Met de getCompetitions functie binnen MatchRepository worden de CompetitionDTO's opgehaald. Met de gekozen Competitie kunnen de rondes opgehaald worden die dan in de volgende dropdown kunnen worden gezet met hun rondenummers. Via de getMatchesByRoundId functie worden alle individuele matches opgehaald waardoor alle informatie voor het uitprinten van de indeling er is.
...