You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							32 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							32 lines
						
					
					
						
							1.2 KiB
						
					
					
				| import 'package:hadi_hoda_flutter/core/constants/my_constants.dart'; | |
| import 'package:hadi_hoda_flutter/core/error_handler/my_exception.dart'; | |
| import 'package:hadi_hoda_flutter/core/params/level_params.dart'; | |
| import 'package:hadi_hoda_flutter/core/utils/local_storage.dart'; | |
| import 'package:hadi_hoda_flutter/features/level/domain/entity/level_entity.dart'; | |
| import 'package:hadi_hoda_flutter/features/level/domain/entity/total_data_entity.dart'; | |
| import 'package:hive/hive.dart'; | |
| 
 | |
| abstract class ILevelDatasource { | |
|   Future<List<LevelEntity>> getLevels({required LevelParams params}); | |
| } | |
| 
 | |
| /// Local | |
| class LocalLevelDatasourceImpl implements ILevelDatasource { | |
|   const LocalLevelDatasourceImpl(); | |
| 
 | |
|   @override | |
|   Future<List<LevelEntity>> getLevels({required LevelParams params}) async { | |
|     try { | |
|       final String selectedLanguage = LocalStorage.readData( | |
|           key: MyConstants.selectLanguage) ?? 'fa'; | |
|       final Box<TotalDataEntity> levelBox = Hive.box(MyConstants.levelBox); | |
|       final TotalDataEntity findData = levelBox.values.singleWhere( | |
|         (e) => e.code == selectedLanguage, | |
|         orElse: () => TotalDataEntity(), | |
|       ); | |
|       return findData.levels ?? []; | |
|     } catch (_) { | |
|       throw MyException(errorMessage: 'Operation Failed'); | |
|     } | |
|   } | |
| } |