import Ġio . jav al in . http . Context Ċ import Ġstill ing . St illing Ċ import Ġutils . h ent Call Id Ċ import Ġutils . log Ċ import Ġutils . to UUID Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . Z onedDateTime Ċ import Ġjava . util . UUID Ċ Ċ const Ġval Ġstill ings Id ParamName Ġ= Ġ" still ings Id " Ċ const Ġval Ġakt or Id ParamName Ġ= Ġ" akt Ã¸ r Id " Ċ Ċ class ĠController ( private Ġval Ġrepository : ĠRepository , Ġsend Us end te Fore sp Ã¸ rs ler : Ġ() Ġ-> ĠUnit , Ġh ent St illing : Ġ( UUID ) Ġ-> ĠSt illing ?) Ġ{ ĊĊĠĠĠ Ġval Ġh ent Fore sp Ã¸ rs ler : Ġ( Context ) Ġ-> ĠUnit Ġ= Ġ{ Ġctx Ġ-> ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . path Param ( still ings Id ParamName ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exception : ĠIllegalArgumentException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . status ( 4 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ?. let Ġ{ Ġstill ings Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . json ( h ent Fore sp Ã¸ rs ler Grup pert P Ã¥ A kt Ã¸ r Id ( still ings Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . status ( 2 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġh ent Fore sp Ã¸ rs ler For K andid at : Ġ( Context ) Ġ-> ĠUnit Ġ= Ġ{ Ġctx Ġ-> ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . path Param ( ak tor Id ParamName ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exception : ĠIllegalArgumentException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . status ( 4 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ?. let Ġ{ Ġakt Ã¸ r Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalle Fore sp Ã¸ rs ler For K andid at Ġ= Ġrepository . h ent Fore sp Ã¸ rs ler For K andid at ( akt Ã¸ r Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġg jel den de Fore sp Ã¸ rs ler For K andid at Ġ= Ġalle Fore sp Ã¸ rs ler For K andid at . associate By Ġ{ Ġit . still ings Id Ġ}. values ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoutbound Dto Ġ= Ġg jel den de Fore sp Ã¸ rs ler For K andid at . map ( Fore sp Ã¸ r sel :: til Outbound Dto ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . json ( outbound Dto ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . status ( 2 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġsend Fore sp Ã¸ r sel Om Del ing Av Cv : Ġ( Context ) Ġ-> ĠUnit Ġ= Ġ{ Ġctx Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġfore sp Ã¸ r sel Om Del ing Av Cv Dto Ġ= Ġctx . body As Class ( Fore sp Ã¸ r sel Inbound Dto :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmin st En K andid at Har F Ã¥ tt Fore sp Ã¸ r sel F Ã¸ r : Ġ() Ġ-> ĠBoolean Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . min st En K andid at Har F Ã¥ tt Fore sp Ã¸ r sel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfore sp Ã¸ r sel Om Del ing Av Cv Dto . still ings Id . to UUID (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfore sp Ã¸ r sel Om Del ing Av Cv Dto . ak tor I der ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġstill ing Ġ= Ġh ent St illing ( fore sp Ã¸ r sel Om Del ing Av Cv Dto . still ings Id . to UUID ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġ( kan S ende , Ġstatus kode , Ġfe il meld ing ) Ġ= Ġkan S ende Fore sp Ã¸ r sel ( st illing , Ġmin st En K andid at Har F Ã¥ tt Fore sp Ã¸ r sel F Ã¸ r ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! kan S ende ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog g Fe il Med St illing ( fe il meld ing , Ġfore sp Ã¸ r sel Om Del ing Av Cv Dto . still ings Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . status ( status kode ). json ( fe il meld ing ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . lag re Us end te Fore sp Ã¸ rs ler ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġakt Ã¸ r I der Ġ= Ġfore sp Ã¸ r sel Om Del ing Av Cv Dto . ak tor I der , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstill ings Id Ġ= Ġfore sp Ã¸ r sel Om Del ing Av Cv Dto . still ings Id . to UUID (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs var f rist Ġ= Ġfore sp Ã¸ r sel Om Del ing Av Cv Dto . s var f rist . to LocalDateTime (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelt Av Nav Ident Ġ= Ġctx . h ent Nav Ident (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Id Ġ= Ġctx . h ent Call Id () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . json ( h ent Fore sp Ã¸ rs ler Grup pert P Ã¥ A kt Ã¸ r Id ( fore sp Ã¸ r sel Om Del ing Av Cv Dto . still ings Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . status ( 2 0 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Us end te Fore sp Ã¸ rs ler () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġkan S ende Fore sp Ã¸ r sel ( st illing : ĠSt illing ?, Ġmin st En K andid at Har F Ã¥ tt Fore sp Ã¸ r sel F Ã¸ r : Ġ() Ġ-> ĠBoolean ): ĠTrip le < Boolean , ĠInt , ĠString > Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( st illing Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTrip le ( false , Ġ 4 0 4 ," St illing en Ġe ks ister er Ġik ke ", Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( st illing . kan Ik ke De les Med K andid aten ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTrip le ( false , Ġ 4 0 0 , Ġ" St illing en Ġkan Ġik ke Ġde les Ġmed Ġbru ker en Ġp ga . Ġstill ing sk ategori .") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( min st En K andid at Har F Ã¥ tt Fore sp Ã¸ r sel F Ã¸ r ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTrip le ( false , Ġ 4 0 9 , Ġ" M inst ĠÃ© n Ġk andid at Ġhar Ġf Ã¥ tt Ġfore sp Ã¸ r se len Ġf ra Ġf Ã¸ r .") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTrip le ( true , Ġ 2 0 0 , Ġ"") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġres end Fore sp Ã¸ r sel Om Del ing Av Cv : Ġ( Context ) Ġ-> ĠUnit Ġ= Ġ{ Ġctx Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġinbound Dto Ġ= Ġctx . body As Class ( Res end Fore sp Ã¸ r sel Inbound Dto :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġakt Ã¸ r Id Ġ= Ġctx . path Param ( ak tor Id ParamName ) ĊĊĠĠĠĠĠĠĠ Ġval Ġk andid at ens S iste Fore sp Ã¸ r sel For St illing en Ġ= Ġrepository . h ent S iste Fore sp Ã¸ r sel For K andid at Og St illing ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġakt Ã¸ r Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinbound Dto . still ings Id . to UUID () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġ( kan S ende Ny Fore sp Ã¸ r sel , Ġfe il meld ing ) Ġ= Ġkan Res ende Fore sp Ã¸ r sel ( k andid at ens S iste Fore sp Ã¸ r sel For St illing en ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! kan S ende Ny Fore sp Ã¸ r sel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog g Fe il Med St illing ( fe il meld ing , Ġinbound Dto . still ings Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . status ( 4 0 0 ). json ( fe il meld ing ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . lag re Us end te Fore sp Ã¸ rs ler ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġakt Ã¸ r I der Ġ= ĠlistOf ( akt Ã¸ r Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstill ings Id Ġ= Ġinbound Dto . still ings Id . to UUID (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs var f rist Ġ= Ġinbound Dto . s var f rist . to LocalDateTime (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelt Av Nav Ident Ġ= Ġctx . h ent Nav Ident (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Id Ġ= Ġctx . h ent Call Id () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . json ( h ent Fore sp Ã¸ rs ler Grup pert P Ã¥ A kt Ã¸ r Id ( inbound Dto . still ings Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . status ( 2 0 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Us end te Fore sp Ã¸ rs ler () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġkan Res ende Fore sp Ã¸ r sel ( s iste Fore sp Ã¸ r sel For K andid at Og St illing : ĠFore sp Ã¸ r sel ?): ĠPair < Boolean , ĠString > Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( s iste Fore sp Ã¸ r sel For K andid at Og St illing Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( false , Ġ" K an Ġik ke Ġres ende Ġfore sp Ã¸ r sel Ġfor di Ġk andid aten Ġik ke Ġhar Ġf Ã¥ tt Ġfore sp Ã¸ r sel Ġf Ã¸ r ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( s iste Fore sp Ã¸ r sel For K andid at Og St illing . har Sv art Ja ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( false , Ġ" K an Ġik ke Ġres ende Ġfore sp Ã¸ r sel Ġfor di Ġk andid aten Ġall ere de Ġhar Ġsv art Ġja ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( s iste Fore sp Ã¸ r sel For K andid at Og St illing . vent er P Ã¥ S var ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( false , Ġ" K an Ġik ke Ġres ende Ġfore sp Ã¸ r sel Ġfor di Ġk andid aten Ġen n Ã¥ Ġik ke Ġhar Ġbes v art Ġen Ġaktiv Ġfore sp Ã¸ r sel ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( s iste Fore sp Ã¸ r sel For K andid at Og St illing . kan Ik ke Vars le B ru ker ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( false , Ġ" K an Ġik ke Ġres ende Ġfore sp Ã¸ r sel Ġfor di Ġfor ri ge Ġfore sp Ã¸ r sel Ġik ke Ġkun ne Ġsen des Ġtil Ġk andid at ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( true , Ġ"") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġh ent Fore sp Ã¸ rs ler Grup pert P Ã¥ A kt Ã¸ r Id ( still ings Id : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġrepository . h ent Fore sp Ã¸ rs ler ( still ings Id . to UUID ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . til Outbound Dto () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. groupBy Ġ{ Ġit . akt Ã¸ r Id Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlog g Fe il Med St illing ( fe il meld ing : ĠString , Ġstill ings Id : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġlog . warn ("$ fe il meld ing : ĠStill ings id : Ġ$ still ings Id ") Ċ } Ċ Ċ data Ġclass ĠFore sp Ã¸ r sel Inbound Dto ( ĊĠĠĠ Ġval Ġstill ings Id : ĠString , ĊĠĠĠ Ġval Ġs var f rist : ĠZ onedDateTime , ĊĠĠĠ Ġval Ġakt or I der : ĠList < String >, Ċ ) Ċ Ċ data Ġclass ĠRes end Fore sp Ã¸ r sel Inbound Dto ( ĊĠĠĠ Ġval Ġstill ings Id : ĠString , ĊĠĠĠ Ġval Ġs var f rist : ĠZ onedDateTime Ċ ) Ċ Ċ data Ġclass ĠFore sp Ã¸ r sel Outbound Dto ( ĊĠĠĠ Ġval Ġakt Ã¸ r Id : ĠString , ĊĠĠĠ Ġval Ġstill ings Id : ĠString , ĊĊĠĠĠ Ġval Ġdelt Status : ĠDel t Status , ĊĠĠĠ Ġval Ġdelt Tid sp unkt : ĠLocalDateTime , ĊĠĠĠ Ġval Ġdelt Av : ĠString , ĊĠĠĠ Ġval Ġs var f rist : ĠZ onedDateTime , ĊĊĠĠĠ Ġval Ġtil stand : ĠT il stand ?, ĊĠĠĠ Ġval Ġs var : ĠS var ?, ĊĠĠĠ Ġval Ġbe gr un n else For AtA ktiv itet Ik ke B le Opp rett et : ĠBe gr un n else For AtA ktiv itet Ik ke B le Opp rett et ? Ċ ) Ċ Ċ type alias ĠFore sp Ã¸ rs ler Grup pert P Ã¥ A kt Ã¸ r Id Ġ= ĠMap < String , ĠList < Fore sp Ã¸ r sel Outbound Dto >> Ċ