private string WriteOutcome(IOutcome outcome, CultureInfo culture) { if (outcome == null) { return("no outcome"); } var outcomeName = _taskProcessor.GetTaskResult(outcome.GetNameAsync(culture)); var playerOutcome = outcome as IPlayerOutcomeOdds; if (playerOutcome != null) { var competitor = _taskProcessor.GetTaskResult(playerOutcome.GetCompetitorAsync()); return($"\tOutcomeForPlayer:{outcome.Id}, Name[{culture.TwoLetterISOLanguageName}]:'{outcomeName}', Active:{playerOutcome.Active?.ToString().ToLower()}, Odds:{playerOutcome.GetOdds(OddsDisplayType.Decimal)}, OddsUs:{playerOutcome.GetOdds(OddsDisplayType.American)}, Probabilities:{playerOutcome.Probabilities}, HomeOrAwayTeam:{playerOutcome.HomeOrAwayTeam}, Competitor:{competitor?.Id}, OutcomeDefinition:[{WriteOutcomeDefinition(((IOutcomeV1)playerOutcome).OutcomeDefinition, culture)}]"); } var outcomeOdds = outcome as IOutcomeOddsV1; if (outcomeOdds != null) { return($"\tOutcomeWithOdds:{outcome.Id}, Name[{culture.TwoLetterISOLanguageName}]:'{outcomeName}', Active:{outcomeOdds.Active?.ToString().ToLower()}, Odds:{outcomeOdds.GetOdds(OddsDisplayType.Decimal)}, OddsUs:{outcomeOdds.GetOdds(OddsDisplayType.American)}, Probabilities:{outcomeOdds.Probabilities}, OutcomeDefinition:[{WriteOutcomeDefinition(((IOutcomeV1)outcomeOdds).OutcomeDefinition, culture)}]"); } var outcomeProbabilities = outcome as IOutcomeProbabilities; if (outcomeProbabilities != null) { return($"\tOutcomeWithProbabilities:{outcome.Id}, Name[{culture.TwoLetterISOLanguageName}]:'{outcomeName}', Active:{outcomeProbabilities.Active?.ToString().ToLower()}, Probabilities:{outcomeProbabilities.Probabilities}, OutcomeDefinition:[{WriteOutcomeDefinition(((IOutcomeV1)outcomeProbabilities).OutcomeDefinition, culture)}]"); } var outcomeSettlement = outcome as IOutcomeSettlement; if (outcomeSettlement != null) { return($"\tOutcomeForSettlement:{outcome.Id}, Name[{culture.TwoLetterISOLanguageName}]:'{outcomeName}', Result:{outcomeSettlement.Result.ToString().ToLower()}, VoidFactor: {outcomeSettlement.VoidFactor}, DeadHeatFactor:{outcomeSettlement.DeadHeatFactor}, OutcomeDefinition:[{WriteOutcomeDefinition(((IOutcomeV1)outcomeSettlement).OutcomeDefinition, culture)}]"); } var outcomeV1 = outcome as IOutcomeV1; if (outcomeV1 != null) { return($"\tOutcomeId:{outcomeV1.Id}, Name[{culture.TwoLetterISOLanguageName}]:'{outcomeName}', OutcomeDefinition:[{WriteOutcomeDefinition(((IOutcomeV1)outcomeV1).OutcomeDefinition, culture)}]"); } return($"\tOutcomeId:{outcome.Id}, Name[{culture.TwoLetterISOLanguageName}]:'{outcomeName}'"); }