Untitled
unknown
plain_text
a year ago
3.4 kB
9
Indexable
import 'package:cafe/data/sync/sync_server_repository.dart'; import 'package:cafe/models/group_models/get_all_group_model.dart'; import 'package:cafe/models/group_models/get_selected_group.dart'; import 'package:cafe/models/survey_models/survey_list_model.dart'; class SyncRepository extends SyncServerRepository { static final SyncRepository _instance = SyncRepository._internal(); factory SyncRepository() => _instance; SyncRepository._internal(); Future<bool> syncDataFromServer() async { try { await getDependencyLess(); await getGroups(); await getSurveys(); return true; } catch (err, str) { print(err); print(str); return false; } } Future<void> getGroups() async { final List<GetAllGroup> groups = await groupRepository.getAllGroups(); for (int i = 0; i < groups.length; i++) { if (groups[i].id != null) { final GetSelectedGroup? group = await groupRepository.getGroupDetails(groups[i].id!); if (group != null) { await getGroupDetails(group); await getGroupLearnerDetails(group); } } } } Future<void> getGroupDetails(GetSelectedGroup group) async { if (group.currentSession?.id != null) { final groupId = group.id.toString(); final sessionId = group.currentSession!.id.toString(); await Future.wait([ groupRepository.getSessionStatus(groupId: groupId, sessionId: sessionId), groupRepository.getSelfCheckInStatus(groupId: groupId, sessionId: sessionId), trainerRepository.getTrainerQuestions(groupId: groupId, sessionId: sessionId), ]); } } Future<void> getGroupLearnerDetails(GetSelectedGroup group) async { await learnerRepository.getLearnerProfileQuestions( groupId: group.id.toString(), learnerId: '', ); if (group.currentSession?.id != null) { await learnerRepository.getLearnerQuestions( sessionId: group.currentSession!.id.toString(), learnerId: '', ); } for (int i = 0; i < (group.learners?.length ?? 0); i++) { if (group.learners?[i].id != null) { await learnerRepository.getLearnerProfileQuestions( groupId: group.id.toString(), learnerId: group.learners![i].id.toString(), ); if (group.currentSession?.id != null) { await learnerRepository.getLearnerQuestions( sessionId: group.currentSession!.id.toString(), learnerId: group.learners![i].id.toString(), ); } } } } Future<void> getSurveys() async { final List<SurveyList> surveys = await surveyRepository.getSurveyList(); for (SurveyList item in surveys) { if (item.id != null) { await surveyRepository.getSurveyDetails(surveyId: item.id.toString()); } } } Future<List> getDependencyLess() async { return await Future.wait([ commonRepository.getCourseList(), commonRepository.getBrandingDetails(), commonRepository.getIconMedia(), commonRepository.getLocalAudio(), commonRepository.getLanguageList(), commonRepository.getLocalization('en'), groupRepository.getLocationForGroup(), commonRepository.getPlayModeData(), ]); } }
Editor is loading...
Leave a Comment