Six4Win.WebApi

<back to all web services

GetDrawDignostics

The following routes are available for this service:
All Verbs/qry/rounds/draw/diagnostics
namespace Six4Win.WebApi.ServiceModel

open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type Initialization() = 
        member val DataLoadDuration:Int64 = new Int64() with get,set
        member val BetsCollectionsCreationDuration:Int64 = new Int64() with get,set
        member val CombinationsOccuranceLookupInitializationDuration:Int64 = new Int64() with get,set

    [<AllowNullLiteral>]
    type SequenceGeneration() = 
        member val NrOfThreads:Int32 = new Int32() with get,set
        member val NrOfResultsProbed:Int32 = new Int32() with get,set
        member val Duration:Int64 = new Int64() with get,set
        member val AvgSinglePassDuration:Int64 = new Int64() with get,set

    type SortingOrder =
        | None = 0
        | Ascending = 1
        | Descending = 2

    [<AllowNullLiteral>]
    type BestFitFinder() = 
        member val TargetAmount:Decimal = new Decimal() with get,set
        member val AwardedAmount:Decimal = new Decimal() with get,set
        member val Deviation:Decimal = new Decimal() with get,set
        member val DeviationPct:Decimal = new Decimal() with get,set
        member val SequenceResultType:String = null with get,set
        member val IsJackPot5Drawn:Boolean = new Boolean() with get,set
        member val FilteringPeriod:Int64 = new Int64() with get,set
        member val WinCountOrder:SortingOrder = new SortingOrder() with get,set
        member val MinAmount:Decimal = new Decimal() with get,set
        member val MaxAmount:Decimal = new Decimal() with get,set

    [<AllowNullLiteral>]
    type Bet() = 
        member val IsFound:Boolean = new Boolean() with get,set
        member val BetId:String = null with get,set
        member val SlipId:String = null with get,set
        member val CombStake:Object = null with get,set

    [<AllowNullLiteral>]
    type QualifiedPool() = 
        member val Id:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val Coefficient:Decimal = new Decimal() with get,set
        member val AvailableAmount:Decimal = new Decimal() with get,set
        member val AwardedAmount:Decimal = new Decimal() with get,set
        member val TargetBet:Bet = null with get,set

    [<AllowNullLiteral>]
    type Purger() = 
        member val PrevalentStake:Decimal = new Decimal() with get,set
        member val PoolPurger:String = null with get,set
        member val QualifiedPools:ResizeArray<QualifiedPool> = null with get,set

    type ResponseStatus =
        | Failure = 0
        | Success = 1

    [<AllowNullLiteral>]
    type StimulationResponse() = 
        member val StimulationId:String = null with get,set
        member val Status:ResponseStatus = new ResponseStatus() with get,set
        member val FailureReason:String = null with get,set
        member val SlipId:String = null with get,set
        member val BetId:String = null with get,set
        member val AmountAwarded:Decimal = new Decimal() with get,set

    [<AllowNullLiteral>]
    type CurrentRoundInfo() = 
        member val RoundId:String = null with get,set
        member val Amount:Decimal = new Decimal() with get,set
        member val InertCode:String = null with get,set

    [<AllowNullLiteral>]
    type BettingApp() = 
        member val Name:String = null with get,set
        member val Version:String = null with get,set

    [<AllowNullLiteral>]
    type Ref() = 
        member val Id:String = null with get,set
        member val Val:String = null with get,set

    [<AllowNullLiteral>]
    type RefEx() = 
        inherit Ref()
        member val Data:RecordDictionary<String, String> = null with get,set

    [<AllowNullLiteral>]
    type Origin() = 
        member val Application:BettingApp = null with get,set
        member val IP:String = null with get,set
        member val Organization:RefEx = null with get,set
        member val Region:Ref = null with get,set
        member val LocationGroup:Ref = null with get,set
        member val Location:RefEx = null with get,set
        member val Device:RefEx = null with get,set
        member val Clerk:Ref = null with get,set

    [<AllowNullLiteral>]
    type WinnerByCode() = 
        member val RoundId:String = null with get,set
        member val DrawnAtUtc:DateTime = new DateTime() with get,set
        member val SlipId:String = null with get,set
        member val BetId:String = null with get,set
        member val Code:String = null with get,set
        member val Amount:Decimal = new Decimal() with get,set
        member val Origin:Origin = null with get,set
        member val Bettor:Ref = null with get,set
        member val LocationAddressOrBettorInfo:String = null with get,set

    [<AllowNullLiteral>]
    type LocalCodePotInfo() = 
        member val IsActive:Boolean = new Boolean() with get,set
        member val Current:CurrentRoundInfo = null with get,set
        member val Winners:ResizeArray<WinnerByCode> = null with get,set

    [<AllowNullLiteral>]
    type SuperWinInfo() = 
        member val DurationInMs:Int64 = new Int64() with get,set

    [<AllowNullLiteral>]
    type HappyHourInfo() = 
        member val IsHappyHour:Boolean = new Boolean() with get,set
        member val OddsModifier:Decimal = new Decimal() with get,set
        member val RoundPoolBonusPct:Decimal = new Decimal() with get,set

    [<AllowNullLiteral>]
    type AccumulatorConfiguration() = 
        inherit AccumulatorConfiguration()
        member val Id:String = null with get,set
        member val UpdatedAt:DateTime = new DateTime() with get,set

    type SyphonType =
        | Location = 0
        | Bettor = 1

    [<AllowNullLiteral>]
    type Syphon() = 
        member val Id:String = null with get,set
        member val Name:String = null with get,set
        member val Type:SyphonType = new SyphonType() with get,set
        member val NrOfCombinations:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type SyphonInfo() = 
        member val Bettors:Dictionary<String, Syphon> = null with get,set
        member val Locations:Dictionary<String, Syphon> = null with get,set
        member val HasSyphons:Boolean = new Boolean() with get,set
        member val TotalSyphonsInRound:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type DrawDiagnostics() = 
        member val Id:String = null with get,set
        member val InitializationInfo:Initialization = null with get,set
        member val SequenceGenerationInfo:SequenceGeneration = null with get,set
        member val BestFitFinderInfo:BestFitFinder = null with get,set
        member val PurgerInfo:Purger = null with get,set
        member val Duration:Int64 = new Int64() with get,set
        member val StimulationResponses:ResizeArray<StimulationResponse> = null with get,set
        member val LocalCodePot:LocalCodePotInfo = null with get,set
        member val SuperWin:SuperWinInfo = null with get,set
        member val HappyHour:HappyHourInfo = null with get,set
        member val Reasoning:String = null with get,set
        member val Configuration:AccumulatorConfiguration = null with get,set
        member val SyphonInfo:SyphonInfo = null with get,set

    [<AllowNullLiteral>]
    type GetDrawDignostics() = 
        member val Id:String = null with get,set

    [<AllowNullLiteral>]
    type RecordDictionary<TKey, TVal>() = 
        inherit Dictionary<TKey, TVal>()

