package Ġorg . v and r ade . col lo qu ium . service . impl Ċ Ċ import Ġorg . springframework . security . oauth 2 . core . user . OAuth 2 User Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġorg . v and r ade . col lo qu ium . dao . Quiz DAO Ċ import Ġorg . v and r ade . col lo qu ium . generated . tables . po jos . Statistics Ċ import Ġorg . v and r ade . col lo qu ium . repository . IL if eline Repository Ċ import Ġorg . v and r ade . col lo qu ium . repository . I Quiz Repository Ċ import Ġorg . v and r ade . col lo qu ium . service . I Quiz Service Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠAuthor : ĠV itor ĠAnd r ade Ċ Ġ* ĠDate : Ġ 1 2 / 6 / 2 1 Ċ Ġ* ĠTime : Ġ 9 : 4 1 ĠAM Ċ Ġ*/ Ċ Ċ @ Service Ċ class ĠQu iz Service ( ĊĠĠĠ Ġval Ġquiz Repository : ĠI Quiz Repository , ĊĠĠĠ Ġval Ġl if eline Repository : ĠIL if eline Repository Ċ ): ĠI Quiz Service Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Quiz ( id : ĠInt ): ĠQu iz DAO ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġquiz Ġ= Ġquiz Repository . findOne ( id ) Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġl if el ines Ġ= Ġl if eline Repository . find Unused By Quiz ( quiz . id ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠQu iz DAO ( quiz . id , Ġquiz . createdAt , Ġquiz . updatedAt , Ġquiz . owner , Ġl if el ines . toList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Quiz ( principal : ĠOAuth 2 User ?): ĠQu iz DAO Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġquiz Ġ= Ġquiz Repository . generate (( principal ?. getAttribute (" login ") Ġ?: ĠUUID . randomUUID ()). toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġl if el ines Ġ= Ġl if eline Repository . find Unused By Quiz ( quiz . id ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠQu iz DAO ( quiz . id , Ġquiz . createdAt , Ġquiz . updatedAt , Ġquiz . owner , Ġl if el ines . toList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġuse Quiz L if eline ( id : ĠInt , Ġl if eline Template Id : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġl if eline Repository . set To Used ( id , Ġl if eline Template Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Statistics ( id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġquiz Repository . generate Statistics ( id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Statistics ( id : ĠInt ): ĠStatistics ? Ġ= Ġquiz Repository . find Statistics ById ( id ) Ċ }