@ -6,6 +6,10 @@ import 'package:hijri_gregorian_calendar/hijri_gregorian_calendar.dart';
 
		
	
		
			
				import  ' package:hmg_patient_app_new/core/app_state.dart ' ;  
		
	
		
			
				import  ' package:hmg_patient_app_new/core/cache_consts.dart ' ;  
		
	
		
			
				import  ' package:hmg_patient_app_new/core/common_models/nationality_country_model.dart ' ;  
		
	
		
			
				import  ' package:hmg_patient_app_new/core/common_models/privilege/HMCProjectListModel.dart ' ;  
		
	
		
			
				import  ' package:hmg_patient_app_new/core/common_models/privilege/PrivilegeModel.dart ' ;  
		
	
		
			
				import  ' package:hmg_patient_app_new/core/common_models/privilege/ProjectDetailListModel.dart ' ;  
		
	
		
			
				import  ' package:hmg_patient_app_new/core/common_models/privilege/VidaPlusProjectListModel.dart ' ;  
		
	
		
			
				import  ' package:hmg_patient_app_new/core/enums.dart ' ;  
		
	
		
			
				import  ' package:hmg_patient_app_new/core/utils/loading_utils.dart ' ;  
		
	
		
			
				import  ' package:hmg_patient_app_new/core/utils/request_utils.dart ' ;  
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
			
			@ -53,7 +57,11 @@ class AuthenticationViewModel extends ChangeNotifier {
 
		
	
		
			
				        _authenticationRepo  =  authenticationRepo , 
 
		
	
		
			
				        _localAuthService  =  localAuthService ; 
 
		
	
		
			
				
 
		
	
		
			
				  final  TextEditingController  nationalIdController  =  TextEditingController ( ) ,  phoneNumberController  =  TextEditingController ( ) ,  dobController  =  TextEditingController ( ) ,  nameController  =  TextEditingController ( ) ,  emailController  =  TextEditingController ( ) ; 
 
		
	
		
			
				  final  TextEditingController  nationalIdController  =  TextEditingController ( ) , 
 
		
	
		
			
				      phoneNumberController  =  TextEditingController ( ) , 
 
		
	
		
			
				      dobController  =  TextEditingController ( ) , 
 
		
	
		
			
				      nameController  =  TextEditingController ( ) , 
 
		
	
		
			
				      emailController  =  TextEditingController ( ) ; 
 
		
	
		
			
				  CountryEnum  selectedCountrySignup  =  CountryEnum . saudiArabia ; 
 
		
	
		
			
				  MaritalStatusTypeEnum ?  maritalStatus ; 
 
		
	
		
			
				  GenderTypeEnum ?  genderType ; 
 
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
			
			@ -366,18 +374,18 @@ class AuthenticationViewModel extends ChangeNotifier {
 
		
	
		
			
				    required  Function ( String ?  message )  onWrongActivationCode , 
 
		
	
		
			
				  } )  async  { 
 
		
	
		
			
				    final  request  =  RequestUtils . getCommonRequestWelcome ( 
 
		
	
		
			
				      phoneNumber:  phoneNumberController . text , 
 
		
	
		
			
				      otpTypeEnum:  otpTypeEnum , 
 
		
	
		
			
				      deviceToken:  _appState . deviceToken , 
 
		
	
		
			
				      patientOutSA:  true , 
 
		
	
		
			
				      loginTokenID:  _appState . appAuthToken , 
 
		
	
		
			
				      registeredData:  null , 
 
		
	
		
			
				      nationIdText:  nationalIdController . text , 
 
		
	
		
			
				      countryCode:  selectedCountrySignup . countryCode , 
 
		
	
		
			
				      loginType:    loginTypeEnum . toInt 
 
		
	
		
			
				    ) . toJson ( ) ; 
 
		
	
		
			
				
 
		
	
		
			
				    bool  isForRegister  =    ( _appState . getUserRegistrationPayload . healthId  ! =  null  | |  _appState . getUserRegistrationPayload . patientOutSa  = =  true ) ; 
 
		
	
		
			
				             phoneNumber:  phoneNumberController . text ,  
		
	
		
			
				             otpTypeEnum:  otpTypeEnum ,  
		
	
		
			
				             deviceToken:  _appState . deviceToken ,  
		
	
		
			
				             patientOutSA:  true ,  
		
	
		
			
				             loginTokenID:  _appState . appAuthToken ,  
		
	
		
			
				             registeredData:  null ,  
		
	
		
			
				             nationIdText:  nationalIdController . text ,  
		
	
		
			
				             countryCode:  selectedCountrySignup . countryCode ,  
		
	
		
			
				             loginType:  loginTypeEnum . toInt )  
		
	
		
			
				         . toJson ( ) ; 
 
		
	
		
			
				
 
		
	
		
			
				    bool  isForRegister  =  ( _appState . getUserRegistrationPayload . healthId  ! =  null  | |  _appState . getUserRegistrationPayload . patientOutSa  = =  true ) ; 
 
		
	
		
			
				    if  ( isForRegister )  { 
 
		
	
		
			
				      if  ( _appState . getUserRegistrationPayload . patientOutSa  = =  true )  request [ ' DOB ' ]  =  _appState . getUserRegistrationPayload . dob ; 
 
		
	
		
			
				      request [ ' HealthId ' ]  =  _appState . getUserRegistrationPayload . healthId ; 
 
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
			
			@ -514,12 +522,12 @@ class AuthenticationViewModel extends ChangeNotifier {
 
		
	
		
			
				    _localAuthService . authenticate ( ) . then ( ( value )  async  { 
 
		
	
		
			
				      if  ( value )  { 
 
		
	
		
			
				        / /  we  have  to  handle  this  if  verification  true ; 
 
		
	
		
			
				        if ( ! _appState . isAuthenticated )  { 
 
		
	
		
			
				        if   ( ! _appState . isAuthenticated )  { 
 
		
	
		
			
				          loginTypeEnum  =  ( _appState . deviceTypeID  = =  1  ?  LoginTypeEnum . face  :  LoginTypeEnum . fingerprint ) ; 
 
		
	
		
			
				          print ( loginTypeEnum ) ; 
 
		
	
		
			
				            checkActivationCode ( otpTypeEnum: OTPTypeEnum . faceIDFingerprint   ,  activationCode:  null ,  onWrongActivationCode:  ( String ?  message )  { } ) ; 
 
		
	
		
			
				          checkActivationCode ( otpTypeEnum:   OTPTypeEnum . faceIDFingerprint ,  activationCode:  null ,  onWrongActivationCode:  ( String ?  message )  { } ) ; 
 
		
	
		
			
				          insertPatientIMEIData ( ( _appState . deviceTypeID  = =  1  ?  LoginTypeEnum . face . toInt  :  LoginTypeEnum . fingerprint . toInt ) ) ; 
 
		
	
		
			
				        } else  { 
 
		
	
		
			
				        }   else  { 
 
		
	
		
			
				          / /  authenticated  =  true ; 
 
		
	
		
			
				          insertPatientIMEIData ( ( _appState . deviceTypeID  = =  1  ?  LoginTypeEnum . face . toInt  :  LoginTypeEnum . fingerprint . toInt ) ) ; 
 
		
	
		
			
				        } 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -535,20 +543,19 @@ class AuthenticationViewModel extends ChangeNotifier {
 
		
	
		
			
				
 
		
	
		
			
				  checkLastLoginStatus ( Function ( )  onSuccess )  async  { 
 
		
	
		
			
				    Future . delayed ( Duration ( seconds:  1 ) ,  ( )  { 
 
		
	
		
			
				    if  ( _appState . getSelectDeviceByImeiRespModelElement  ! =  null  & & 
 
		
	
		
			
				        ( _appState . getSelectDeviceByImeiRespModelElement ! . logInType  = =  1  | |  _appState . getSelectDeviceByImeiRespModelElement ! . logInType  = =  4 ) )  { 
 
		
	
		
			
				      phoneNumberController . text  =  ( _appState . getAuthenticatedUser ( ) ! . mobileNumber ! . startsWith ( " 0 " ) 
 
		
	
		
			
				            ?  _appState . getAuthenticatedUser ( ) ! . mobileNumber ! . replaceFirst ( " 0 " ,  " " ) 
 
		
	
		
			
				            :  _appState . getAuthenticatedUser ( ) ! . mobileNumber ) ! ; 
 
		
	
		
			
				      if  ( _appState . getSelectDeviceByImeiRespModelElement  ! =  null  & & 
 
		
	
		
			
				          ( _appState . getSelectDeviceByImeiRespModelElement ! . logInType  = =  1  | |  _appState . getSelectDeviceByImeiRespModelElement ! . logInType  = =  4 ) )  { 
 
		
	
		
			
				        phoneNumberController . text  = 
 
		
	
		
			
				            ( _appState . getAuthenticatedUser ( ) ! . mobileNumber ! . startsWith ( " 0 " )  ?  _appState . getAuthenticatedUser ( ) ! . mobileNumber ! . replaceFirst ( " 0 " ,  " " )  :  _appState . getAuthenticatedUser ( ) ! . mobileNumber ) ! ; 
 
		
	
		
			
				        nationalIdController . text  =  _appState . getAuthenticatedUser ( ) ! . nationalityId ! ; 
 
		
	
		
			
				        onSuccess ( ) ; 
 
		
	
		
			
				         }     else  if ( ( loginTypeEnum  = =  LoginTypeEnum . sms  | |  loginTypeEnum  = =  LoginTypeEnum . whatsapp  & &  _appState . getSelectDeviceByImeiRespModelElement  = =  null )  & &  _appState . getAuthenticatedUser ( )  ! =  null ) {  
 
		
	
		
			
				          phoneNumberController. text  =  (  _appState. getAuthenticatedUser ( ) ! . mobileNumber ! . startsWith ( " 0 " ) 
 
		
	
		
			
				          ?  _appState . getAuthenticatedUser ( ) ! . mobileNumber ! . replaceFirst ( " 0 " ,  " " )  
 
		
	
		
			
				          :  _appState . getAuthenticatedUser ( ) ! . mobileNumber ) ! ; 
 
		
	
		
			
				      nationalIdController . text  =  _appState . getAuthenticatedUser ( ) ! . nationalityId ! ; 
 
		
	
		
			
				      onSuccess ( ) ; 
 
		
	
		
			
				    } 
 
		
	
		
			
				      }  else  if   ( ( loginTypeEnum  = =  LoginTypeEnum . sms  | |  loginTypeEnum  = =  LoginTypeEnum . whatsapp  & &  _appState . getSelectDeviceByImeiRespModelElement  = =  null )  & & 
 
		
	
		
			
				          . getAuthenticatedUser ( )  ! =  null )  {  
 
		
	
		
			
				        phoneNumberController . text  = 
 
		
	
		
			
				            ( _appState . getAuthenticatedUser ( ) ! . mobileNumber ! . startsWith ( " 0 " )  ?  _appState . getAuthenticatedUser ( ) ! . mobileNumber ! . replaceFirst ( " 0 " ,  " " )   :  _appState . getAuthenticatedUser ( ) ! . mobileNumber ) ! ; 
 
		
	
		
			
				         nationalIdController . text  =  _appState . getAuthenticatedUser ( ) ! . nationalityId ! ; 
 
		
	
		
			
				         onSuccess ( ) ; 
 
		
	
		
			
				       } 
 
		
	
		
			
				    } ) ; 
 
		
	
		
			
				  } 
 
		
	
		
			
				
 
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
			
			@ -583,9 +590,7 @@ class AuthenticationViewModel extends ChangeNotifier {
 
		
	
		
			
				    } ) ; 
 
		
	
		
			
				  } 
 
		
	
		
			
				
 
		
	
		
			
				
 
		
	
		
			
				  Future < void >  onRegistrationComplete ( )  async { 
 
		
	
		
			
				
 
		
	
		
			
				  Future < void >  onRegistrationComplete ( )  async  { 
 
		
	
		
			
				    / /  if  ( emailAddress . text . isEmpty )  { 
 
		
	
		
			
				    / /    Utils . showErrorToast ( TranslationBase . of ( context ) . enterEmailAddress ) ; 
 
		
	
		
			
				    / /    return ; 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -596,7 +601,6 @@ class AuthenticationViewModel extends ChangeNotifier {
 
		
	
		
			
				    / / authVM ! . clearDefaultInputValues ( ) ; 
 
		
	
		
			
				  } 
 
		
	
		
			
				
 
		
	
		
			
				
 
		
	
		
			
				  Future < void >  checkUserStatusForRegistration ( { required  dynamic  response ,  required  dynamic  request } )  async  { 
 
		
	
		
			
				    if  ( response  is  Map )  { 
 
		
	
		
			
				      _appState . setAppAuthToken  =  response [ " LogInTokenID " ] ; 
 
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
			
			@ -703,22 +707,52 @@ class AuthenticationViewModel extends ChangeNotifier {
 
		
	
		
			
				    _appState . setUserRegistrationPayload  =  RegistrationDataModelPayload . fromJson ( request ) ; 
 
		
	
		
			
				  } 
 
		
	
		
			
				
 
		
	
		
			
				    Future < void >   insertPatientIMEIData ( int  loginType )  async { 
 
		
	
		
			
				
 
		
	
		
			
				      final  resultEither  =  await  _authenticationRepo . insertPatientIMEIData ( patientIMEIDataRequest:  PatientInsertDeviceImei ( imei:  _appState . deviceToken ,  deviceTypeId:  _appState . getDeviceTypeID ( ) ,  patientId:  _appState . getAuthenticatedUser ( ) ! . patientId ! ,  patientIdentificationNo: _appState . getAuthenticatedUser ( ) ! . nationalityId ! ,  firstName:   _appState . getAuthenticatedUser ( ) ! . firstName ! ,   lastName:   _appState . getAuthenticatedUser ( ) ! . lastName ! ,  patientTypeId:  _appState . getAuthenticatedUser ( ) ! . patientType ,  mobileNo: _appState . getAuthenticatedUser ( ) ! . mobileNumber ! ,  logInTypeId:  loginType ,  patientOutSa: _appState . getAuthenticatedUser ( ) ! . outSa ! ,  outSa:  _appState . getAuthenticatedUser ( ) ! . outSa  = =  1  ?  true  : false ,  biometricEnabled:  loginType  = =  1  | |  loginType  = = 2  ?  false  : true ,  firstNameN: _appState . getAuthenticatedUser ( ) ! . firstNameN  ,  lastNameN: _appState . getAuthenticatedUser ( ) ! . lastNameN  ) . toJson ( ) ) ; 
 
		
	
		
			
				      resultEither . fold ( ( failure )  async  = >  await  _errorHandlerService . handleError ( failure:  failure ) ,  ( apiResponse )  async  { 
 
		
	
		
			
				        if  ( apiResponse . messageStatus  = =  1 )  { 
 
		
	
		
			
				          log ( " Insert IMEI Success " ) ; 
 
		
	
		
			
				          insertPatientDeviceData (  loginType ) ; 
 
		
	
		
			
				        }  else  { 
 
		
	
		
			
				          log ( " Insert IMEI Failed " ) ; 
 
		
	
		
			
				        } 
 
		
	
		
			
				      } ) ; 
 
		
	
		
			
				
 
		
	
		
			
				    } 
 
		
	
		
			
				  Future < void >   insertPatientDeviceData ( int  loginType )  async { 
 
		
	
		
			
				  Future < void >  insertPatientIMEIData ( int  loginType )  async  { 
 
		
	
		
			
				    final  resultEither  =  await  _authenticationRepo . insertPatientIMEIData ( 
 
		
	
		
			
				        patientIMEIDataRequest:  PatientInsertDeviceImei ( 
 
		
	
		
			
				      imei:  _appState . deviceToken , 
 
		
	
		
			
				      deviceTypeId:  _appState . getDeviceTypeID ( ) , 
 
		
	
		
			
				      patientId:  _appState . getAuthenticatedUser ( ) ! . patientId ! , 
 
		
	
		
			
				      patientIdentificationNo:  _appState . getAuthenticatedUser ( ) ! . patientIdentificationNo ! , 
 
		
	
		
			
				      firstName:  _appState . getAuthenticatedUser ( ) ! . firstName ! , 
 
		
	
		
			
				      lastName:  _appState . getAuthenticatedUser ( ) ! . lastName ! , 
 
		
	
		
			
				      patientTypeId:  _appState . getAuthenticatedUser ( ) ! . patientType , 
 
		
	
		
			
				      mobileNo:  _appState . getAuthenticatedUser ( ) ! . mobileNumber ! , 
 
		
	
		
			
				      logInTypeId:  loginType , 
 
		
	
		
			
				      patientOutSa:  _appState . getAuthenticatedUser ( ) ! . outSa ! , 
 
		
	
		
			
				      outSa:  _appState . getAuthenticatedUser ( ) ! . outSa  = =  1  ?  true  :  false , 
 
		
	
		
			
				      biometricEnabled:  loginType  = =  1  | |  loginType  = =  2  ?  false  :  true , 
 
		
	
		
			
				      firstNameN:  _appState . getAuthenticatedUser ( ) ! . firstNameN , 
 
		
	
		
			
				      lastNameN:  _appState . getAuthenticatedUser ( ) ! . lastNameN , 
 
		
	
		
			
				    ) . toJson ( ) ) ; 
 
		
	
		
			
				    resultEither . fold ( ( failure )  async  = >  await  _errorHandlerService . handleError ( failure:  failure ) ,  ( apiResponse )  async  { 
 
		
	
		
			
				      if  ( apiResponse . messageStatus  = =  1 )  { 
 
		
	
		
			
				        log ( " Insert IMEI Success " ) ; 
 
		
	
		
			
				        insertPatientDeviceData ( loginType ) ; 
 
		
	
		
			
				      }  else  { 
 
		
	
		
			
				        log ( " Insert IMEI Failed " ) ; 
 
		
	
		
			
				      } 
 
		
	
		
			
				    } ) ; 
 
		
	
		
			
				  } 
 
		
	
		
			
				
 
		
	
		
			
				    final  resultEither  =  await  _authenticationRepo . insertPatientDeviceData ( patientDeviceDataRequest:  InsertPatientMobileDeviceInfo ( deviceToken:  _appState . deviceToken ,  deviceTypeId:  _appState . getDeviceTypeID ( ) ,  patientId:  _appState . getAuthenticatedUser ( ) ! . patientId ! ,   patientTypeId:  _appState . getAuthenticatedUser ( ) ! . patientType ,   patientOutSa: _appState . getAuthenticatedUser ( ) ! . outSa ! ,  loginType:   loginType ,  languageId:  _appState . getLanguageID ( ) ,  latitude:  _appState . userLat ,  longitude: _appState . userLong ,  voipToken:  " " ,  deviceType:  _appState . deviceTypeID ,  patientMobileNumber: _appState . getAuthenticatedUser ( ) ! . mobileNumber ,  nationalId:   _appState . getAuthenticatedUser ( ) ! . patientIdentificationNo ,  gender:   _appState . getAuthenticatedUser ( ) ! . gender  ) . toJson ( ) ) ; 
 
		
	
		
			
				  Future < void >  insertPatientDeviceData ( int  loginType )  async  { 
 
		
	
		
			
				    final  resultEither  =  await  _authenticationRepo . insertPatientDeviceData ( 
 
		
	
		
			
				        patientDeviceDataRequest:  InsertPatientMobileDeviceInfo ( 
 
		
	
		
			
				                deviceToken:  _appState . deviceToken , 
 
		
	
		
			
				                deviceTypeId:  _appState . getDeviceTypeID ( ) , 
 
		
	
		
			
				                patientId:  _appState . getAuthenticatedUser ( ) ! . patientId ! , 
 
		
	
		
			
				                patientTypeId:  _appState . getAuthenticatedUser ( ) ! . patientType , 
 
		
	
		
			
				                patientOutSa:  _appState . getAuthenticatedUser ( ) ! . outSa ! , 
 
		
	
		
			
				                loginType:  loginType , 
 
		
	
		
			
				                languageId:  _appState . getLanguageID ( ) , 
 
		
	
		
			
				                latitude:  _appState . userLat , 
 
		
	
		
			
				                longitude:  _appState . userLong , 
 
		
	
		
			
				                voipToken:  " " , 
 
		
	
		
			
				                deviceType:  _appState . deviceTypeID , 
 
		
	
		
			
				                patientMobileNumber:  _appState . getAuthenticatedUser ( ) ! . mobileNumber , 
 
		
	
		
			
				                nationalId:  _appState . getAuthenticatedUser ( ) ! . patientIdentificationNo , 
 
		
	
		
			
				                gender:  _appState . getAuthenticatedUser ( ) ! . gender ) 
 
		
	
		
			
				            . toJson ( ) ) ; 
 
		
	
		
			
				    resultEither . fold ( ( failure )  async  = >  await  _errorHandlerService . handleError ( failure:  failure ) ,  ( apiResponse )  async  { 
 
		
	
		
			
				      if  ( apiResponse . messageStatus  = =  1 )  { 
 
		
	
		
			
				        log ( " Insert Device Data Success " ) ; 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -726,7 +760,6 @@ class AuthenticationViewModel extends ChangeNotifier {
 
		
	
		
			
				        log ( " Insert IMEI Failed " ) ; 
 
		
	
		
			
				      } 
 
		
	
		
			
				    } ) ; 
 
		
	
		
			
				
 
		
	
		
			
				  } 
 
		
	
		
			
				
 
		
	
		
			
				  @ override 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -736,4 +769,41 @@ class AuthenticationViewModel extends ChangeNotifier {
 
		
	
		
			
				    myFocusNode . dispose ( ) ; 
 
		
	
		
			
				    super . dispose ( ) ; 
 
		
	
		
			
				  } 
 
		
	
		
			
				
 
		
	
		
			
				  Future < void >  getServicePrivilege ( )  async  { 
 
		
	
		
			
				    final  resultEither  =  await  _authenticationRepo . getServicePrivilege ( ) ; 
 
		
	
		
			
				    List < PrivilegeModel >  privilegeModelList  =  [ ] ; 
 
		
	
		
			
				    List < VidaPlusProjectListModel >  vidaPlusProjectListModel  =  [ ] ; 
 
		
	
		
			
				    List < HMCProjectListModel >  hMCProjectListModel  =  [ ] ; 
 
		
	
		
			
				    List < ProjectDetailListModel >  projectDetailListModel  =  [ ] ; 
 
		
	
		
			
				
 
		
	
		
			
				    resultEither . fold ( 
 
		
	
		
			
				      ( failure )  async  = >  await  _errorHandlerService . handleError ( failure:  failure ) , 
 
		
	
		
			
				      ( apiResponse )  async  { 
 
		
	
		
			
				        if  ( apiResponse . messageStatus  = =  2 )  { 
 
		
	
		
			
				          await  _dialogService . showErrorBottomSheet ( message:  apiResponse . errorMessage  ? ?  " ErrorEmpty " ) ; 
 
		
	
		
			
				        }  else  { 
 
		
	
		
			
				          apiResponse . data [ " ServicePrivilegeList " ] . forEach ( ( v )  { 
 
		
	
		
			
				            privilegeModelList . add ( PrivilegeModel . fromJson ( v ) ) ; 
 
		
	
		
			
				          } ) ; 
 
		
	
		
			
				          _appState . setPrivilegeModelList ( privilegeModelList ) ; 
 
		
	
		
			
				
 
		
	
		
			
				          apiResponse . data [ " ProjectListVidaPlus " ] . forEach ( ( v )  { 
 
		
	
		
			
				            vidaPlusProjectListModel . add ( VidaPlusProjectListModel . fromJson ( v ) ) ; 
 
		
	
		
			
				          } ) ; 
 
		
	
		
			
				          _appState . setVidaPlusProjectList ( vidaPlusProjectListModel ) ; 
 
		
	
		
			
				
 
		
	
		
			
				          apiResponse . data [ " HMCProjectList " ] . forEach ( ( v )  { 
 
		
	
		
			
				            hMCProjectListModel . add ( HMCProjectListModel . fromJson ( v ) ) ; 
 
		
	
		
			
				          } ) ; 
 
		
	
		
			
				          _appState . setHMCProjectList ( hMCProjectListModel ) ; 
 
		
	
		
			
				
 
		
	
		
			
				          apiResponse . data [ " ProjectDetailList " ] . forEach ( ( v )  { 
 
		
	
		
			
				            projectDetailListModel . add ( ProjectDetailListModel . fromJson ( v ) ) ; 
 
		
	
		
			
				          } ) ; 
 
		
	
		
			
				          _appState . setProjectsDetailList ( projectDetailListModel ) ; 
 
		
	
		
			
				        } 
 
		
	
		
			
				      } , 
 
		
	
		
			
				    ) ; 
 
		
	
		
			
				  } 
 
		
	
		
			
				}