package Ġcom . app at . graphic ov . view model Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . live Data Ċ import Ġcom . app at . graphic ov . models . requests . General Data Request Ċ import Ġcom . app at . graphic ov . repository . All Countries Data Repository Ċ import Ġcom . app at . graphic ov . repository . WebService Repository Ċ import Ġcom . app at . graphic ov . web service . api . Api Ċ import Ġcom . app at . graphic ov . web service . service . Resource Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ Ċ class ĠAll Countries Data ViewModel Ġ( private Ġval Ġall Countries Data Repository : ĠAll Countries Data Repository ) Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġfun ĠgetAll Countries Data () Ġ= Ġlive Data ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠ Ġemit ( Resource . loading ( data Ġ= Ġnull )) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . success ( data Ġ= Ġall Countries Data Repository . getAll Countries Data ())) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exception : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" getAll Countries Data ", Ġexception . message . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . error ( data Ġ= Ġnull , Ġmessage Ġ= Ġexception . message Ġ?: Ġ" Error ĠOcc urred ! ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetAll Countries Data By Cases () Ġ= Ġlive Data ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠ Ġemit ( Resource . loading ( data Ġ= Ġnull )) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . success ( data Ġ= Ġall Countries Data Repository . getAll Countries Data By Cases ())) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exception : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" getAll Countries Data ", Ġexception . message . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . error ( data Ġ= Ġnull , Ġmessage Ġ= Ġexception . message Ġ?: Ġ" Error ĠOcc urred ! ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetAll Countries Data Web ( request : ĠGeneral Data Request , Ġapi : ĠApi ) Ġ= Ġlive Data ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠ Ġemit ( Resource . loading ( data Ġ= Ġnull )) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . success ( data Ġ= ĠWeb Service Repository ( api ). getAll Countries Data ( request ))) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exception : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" getAll Countries Data Web ", Ġexception . message . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . error ( data Ġ= Ġnull , Ġmessage Ġ= Ġexception . message Ġ?: Ġ" Error ĠOcc urred ! ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Country Data ByID ( country Id : ĠInt ) Ġ= Ġlive Data ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠ Ġemit ( Resource . loading ( data Ġ= Ġnull )) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . success ( data Ġ= Ġall Countries Data Repository . get Country Data ByID ( country Id ))) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exception : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" get Country Data ByID ", Ġexception . message . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . error ( data Ġ= Ġnull , Ġmessage Ġ= Ġexception . message Ġ?: Ġ" Error ĠOcc urred ! ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Country Data By ISO ( iso : ĠString ) Ġ= Ġlive Data ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠ Ġemit ( Resource . loading ( data Ġ= Ġnull )) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . success ( data Ġ= Ġall Countries Data Repository . get Country Data By ISO ( iso ))) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exception : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" get Country Data By ISO ", Ġexception . message . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . error ( data Ġ= Ġnull , Ġmessage Ġ= Ġexception . message Ġ?: Ġ" Error ĠOcc urred ! ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }