|  |  |  | @ -22,7 +22,16 @@ abstract class AuthenticationRepo { | 
		
	
		
			
				|  |  |  |  |   Future<Either<Failure, GenericApiModel<dynamic>>> sendActivationCodeRepo({required dynamic sendActivationCodeReq, String? languageID, bool isRegister = false, bool isFormFamilyFile = false}); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   Future<Either<Failure, GenericApiModel<dynamic>>> checkActivationCodeRepo( | 
		
	
		
			
				|  |  |  |  |       {required dynamic newRequest, required String? activationCode, required bool isRegister, bool isFormFamilyFile = false, int? patientShareRequestID, int? responseID}); | 
		
	
		
			
				|  |  |  |  |       {required dynamic newRequest, | 
		
	
		
			
				|  |  |  |  |       required String? activationCode, | 
		
	
		
			
				|  |  |  |  |       required bool isRegister, | 
		
	
		
			
				|  |  |  |  |       bool isFormFamilyFile = false, | 
		
	
		
			
				|  |  |  |  |       int? patientShareRequestID, | 
		
	
		
			
				|  |  |  |  |       int? responseID, | 
		
	
		
			
				|  |  |  |  |       bool isSwitchUser = false, | 
		
	
		
			
				|  |  |  |  |       int? patientID, | 
		
	
		
			
				|  |  |  |  |       int? loginType | 
		
	
		
			
				|  |  |  |  |       }); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   Future<Either<Failure, GenericApiModel<dynamic>>> checkIfUserAgreed({required dynamic commonAuthanticatedRequest}); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -187,13 +196,17 @@ class AuthenticationRepoImp implements AuthenticationRepo { | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   @override | 
		
	
		
			
				|  |  |  |  |   Future<Either<Failure, GenericApiModel<dynamic>>> checkActivationCodeRepo( | 
		
	
		
			
				|  |  |  |  |       {required dynamic newRequest, // could be CheckActivationCodeReq or CheckActivationCodeRegisterReq | 
		
	
		
			
				|  |  |  |  |   Future<Either<Failure, GenericApiModel<dynamic>>> checkActivationCodeRepo({ | 
		
	
		
			
				|  |  |  |  |     required dynamic newRequest, // could be CheckActivationCodeReq or CheckActivationCodeRegisterReq | 
		
	
		
			
				|  |  |  |  |     required String? activationCode, | 
		
	
		
			
				|  |  |  |  |     required bool isRegister, | 
		
	
		
			
				|  |  |  |  |     bool isFormFamilyFile = false, | 
		
	
		
			
				|  |  |  |  |     int? patientShareRequestID, | 
		
	
		
			
				|  |  |  |  |       int? responseID}) async { | 
		
	
		
			
				|  |  |  |  |     int? responseID, | 
		
	
		
			
				|  |  |  |  |     bool isSwitchUser = false, | 
		
	
		
			
				|  |  |  |  |     int? patientID, | 
		
	
		
			
				|  |  |  |  |     int? loginType | 
		
	
		
			
				|  |  |  |  |   }) async { | 
		
	
		
			
				|  |  |  |  |     if (isRegister) { | 
		
	
		
			
				|  |  |  |  |       newRequest["activationCode"] = activationCode ?? "0000"; | 
		
	
		
			
				|  |  |  |  |       newRequest["isSilentLogin"] = activationCode != null ? false : true; | 
		
	
	
		
			
				
					|  |  |  | @ -215,18 +228,21 @@ class AuthenticationRepoImp implements AuthenticationRepo { | 
		
	
		
			
				|  |  |  |  |       familyRequest["PatientID"] = appState.getAuthenticatedUser()!.patientId ?? 0; | 
		
	
		
			
				|  |  |  |  |       familyRequest["LogInTokenID"] = appState.getFamilyFileTokenID; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |       // // Remove unnecessary keys from familyRequest | 
		
	
		
			
				|  |  |  |  |       // familyRequest.remove("MobileNo"); | 
		
	
		
			
				|  |  |  |  |       // familyRequest.remove("DeviceToken"); | 
		
	
		
			
				|  |  |  |  |       // familyRequest.remove("ProjectOutSA"); | 
		
	
		
			
				|  |  |  |  |       // familyRequest.remove("LoginType"); | 
		
	
		
			
				|  |  |  |  |       // familyRequest.remove("ZipCode"); | 
		
	
		
			
				|  |  |  |  |       // familyRequest.remove("isRegister"); | 
		
	
		
			
				|  |  |  |  |       // familyRequest.remove("SearchType"); | 
		
	
		
			
				|  |  |  |  |       // familyRequest.remove("NationalID"); | 
		
	
		
			
				|  |  |  |  |       // familyRequest.remove("IsSilentLogin"); | 
		
	
		
			
				|  |  |  |  |       // familyRequest.remove("isDentalAllowedBackend"); | 
		
	
		
			
				|  |  |  |  |       // familyRequest.remove("ForRegisteration"); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     Map<String, dynamic> switchRequest = {}; | 
		
	
		
			
				|  |  |  |  |     if (isSwitchUser) { | 
		
	
		
			
				|  |  |  |  |       switchRequest = newRequest.toJson(); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |       switchRequest['PatientID'] = responseID; | 
		
	
		
			
				|  |  |  |  |       switchRequest['IsSilentLogin'] = true; | 
		
	
		
			
				|  |  |  |  |       switchRequest['LogInTokenID'] = null; | 
		
	
		
			
				|  |  |  |  |       switchRequest['SearchType'] = 2; | 
		
	
		
			
				|  |  |  |  |         if(loginType != 0) { | 
		
	
		
			
				|  |  |  |  |           switchRequest['SuperUser'] = patientID; | 
		
	
		
			
				|  |  |  |  |           switchRequest['DeviceToken'] =  null; | 
		
	
		
			
				|  |  |  |  |         }else{ | 
		
	
		
			
				|  |  |  |  |           switchRequest['LoginType'] = 2; | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
	
		
			
				
					|  |  |  | @ -247,6 +263,8 @@ class AuthenticationRepoImp implements AuthenticationRepo { | 
		
	
		
			
				|  |  |  |  |             ? familyRequest | 
		
	
		
			
				|  |  |  |  |             : isRegister | 
		
	
		
			
				|  |  |  |  |                 ? newRequest | 
		
	
		
			
				|  |  |  |  |                 : isSwitchUser | 
		
	
		
			
				|  |  |  |  |                     ? switchRequest | 
		
	
		
			
				|  |  |  |  |                     : newRequest.toJson(), | 
		
	
		
			
				|  |  |  |  |         onFailure: (error, statusCode, {messageStatus, failureType}) { | 
		
	
		
			
				|  |  |  |  |           failure = failureType; | 
		
	
	
		
			
				
					|  |  |  | 
 |