Releases: sportradar/UnifiedOddsSdkNetCore
v2.4.1
v2.4.0
- CustomBet ICalculation and ICalculationFilter extended with new property Harmonization (extended with ICalculationV1 and ICalculationFilterV1)
- CustomBet ISelection extended with new property Odds (extended with ISelectionV1)
- CustomBetSelectionBuilder extended with new method SetOdds (extended with ICustomBetSelectionBuilderV1)
- Fix: calling SportDataProvider.GetFixtureChangesAsync without additional filter
- Fix: calling SportDataProvider.GetResultChangesAsync without additional filter
v2.3.0
- A player can now have different jersey numbers assigned for different teams (new interface ICompetitorPlayer)
- Added support for + or - operation in market and outcome name template (e.g. market 739, 725)
v2.1.0
- Improved variant market handling when API call is not received or has some faulty data (i.e. missing outcome name)
- Fix: custom configuration now respect Ssl setting to rewrite api_url if needed
- Fix: directly build custom configuration from app.config settings
- Fix: default debug level to Debug in example project
v2.0.1
v2.0.0
For details about upgrading current versions of sdk (.NET Framework and .NET Standard 2.1) consult migration guide. Summary of changes:
TargetFramework changed from netstandard2.1 to netstandard2.0
Removed all default method implementations on interfaces
Removed obsolete property or methods:
- IOutcomeSettlement.Result
- IOddsFeedConfigurationSection.UseIntegrationEnvironment
- IRound.GroupName
- IRound.GetGroupName()
Root classes renamed - IOddsFeed to IUofSdk
- Feed to UofSdk
- ReplayFeed to UofSdkForReplay
- IOddsFeedExt to IUofSdkExtended
- FeedExt to UofSdkExtended
- IOddsFeedConfigurationSection to IUofConfigurationSection
- OddsFeedConfigurationSection to UofConfigurationSection
- IOddsFeedConfiguration to IUofConfiguration
- Introduced IUofAdditionalConfiguration
- Removed OperationManager (properties moved to IUofConfiguration)
- IEnvironmentSelector removed SelectIntegration() and SelectProduction() use SelectEnvironment(SdkEnvironment ufEnvironment)
- Renamed Feed.CreateBuilder() to UofSdk.GetSessionBuilder()
- App.config section moved to Sportradar.OddsFeed.SDK.Api.Internal.Config.UofConfigurationSection
- UofConfigurationSection property supportedLanguages renamed to desiredLanguages
Renamed IRound.Name to Names
Renamed IRound.PhaseOrGroupLongName to PhaseOrGroupLongNames
Added support for IVenue.Courses (returns list of ICourse instead of list of IHole)
Added support for ICompetitor.Division (moved and replaced from ITeamCompetitor)
Extended IJersey with SquareColor and HorizontalStripesColor
IProducerManager method Get() renamed to GetProducer()
Renamed suffix DTO to Dto (internal)
Removed CI suffix in Exportable classes (internal)
Renamed suffix CI to CacheItem (internal)
Enum values in MessageType changed to CamelCase
Enum values in ExceptionHandlingStrategy changed to CamelCase
Enum values in CashoutStatus changed to CamelCase
Enum values in FixtureChangeType changed to CamelCase
Enum values in MarketStatus changed to CamelCase
Enum values in OddsChangeReason changed to CamelCase
Enum values in PropertyUsage changed to CamelCase
Enum values in ResourceTypeGroup changed to CamelCase
Dependent library changes: - Removed Newtonsoft.Json
- Humanizer 2.8.26 -> 2.14.1
- RabbitMQ.Client 5.1.2 -> 6.5.0
- Microsoft.Extensions.Logging.Abstractions 3.1.0 -> 7.0.0
- System.Configuration.ConfigurationManager 4.7.0 -> 7.0.0 Should be changed with Microsoft.Extensions.Configuration 7.0.0,
- Removed System.Runtime.Caching 4.7.0 replaced with Microsoft.Extensions.Caching.Memory
- App.Metrics replaced with OpenTelemetry 1.6.0
- Unity replaced with Microsoft.Extensions.DependencyInjection 7.0.0
- Introduced Microsoft.Extensions.Diagnostics.HealthChecks 7.0.11
- Introduced Microsoft.Extensions.Http 7.0.0
- Removed Castle.Core
Tests projects upgraded to NET 6.0
Tests projects depended libraries upgraded to latest versions
Inconsistent naming - IOddsFeedConfigurationSection.UseSSL -> UseSsl
- IOddsFeedConfigurationSection.UseApiSSL -> UseApiSsl
- ReplayPlayerStatus.Setting_up SettingUp
- IFixture.StartTimeTBD -> StartTimeTbd
- ExportableFixture.StartTimeTBD -> StartTimeTbd
- EventStatus.Not_Started -> NotStarted
- FeedMessage.EventURN -> EventUrn
- URN -> Urn
Changed namespace - API namespace renamed to Api
- REST namespace renamed to Rest
- replay interfaces to Api.Replay
- feed managers to Api.Managers
- feed providers to Api.Managers
- enum types moved to Common.Enums
- IOddsFeedConfigurationSection moved to Api.Internal.Config
- configuration interfaces moved to Api.Config
- MessageInterest class moved to Api.Config
v2.2.1
v2.2.0
v1.32.0
1.32.0.0 (7/20/2023)
Added support for new stage type SprintRace
1.31.0.0 (4/26/2023)
Introduced OperationManager.MaxConnectionsPerServer property (in DI HttpClientHandler is created with setting MaxConnectionsPerServer)
Fixed lock issue when calling SportDataProvider.GetActiveTournamentsAsync repeatedly
Improved performance for market/outcome name generation
CustomBetManager respects configured ExceptionHandlingStrategy
BookingManager respects configured ExceptionHandlingStrategy
Fixed WNS API endpoints (removed /sports/ from url)
Optimized daily cache population of available sport and category data (does not delete any previous ones anymore)
Optimized execution of some internal async methods
1.30.1.0 (2/20/2023)
Improved speed on API requests with high concurrency
1.30.0.0 (1/26/2023)
IProducer extended with Scope property
Added support for group urn type
Changing API host for replay to non-global
Optimizing number of competitor or player profile api calls
Improvement so less chance the competition event returns null category
Improvement so less chance the competition event returns null tournament
Improved recovery retry on missing messages
Fix ignore fixture_change_fixture endpoint for virtual producers
Fix for competitor reference print
1.29.1.0 (12/5/2022)
Fix configuration apiHost for replay environment
Fix merging of new sport and category which is not included in All tournaments for all sports endpoint
1.29.0.0 (11/9/2022)
Enabled BookingStatus for stages fetches fixture
Fix for variant market descriptions (to ignore default static market description - effects playerprops markets)
Fix for fetching missing summary only if required (effects ILongTermEvent entities)
1.28.0.0 (9/20/2022)
CustomBet - added support for calculate-filter endpoint
1.27.0.0 (7/15/2022)
Improved API data distribution to SportEventCache
Setup that each API endpoint on critical path has its own HttpClient
Fix: recovery request url when configuring custom environment
1.26.0.0 (6/2/2022)
Improvements for saving api data within caches (single item and for list of items)
Changed the timestamp for periodic deletion of old event from cache (to now-12h)
Improved logging format in LogHttpDataFetcher and SportDataProvider
Improved logging for exceptions and warnings
Added Age to FeedMessage string
Added isOpen to OddsFeed
1.25.0.0 (4/26/2022)
Separate HttpClient for critical (summary, player profile, competitor profile and variant market description) and other requests
Added configuration option for fast HttpClient in OperationManager (default timeout 5s)
Extended ISportDataProvider with GetTimelineEventsAsync
Improved merging of competitor profile
Modified sliding expiration of profile cache items to avoid GC congestion
Improved how SportDataProvider is handling exceptions
Improved metrics and logging for raw data events
Improved metrics with app and system metrics
Added metrics for SemaphorePool
Fixed exception handling in DataRouterManager
Extended RawApiDataEventArgs with RequestParams, RequestTime and Language
Other minor improvements for observability
1.24.0.0 (2/23/2022)
Added BetradarName to IRound
Fix: ICompetition competitors did not expose IsVirtual correctly
1.23.0.0 (12/10/2021)
Added support for results in sportEventStatus received from api
Added new log messages during recovery requests
Improved how merging is done within Competitor
Improved connection recovery after long disconnect
Removed unneccessery locks in SportEventStatusCache
Fix: connecting to replay server with production token
Fix: some fields in raw feed message was not filled
Fix: throws exception if match, stage or draw not found exception happens
1.22.0.0 (11/18/2021)
Improvements for connection resilience
Added event RecoveryInitiated to IOddsFeed
Added RabitConnectionTimeout and RabbitHeartbeat to OperationManager
Improved logging regarding connection and recovery process
Changed default UF environment from Integration to GlobalIntegration
Extended StageType with Run enum value
Fix: how connection is made
Fix: case when 2 rabbit connections are made
Fix: getting the names of category for simple_tournaments
1.21.0.0 (10/6/2021)
Extended configuration with ufEnvironment attribute
Extended ITokenSetter and IEnvironmentSelector
New values added to SdkEnvironment enum (GlobalIntegration, GlobalProduction, ProxySingapore, ProxyTokyo)
1.20.0.0 (9/9/2021)
Improved exporting/importing and merging of player profile data
Improved SemaphorePool handling
Improvement: when fetching non-cached fixture change endpoint fails due to server error, try also normal fixture endpoint
Improved tracking of last message timestamp per producer
Fix: DI for SportEventStatusCache
Fix: wrong max recovery time was used (now default is 1h)
Fix: issue with concurrency when getting missing languages for competitor profile
Fix: merging market mapping when no outcome mappings exists
Fix: how after parameter is checked when adjustAfterAge in config is set
Other minor improvements and bug fixes
1.19.0.0 (7/23/2021)
IStage extended with getStatusAsync method providing IStageStatus and method for getting match status
Added Prologue value to StageType enum
Added improvement for connection recovery when disconnection happens
FIx: implemented safe release of all internal SemaphoreSlims
Fix: added handling of variant market description when different market id between requesting and received id
1.18.1.0 (7/7/2021)
Fix: problem within SemaphorePool not acquiring new semaphore - waiting indefinitely
Fix: setting configuration via CustomConfigurationBuilder
Fix: exception with modified competitor players list
1.18.0.0 (6/23/2021)
Added OperationManager to provide option to set sdk values
Added option to ignore sport event status from timeline endpoint for BetPal events
1.17.0.0 (6/15/2021)
Added pitcher, batter, pitch_count, pitches_seen, total_hits, total_pitches to SportEventStatus.Properties
PeriodScore - match status code 120 mapped to penalties
Improved importing,exporting competitors
Improved getting competitor players
Fix: throwing exception when no market description received from API for variant markets
1.16.0.0 (5/28/2021)
Extended IMatch with GetEventTimeline for single culture
IOutcomeProbabilities extended with property AdditionalProbabilities
IMarketWithProbabilities extended with MarketMetaData
Extended ITournament with GetScheduleAsync
Fix: Issue retrieving child stages from parent using GetStagesAsync() method
Fix: corrected which market description is returned for variant markets
Improvement: optimized fetching of player/competitor profiles
1.15.0.0 (4/29/2021)
Added ISportDataProvider.GetPeriodStatusesAsync to fetch period summary for stages
Extended ICompetitionStatus with PeriodOfLadder
Added support for SportEventStatus PeriodOfLeader - added to Properties
Improved handling of outright market mappings (before for some markets there were no mappings returned)
Improved merging of Competitor data
Fix: IMarketWithOdds.GetValidMappings() returns incorrect results
1.14.1.0 (4/7/2021)
Fix: parsing TeamStatistics for SportEventStatus
1.14.0.0 (3/31/2021)
Added IEventChangeManager to IOddsFeed for periodical fixture and result change updates
Changed type of property ITimelineEvent.Player from IPlayer to IEventPlayer (breaking change)
Added IEventPlayer.Bench property in ITimelineEvent.Player property
Added IGoalScorer.Method in ITimelineEvent.GoalScorer property
Added property ICompetitor.ShortName
Added property IProductInfo.IsInLiveMatchTracker
Improved how internal cache sport event items handle competitor lists
Changed ExportableCurrentSeasonInfoCI, ExportableGroupCI, ExportableTournamentInfoCI to return Competitors ids as list of string instead of ExportableCompetitorCI
Improved caching of competitors data on tournaments, seasons
Reverted populating Round Name, GroupName and PhaseOrGroupLongName to exactly what is received from API
Updated FixtureChangeType - also if not specified in fixtureChange message returns FixtureChangeType.NA
Added period_of_leader to the SportEventStatus.Properties
Added StartTime, EndTime and AamsId to the IMarketMetaData
Improved connection handling when disconnected
Improved merging tournament groups (when no group name or id)
Added some logs for errors when using unaccepted token
Fix: WNS event ids can have negative value
Fix: merging tournament groups
Fix: TeamStatistics returned 0 when actually null
Fix: EventResult Home and Away Score could be returned as 0, when actually null
Fix: exporting/importing season data
Fix: resolution of dependencies - removed some Guard check
1.13.0.0 (2/9/2021)
Added ISportDataProvider.GetLotteriesAsync
Improved translation of market names (upgraded library Humanizer to 2.8.26 and Dawn.Guard to 1.12.0)
Added support for eSoccer - returns SoccerEvent instead of Match
Added support for simple_team urn
Adding removal of obsolete tournament groups
Improved internal sdk processing. API calls for markets done only per user request.
Optimized feed message validation.
Fix: for a case when sdk does not auto recover after disconnect
1.12.0.0 (12/15/2020)
Extended ILottery with GetDraws to return list of IDraw (not just ids)
Extended ISportDataProvider with GetSportEvent so also IDraw can be obtained
Fix: getting fixture from API when result is tournamentInfo
Fix: added removal of obsolete EventTimeline events
Fix: not getting tournament data for stages
1.11.1.0 (12/4/2020)
Fix: getting ScheduleForDay endpoint when no events throw exception
Fix: missing totalStatistics in SoccerStatus.Statistics
Fix: soccer events not instance of ISoccerEvent
Fix: getting null fetching sport and parent stage info for stages
**1....