2023-02-01 08:03:05 +00:00
|
|
|
import 'package:bloc/bloc.dart';
|
|
|
|
import 'package:equatable/equatable.dart';
|
|
|
|
import 'package:unit2/model/profile/basic_info.dart';
|
|
|
|
import 'package:unit2/model/profile/basic_information/primary-information.dart';
|
2023-02-15 03:40:12 +00:00
|
|
|
import 'package:unit2/model/profile/eligibility.dart';
|
2023-02-01 08:03:05 +00:00
|
|
|
import 'package:unit2/model/profile/profileInfomation.dart';
|
2023-02-20 07:48:24 +00:00
|
|
|
import 'package:unit2/model/utils/eligibility.dart';
|
2023-02-01 08:03:05 +00:00
|
|
|
import 'package:unit2/sevices/profile/profile_service.dart';
|
2023-02-15 08:48:34 +00:00
|
|
|
import 'package:unit2/utils/location_utilities.dart';
|
|
|
|
import 'package:unit2/utils/profile_utilities.dart';
|
2023-02-20 07:48:24 +00:00
|
|
|
import '../../model/location/country.dart';
|
|
|
|
import '../../model/location/region.dart';
|
|
|
|
import '../../model/location/provinces.dart';
|
|
|
|
import '../../model/location/city.dart';
|
|
|
|
import '../../model/location/barangay.dart';
|
2023-02-01 08:03:05 +00:00
|
|
|
part 'profile_event.dart';
|
|
|
|
part 'profile_state.dart';
|
|
|
|
|
|
|
|
class ProfileBloc extends Bloc<ProfileEvent, ProfileState> {
|
|
|
|
ProfileBloc() : super(ProfileInitial()) {
|
|
|
|
ProfileInformation? _profileInformation;
|
|
|
|
on<LoadProfile>((event, emit) async {
|
2023-02-03 03:34:09 +00:00
|
|
|
// try {
|
2023-02-15 05:23:06 +00:00
|
|
|
emit(ProfileLoading());
|
|
|
|
ProfileInformation? profileInformation =
|
|
|
|
await ProfileService.instance.getProfile(event.token, event.userID);
|
|
|
|
_profileInformation = profileInformation;
|
|
|
|
emit(ProfileLoaded(profileInformation: _profileInformation!));
|
2023-02-03 03:34:09 +00:00
|
|
|
// } catch (e) {
|
|
|
|
// emit(ProfileErrorState(mesage: e.toString()));
|
|
|
|
// }
|
2023-02-01 08:03:05 +00:00
|
|
|
});
|
2023-02-15 03:40:12 +00:00
|
|
|
|
2023-02-15 05:23:06 +00:00
|
|
|
on<LoadEligibility>((event, emit) {
|
|
|
|
emit(ProfileLoading());
|
|
|
|
emit(EligibilityLoaded(eligibilities: event.eligibilities));
|
|
|
|
});
|
2023-02-20 07:48:24 +00:00
|
|
|
|
|
|
|
on<EditEligibilityNotOverseas>((event, emit) async {
|
2023-02-15 08:48:34 +00:00
|
|
|
// try{
|
2023-02-20 07:48:24 +00:00
|
|
|
emit(ProfileLoading());
|
|
|
|
List<Region> regions = await LocationUtils.instance.getRegions();
|
|
|
|
List<Eligibility> eligibilities =
|
|
|
|
await ProfileUtilities.instance.getEligibilities();
|
|
|
|
bool? isOverseas = event.eligibityCert.overseas;
|
|
|
|
List<Province> provinces =
|
|
|
|
event.eligibityCert.examAddress?.cityMunicipality?.province?.region != null
|
|
|
|
? await LocationUtils.instance.getProvinces(
|
|
|
|
regionCode: event.eligibityCert.examAddress!.cityMunicipality!
|
|
|
|
.province!.region!.code!
|
|
|
|
.toString())
|
|
|
|
: [];
|
|
|
|
List<CityMunicipality> citymuns =
|
|
|
|
event.eligibityCert.examAddress?.cityMunicipality != null
|
|
|
|
? await LocationUtils.instance.getCities(
|
|
|
|
code: event.eligibityCert.examAddress!.cityMunicipality!
|
|
|
|
.province!.code!)
|
|
|
|
: [];
|
|
|
|
emit(EditNotOverseasEligibilityState(
|
|
|
|
currentEligibility: null,
|
|
|
|
currentRegion: null,
|
|
|
|
isOverseas: isOverseas!,
|
|
|
|
cityMuns: citymuns,
|
|
|
|
provinces: provinces,
|
|
|
|
eligibityCert: event.eligibityCert,
|
|
|
|
regions: regions,
|
|
|
|
eligibilities: eligibilities));
|
|
|
|
|
2023-02-15 08:48:34 +00:00
|
|
|
// }catch(e){
|
|
|
|
// emit(ProfileErrorState(mesage: e.toString()));
|
|
|
|
// }
|
2023-02-20 07:48:24 +00:00
|
|
|
});on<EditEligibilityOverseas>((event,emit)async{
|
|
|
|
emit(ProfileLoading());
|
|
|
|
List<Country> countries = await LocationUtils.instance.getCountries();
|
|
|
|
List<Eligibility> eligibilities =
|
|
|
|
await ProfileUtilities.instance.getEligibilities();
|
|
|
|
bool? isOverseas = event.eligibityCert.overseas;
|
|
|
|
emit(EditOverseasEligibilityState(
|
|
|
|
countries: countries,
|
|
|
|
currentCOuntry: null,
|
|
|
|
currentEligibility: null,
|
|
|
|
isOverseas: isOverseas!,
|
|
|
|
eligibityCert: event.eligibityCert,
|
|
|
|
eligibilities: eligibilities));
|
2023-02-15 03:40:12 +00:00
|
|
|
});
|
2023-02-01 08:03:05 +00:00
|
|
|
}
|
|
|
|
}
|