F# GetDrawDignostics DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /qry/rounds/draw/diagnostics HTTP/1.1 
Host: s4w2.api.bettor.cc 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	id: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	id: String,
	initializationInfo: 
	{
		dataLoadDuration: 0,
		betsCollectionsCreationDuration: 0,
		combinationsOccuranceLookupInitializationDuration: 0
	},
	sequenceGenerationInfo: 
	{
		nrOfThreads: 0,
		nrOfResultsProbed: 0,
		duration: 0,
		avgSinglePassDuration: 0
	},
	bestFitFinderInfo: 
	{
		targetAmount: 0,
		awardedAmount: 0,
		deviation: 0,
		deviationPct: 0,
		sequenceResultType: String,
		isJackPot5Drawn: False,
		filteringPeriod: 0,
		winCountOrder: 0,
		minAmount: 0,
		maxAmount: 0
	},
	purgerInfo: 
	{
		prevalentStake: 0,
		poolPurger: String,
		qualifiedPools: 
		[
			{
				id: 0,
				name: String,
				coefficient: 0,
				availableAmount: 0,
				awardedAmount: 0,
				targetBet: 
				{
					isFound: False,
					betId: String,
					slipId: String,
					combStake: {}
				}
			}
		]
	},
	duration: 0,
	stimulationResponses: 
	[
		{
			stimulationId: String,
			status: 0,
			failureReason: String,
			slipId: String,
			betId: String,
			amountAwarded: 0
		}
	],
	localCodePot: 
	{
		durationInMs: 0
	},
	superWin: 
	{
		durationInMs: 0
	},
	happyHour: 
	{
		isHappyHour: False,
		oddsModifier: 0,
		roundPoolBonusPct: 0
	},
	reasoning: String,
	configuration: 
	{
		pools: 
		[
			{
				id: 0,
				name: String,
				rtp: 0,
				reserveRTP: 0,
				totalRTP: 0
			}
		],
		prevalentStake: 0,
		purgeThresholdModifier: 0,
		locationOptimizationLevel: 0,
		jackPot5ThresholdInterval: 
		{
			start: 0,
			end: 0
		},
		deviationCategorySpanInPct: 0,
		deviationCategoryThresholdAmount: 0,
		roundPoolCircuitBreakerThreshold: 0,
		lowWinCountAffinityInPct: 0,
		winCountOrderAffinity: 
		[
			{
				order: 0,
				probability: 0
			}
		],
		highRollerSettings: 
		{
			pools: 
			[
				{
					id: 0,
					name: String,
					isActive: False,
					contributionToRoundPoolPct: 0,
					caps: 
					{
						plusCoef: 0,
						minusCoef: 0,
						maxAmountInPrevalentStakes: 0
					}
				}
			],
			categoryThresholds: 
			[
				{
					category: 0,
					threshold: 0
				}
			]
		},
		overflowCoefficientPoolsToRound: False,
		antiSyphonProtectionOverride: False,
		fraudDetectionConfig: 
		{
			antiSyphon: 
			{
				combinationCountPerRoundThresholdPct: 0,
				excludedLocations: 
				[
					{
						id: String,
						val: String
					}
				],
				includeRoundPctAsBettorSyphonCriteria: False,
				isActive: False
			}
		},
		debugConfig: 
		{
			logLocationStats: False,
			logBettorSats: False
		}
	},
	syphonInfo: 
	{
		bettors: 
		{
			String: 
			{
				id: String,
				name: String,
				type: 0,
				nrOfCombinations: 0
			}
		},
		locations: 
		{
			String: 
			{
				id: String,
				name: String,
				type: 0,
				nrOfCombinations: 0
			}
		},
		hasSyphons: True,
		totalSyphonsInRound: 2
	}
}