modification local CRUD
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
package com.sio.gestionclients.viewmodel
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.sio.gestionclients.data.local.entities.Client
|
||||
import com.sio.gestionclients.data.repository.LocalClientRepository
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
class LocalClientViewModel(
|
||||
private val repository: LocalClientRepository
|
||||
|
||||
) : ViewModel() {
|
||||
private val _selectedClient = MutableStateFlow<Client?>(null)
|
||||
val selectedClient: StateFlow<Client?> = _selectedClient
|
||||
|
||||
val clients = repository.getAllClients()
|
||||
|
||||
fun addClient(client: Client) {
|
||||
viewModelScope.launch {
|
||||
repository.addClient(client)
|
||||
}
|
||||
}
|
||||
|
||||
fun selectClient(numero: Long) {
|
||||
viewModelScope.launch {
|
||||
_selectedClient.value = repository.getClientByNumero(numero)
|
||||
}
|
||||
}
|
||||
|
||||
fun updateSelectedClient() {
|
||||
viewModelScope.launch {
|
||||
_selectedClient.value?.let { client ->
|
||||
repository.updateClient(client)
|
||||
_selectedClient.value = null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun deleteSelectedClient() {
|
||||
viewModelScope.launch {
|
||||
_selectedClient.value?.let { client ->
|
||||
repository.deleteClient(client)
|
||||
_selectedClient.value = null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user