| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -28,6 +28,7 @@ class MarathonApiClient {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    return await ApiClient().postJsonForObject(
 | 
					 | 
					 | 
					 | 
					    return await ApiClient().postJsonForObject(
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      (json) {
 | 
					 | 
					 | 
					 | 
					      (json) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        MarathonGenericModel marathonModel = MarathonGenericModel.fromJson(json);
 | 
					 | 
					 | 
					 | 
					        MarathonGenericModel marathonModel = MarathonGenericModel.fromJson(json);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        AppState().setMarathonToken = marathonModel.data["token"] ?? "";
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        return marathonModel.data["token"] ?? "";
 | 
					 | 
					 | 
					 | 
					        return marathonModel.data["token"] ?? "";
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      },
 | 
					 | 
					 | 
					 | 
					      },
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      ApiConsts.marathonParticipantLoginUrl,
 | 
					 | 
					 | 
					 | 
					      ApiConsts.marathonParticipantLoginUrl,
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -43,14 +44,17 @@ class MarathonApiClient {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      },
 | 
					 | 
					 | 
					 | 
					      },
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      ApiConsts.marathonProjectGetUrl,
 | 
					 | 
					 | 
					 | 
					      ApiConsts.marathonProjectGetUrl,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      <String, dynamic>{},
 | 
					 | 
					 | 
					 | 
					      <String, dynamic>{},
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      token: AppState().getMarathonToken ?? await getMarathonToken(),
 | 
					 | 
					 | 
					 | 
					      token: AppState().getMarathonToken == null || AppState().getMarathonToken == "" ? await getMarathonToken() : AppState().getMarathonToken,
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    );
 | 
					 | 
					 | 
					 | 
					    );
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  }
 | 
					 | 
					 | 
					 | 
					  }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Future<MarathonDetailModel> getMarathonDetails() async {
 | 
					 | 
					 | 
					 | 
					  Future<MarathonDetailModel> getMarathonDetails() async {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    String payrollString = AppState().postParamsObject?.payrollCodeStr.toString() ?? "CS";
 | 
					 | 
					 | 
					 | 
					    String payrollString = AppState().postParamsObject?.payrollCodeStr.toString() ?? "CS";
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    Response response = await ApiClient().getJsonForResponse(ApiConsts.marathonUpcomingUrl + payrollString, token: AppState().getMarathonToken ?? await getMarathonToken());
 | 
					 | 
					 | 
					 | 
					    Response response = await ApiClient().getJsonForResponse(
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      ApiConsts.marathonUpcomingUrl + payrollString,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      token: AppState().getMarathonToken == null || AppState().getMarathonToken == "" ? await getMarathonToken() : AppState().getMarathonToken,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    );
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    var json = jsonDecode(response.body);
 | 
					 | 
					 | 
					 | 
					    var json = jsonDecode(response.body);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    logger.i("json in getMarathonDetails: $json");
 | 
					 | 
					 | 
					 | 
					    logger.i("json in getMarathonDetails: $json");
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -83,7 +87,7 @@ class MarathonApiClient {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      },
 | 
					 | 
					 | 
					 | 
					      },
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      ApiConsts.marathonJoinParticipantUrl,
 | 
					 | 
					 | 
					 | 
					      ApiConsts.marathonJoinParticipantUrl,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      jsonObject,
 | 
					 | 
					 | 
					 | 
					      jsonObject,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      token: AppState().getMarathonToken ?? await getMarathonToken(),
 | 
					 | 
					 | 
					 | 
					      token: AppState().getMarathonToken == null || AppState().getMarathonToken == "" ? await getMarathonToken() : AppState().getMarathonToken,
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    );
 | 
					 | 
					 | 
					 | 
					    );
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  }
 | 
					 | 
					 | 
					 | 
					  }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -114,7 +118,7 @@ class MarathonApiClient {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      },
 | 
					 | 
					 | 
					 | 
					      },
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      ApiConsts.marathonNextQuestionUrl,
 | 
					 | 
					 | 
					 | 
					      ApiConsts.marathonNextQuestionUrl,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      jsonObject,
 | 
					 | 
					 | 
					 | 
					      jsonObject,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      token: AppState().getMarathonToken ?? await getMarathonToken(),
 | 
					 | 
					 | 
					 | 
					      token: AppState().getMarathonToken == null || AppState().getMarathonToken == "" ? await getMarathonToken() : AppState().getMarathonToken,
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    );
 | 
					 | 
					 | 
					 | 
					    );
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  }
 | 
					 | 
					 | 
					 | 
					  }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -124,17 +128,25 @@ class MarathonApiClient {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    return await ApiClient().postJsonForObject(
 | 
					 | 
					 | 
					 | 
					    return await ApiClient().postJsonForObject(
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      (json) {
 | 
					 | 
					 | 
					 | 
					      (json) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        MarathonGenericModel marathonModel = MarathonGenericModel.fromJson(json);
 | 
					 | 
					 | 
					 | 
					        MarathonGenericModel marathonModel = MarathonGenericModel.fromJson(json);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        return marathonModel.isSuccessful ?? false;
 | 
					 | 
					 | 
					 | 
					        if (marathonModel.data != null) {
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					          bool isOptionCorrect = marathonModel.data["isCorrect"];
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					          return isOptionCorrect;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        return false;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      },
 | 
					 | 
					 | 
					 | 
					      },
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      ApiConsts.marathonSubmitAnswerUrl,
 | 
					 | 
					 | 
					 | 
					      ApiConsts.marathonSubmitAnswerUrl,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      jsonObject,
 | 
					 | 
					 | 
					 | 
					      jsonObject,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      token: AppState().getMarathonToken ?? await getMarathonToken(),
 | 
					 | 
					 | 
					 | 
					      token: AppState().getMarathonToken == null || AppState().getMarathonToken == "" ? await getMarathonToken() : AppState().getMarathonToken,
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    );
 | 
					 | 
					 | 
					 | 
					    );
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  }
 | 
					 | 
					 | 
					 | 
					  }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Future<int?> getQualifiers({required String marathonId}) async {
 | 
					 | 
					 | 
					 | 
					  Future<int?> getQualifiers({required String marathonId}) async {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    Map<String, String> params = <String, String>{"marathonId": marathonId};
 | 
					 | 
					 | 
					 | 
					    Map<String, String> params = <String, String>{"marathonId": marathonId};
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    Response response = await ApiClient().getJsonForResponse(ApiConsts.marathonQualifiersUrl, queryParameters: params, token: AppState().getMarathonToken ?? await getMarathonToken());
 | 
					 | 
					 | 
					 | 
					    Response response = await ApiClient().getJsonForResponse(
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      ApiConsts.marathonQualifiersUrl,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      queryParameters: params,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      token: AppState().getMarathonToken == null || AppState().getMarathonToken == "" ? await getMarathonToken() : AppState().getMarathonToken,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    );
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    var json = jsonDecode(response.body);
 | 
					 | 
					 | 
					 | 
					    var json = jsonDecode(response.body);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    logger.i("json in getQualifiers: $json");
 | 
					 | 
					 | 
					 | 
					    logger.i("json in getQualifiers: $json");
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -149,7 +161,11 @@ class MarathonApiClient {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Future<List<WinnerModel>?> getSelectedWinner({required String marathonId}) async {
 | 
					 | 
					 | 
					 | 
					  Future<List<WinnerModel>?> getSelectedWinner({required String marathonId}) async {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    Map<String, String> params = <String, String>{"marathonId": marathonId};
 | 
					 | 
					 | 
					 | 
					    Map<String, String> params = <String, String>{"marathonId": marathonId};
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    Response response = await ApiClient().getJsonForResponse(ApiConsts.marathonSelectedWinner, queryParameters: params, token: AppState().getMarathonToken ?? await getMarathonToken());
 | 
					 | 
					 | 
					 | 
					    Response response = await ApiClient().getJsonForResponse(
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      ApiConsts.marathonSelectedWinner,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      queryParameters: params,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      token: AppState().getMarathonToken == null || AppState().getMarathonToken == "" ? await getMarathonToken() : AppState().getMarathonToken,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    );
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    var json = jsonDecode(response.body);
 | 
					 | 
					 | 
					 | 
					    var json = jsonDecode(response.body);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    logger.i("json in getSelectedWinner: $json");
 | 
					 | 
					 | 
					 | 
					    logger.i("json in getSelectedWinner: $json");
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |