Six4Win.WebApi

<back to all web services

GetDrawDignostics

The following routes are available for this service:
All Verbs/qry/rounds/draw/diagnostics
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using Six4Win.WebApi.ServiceModel;
using Six4Win.ReadModel;
using Starnet.Common;
using Six4Win;
using Betting.Common;
using Six4Win.Common;

namespace Betting.Common
{
    public partial class BettingApp
    {
        public virtual string Name { get; set; }
        public virtual string Version { get; set; }
    }

    public partial class Origin
    {
        public virtual BettingApp Application { get; set; }
        public virtual string IP { get; set; }
        public virtual RefEx Organization { get; set; }
        public virtual Ref Region { get; set; }
        public virtual Ref LocationGroup { get; set; }
        public virtual RefEx Location { get; set; }
        public virtual RefEx Device { get; set; }
        public virtual Ref Clerk { get; set; }
    }

}

namespace Six4Win
{
    public partial class WinnerByCode
    {
        public virtual string RoundId { get; set; }
        public virtual DateTime DrawnAtUtc { get; set; }
        public virtual string SlipId { get; set; }
        public virtual string BetId { get; set; }
        public virtual string Code { get; set; }
        public virtual decimal Amount { get; set; }
        public virtual Origin Origin { get; set; }
        public virtual Ref Bettor { get; set; }
        public virtual string LocationAddressOrBettorInfo { get; set; }
    }

}

namespace Six4Win.Common
{
    public partial class Syphon
    {
        public virtual string Id { get; set; }
        public virtual string Name { get; set; }
        public virtual SyphonType Type { get; set; }
        public virtual int NrOfCombinations { get; set; }
    }

    public partial class SyphonInfo
    {
        public virtual Dictionary<string, Syphon> Bettors { get; set; }
        public virtual Dictionary<string, Syphon> Locations { get; set; }
        public virtual bool HasSyphons { get; set; }
        public virtual int TotalSyphonsInRound { get; set; }
    }

    public enum SyphonType
    {
        Location = 0,
        Bettor = 1,
    }

}

namespace Six4Win.ReadModel
{
    public partial class AccumulatorConfiguration
        : AccumulatorConfiguration
    {
        public virtual string Id { get; set; }
        public virtual DateTime UpdatedAt { get; set; }
    }

    public partial class DrawDiagnostics
    {
        public virtual string Id { get; set; }
        public virtual Initialization InitializationInfo { get; set; }
        public virtual SequenceGeneration SequenceGenerationInfo { get; set; }
        public virtual BestFitFinder BestFitFinderInfo { get; set; }
        public virtual Purger PurgerInfo { get; set; }
        public virtual long Duration { get; set; }
        public virtual List<StimulationResponse> StimulationResponses { get; set; }
        public virtual LocalCodePotInfo LocalCodePot { get; set; }
        public virtual SuperWinInfo SuperWin { get; set; }
        public virtual HappyHourInfo HappyHour { get; set; }
        public virtual string Reasoning { get; set; }
        public virtual AccumulatorConfiguration Configuration { get; set; }
        public virtual SyphonInfo SyphonInfo { get; set; }
        public partial class Initialization
        {
            public virtual long DataLoadDuration { get; set; }
            public virtual long BetsCollectionsCreationDuration { get; set; }
            public virtual long CombinationsOccuranceLookupInitializationDuration { get; set; }
        }

        public partial class Purger
        {
            public virtual decimal PrevalentStake { get; set; }
            public virtual string PoolPurger { get; set; }
            public virtual List<QualifiedPool> QualifiedPools { get; set; }
        }

        public partial class QualifiedPool
        {
            public virtual int Id { get; set; }
            public virtual string Name { get; set; }
            public virtual decimal Coefficient { get; set; }
            public virtual decimal AvailableAmount { get; set; }
            public virtual decimal AwardedAmount { get; set; }
            public virtual Bet TargetBet { get; set; }
            public partial class Bet
            {
                public virtual bool IsFound { get; set; }
                public virtual string BetId { get; set; }
                public virtual string SlipId { get; set; }
                public virtual Object CombStake { get; set; }
            }

        }

        public partial class SequenceGeneration
        {
            public virtual int NrOfThreads { get; set; }
            public virtual int NrOfResultsProbed { get; set; }
            public virtual long Duration { get; set; }
            public virtual long AvgSinglePassDuration { get; set; }
        }

        public partial class BestFitFinder
        {
            public virtual decimal TargetAmount { get; set; }
            public virtual decimal AwardedAmount { get; set; }
            public virtual decimal Deviation { get; set; }
            public virtual decimal DeviationPct { get; set; }
            public virtual string SequenceResultType { get; set; }
            public virtual bool IsJackPot5Drawn { get; set; }
            public virtual long FilteringPeriod { get; set; }
            public virtual SortingOrder WinCountOrder { get; set; }
            public virtual decimal MinAmount { get; set; }
            public virtual decimal MaxAmount { get; set; }
        }

        public partial class StimulationResponse
        {
            public virtual string StimulationId { get; set; }
            public virtual ResponseStatus Status { get; set; }
            public virtual string FailureReason { get; set; }
            public virtual string SlipId { get; set; }
            public virtual string BetId { get; set; }
            public virtual decimal AmountAwarded { get; set; }
            public enum ResponseStatus
            {
                Failure = 0,
                Success = 1,
            }

        }

        public partial class LocalCodePotInfo
        {
            public virtual bool IsActive { get; set; }
            public virtual CurrentRoundInfo Current { get; set; }
            public virtual List<WinnerByCode> Winners { get; set; }
            public partial class CurrentRoundInfo
            {
                public virtual string RoundId { get; set; }
                public virtual decimal Amount { get; set; }
                public virtual string InertCode { get; set; }
            }

        }

        public partial class SuperWinInfo
        {
            public virtual long DurationInMs { get; set; }
        }

        public partial class HappyHourInfo
        {
            public virtual bool IsHappyHour { get; set; }
            public virtual decimal OddsModifier { get; set; }
            public virtual decimal RoundPoolBonusPct { get; set; }
        }

    }

}

namespace Six4Win.WebApi.ServiceModel
{
    public partial class GetDrawDignostics
    {
        public virtual string Id { get; set; }
    }

}

namespace Starnet.Common
{
    public partial class RecordDictionary<TKey, TVal>
        : Dictionary<TKey, TVal>
    {
    }

    public partial class Ref
    {
        public virtual string Id { get; set; }
        public virtual string Val { get; set; }
    }

    public partial class RefEx
        : Ref
    {
        public virtual RecordDictionary<string, string> Data { get; set; }
    }

    public enum SortingOrder
    {
        None = 0,
        Ascending = 1,
        Descending = 2,
    }

}

C# 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
	}
}