package Ġh os se in z afari . github . code question . ui . ui . view model Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . live Data Ċ import Ġh os se in z afari . github . code question . data . repository . Course Repository Ċ import Ġh os se in z afari . github . code question . struct . Code Model Ċ import Ġh os se in z afari . github . code question . struct . Response Std Model Ċ import Ġh os se in z afari . github . code question . ui . data . repository . Code Repository Ċ import Ġh os se in z afari . github . code question . ui . data . repository . UserRepository Ċ import Ġh os se in z afari . github . code question . ui . helper . io Ċ import Ġh os se in z afari . github . code question . ui . helper . log Ċ import Ġh os se in z afari . github . code question . ui . struct . User Model Ċ import Ġh os se in z afari . github . code question . ui . ui . util . Resource Ċ Ċ /* Ċ @ created Ġin Ġ 2 5 / 0 7 / 2 0 2 0 Ġ- Ġ 0 1 : 1 9 ĠPM Ċ @ project ĠCode ĠQuestion Ċ @ author ĠH os se in ĠZ afari Ġ Ċ @ email Ġ Ġh os se in z afari 2 0 0 0 @ gmail . com Ġ Ċ */ Ċ Ċ class ĠHome ViewModel Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġrepository User Ġ= ĠUser Repository () ĊĠĠĠ Ġprivate Ġval Ġrepository Course Ġ= ĠCourse Repository () ĊĠĠĠ Ġprivate Ġval Ġrepository Code Ġ= ĠCode Repository () ĊĊĠĠĠ Ġfun Ġget Best User (): ĠLive Data < Resource < List < User Model >>> Ġ= Ġlive Data Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġset Ġloading Ġdata ĊĠĠĠĠĠĠĠ Ġemit ( Resource . loading ()) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġset Ġsuccess Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusers Ġ= Ġget Best UserData () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog (" get Best User () Ġ ĠThread Ġ" Ġ+ ĠThread . currentThread (). name Ġ+ Ġusers . value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . success ( users . value !! )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġset Ġerror ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . error < List < User Model >> ("" Ġ+ Ġe . message )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġget Best UserData () Ġ= Ġ Ġio Ġ{ Ġrepository User . get Best User () Ġ} ĊĊĠĠĠ Ġfun Ġget Courses (): ĠLive Data < Resource < Response Std Model ? >> Ġ= Ġlive Data Ġ{ ĊĠĠĠĠĠĠĠ Ġemit ( Resource . loading ()) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcourses Ġ= Ġget Courses Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . success ( courses . value )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . error < Response Std Model >(" " Ġ+ Ġe . message )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġget Courses Data () Ġ= Ġio Ġ{ Ġrepository Course . get Best Courses () Ġ} ĊĊĠĠĠ Ġfun Ġget Codes (): ĠLive Data < Resource < List < Code Model >? >> Ġ= Ġlive Data Ġ{ ĊĠĠĠĠĠĠĠ Ġemit ( Resource . loading ()) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcodes Ġ= Ġget Codes Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . success ( codes . value )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . error < List < Code Model >> ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġget Codes Data () Ġ= Ġio Ġ{ Ġrepository Code . get Best Code () Ġ} Ċ }