setCurrentUserDto method
Implementation
Future<void> setCurrentUserDto(
SchemaMetaData smd, DbTransaction transaction, UserDto userDto) async {
_currentUserDto = null;
_currentUserId = null;
UserDao userDao = UserDao(smd, transaction);
await userDao.init(initTable: true);
int? cuId = null;
try {
cuId = await getCurrentUserId(smd, transaction);
} on SqlException catch (e) {
if (e.sqlExceptionEnum == SqlExceptionEnum.ENTRY_NOT_FOUND)
await setCurrentUserId(smd, transaction, userDto.id!);
}
if (cuId == null || cuId == userDto.id) {
await userDao.setUserDto(userDto);
} else {
// User Id has been updated so remove old entry and rewrite
try {
await userDao.deleteUserById(cuId);
} on SqlException catch (e) {
if (e.sqlExceptionEnum == SqlExceptionEnum.ENTRY_NOT_FOUND) print("$e");
}
await setCurrentUserId(smd, transaction, userDto.id!);
await userDao.setUserDto(userDto);
}
}