UnifiedFeed SDK - NetStandard 2.1

Versions: (7/23/2021) recommended
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 (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 (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 (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 (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 (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 (4/7/2021)
Fix: parsing TeamStatistics for SportEventStatus (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 (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 (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 (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 (11/13/2020)
Added new stage types in StageType enum (Practice, Qualifying, QualifyingPart, Lap)
Added CashoutStatus to IMarketWithProbabilitiesV1
Fix: loading sportEventType and stageType from parent stage if available
Fix: IMarketWithOdds.GetMappedMarketIDsAsync() returns multiple mappings
Fix: exception casting TournamentInfoCI to StageCI (10/12/2020)
IRound - GroupName renamed to Group, added GroupName property (breaking change)
IStage - added GetAdditionalParentStages, GetStageType (breaking change - result changed from SportEventType to StageType)
IEventResult extended with Distance and CompetitorResults
ICompetition extended with GetLiveOdds and GetSportEventType property
Added Course to the IVenue
Added Coverage to IMatch
Improvements in recovery manager
Added support for markets with outcome_type=competitors
Make replay manager available before the feed is open
Improved connection error handling and reporting
Fix: exception thrown when there are no fixture changes
Fix: soccer events not instance of ISoccerEvent
Fix: entities null even though data is present on the API
Fix: event status enumeration (8/19/2020)
Extended SeasonInfo with startDate, endDate, year and tournamentId
FIx: special case when recovery status does not reflect actual state - results in wrong triggering ProducerUp-Down event
Fix: URN.TryParse could throw unhandled exception
Fix: several issues with CustomBet(Manager) fixed
Fix: Export-Import breaks on missing data
Fix: Lottery throws exception when no schedule is obtained from api
Fix: missing nodeId in snapshot_complete routing key
Fix: SportDataProvider.GetActiveTournaments returned null
Fix: SportEventCache: improved locking mechanism on period fetching of schedule for a date
Fix: reloading market description in case variant descriptions are not available
Improved logging of initial message processing (7/9/2020)
Added GetSportAsync() and GetCategoryAsync() to ICompetitor interface
Throttling recovery requests
Fix: support Replay routing keys without node id
Fix: calling Replay fixture endpoint with node id (6/24/2020)
Added support for configuring HTTP timeout
Added overloaded methods for fixture and result changes with filters
Updated supported languages
Removed logging of feed message for disabled producers
Exposed RawMessage on UnparsableMessageEventArgs
Changed retention policy for variant market cache
Improved reporting of invalid message interest combinations
Fix: Synchronized Producer Up/Down event dispatching
Fix: Disposing of Feed instance
Fix: Permanent failure to open connection to feed (5/11/2020)
Added FullName, Nickname and CountryCode to IPlayerProfile
Added support for result changes endpoint
IMatchStatus provide nullable Home and Away score (extended with IMatchStatusV1)
Fix: MaxRecoveryTime is properly used to check for timeouts (4/16/2020)
Added GetScheduleAsync to the BasicTournament
Added bookmakerId to the ClientProperties
Fix: fixture endpoint on Replay
Fix: refreshing categories after complete sport data cache reload (3/25/2020)
Changed Replay API URL (3/23/2020)
Fix: invalid timestamp for cashout probabilities
Fix: handle settlement markets without outcomes
Fix: EventRecoveryCompleted is properly raised when snapshot completes (3/16/2020)
Fix: added IOutcomeSettlement.OutcomeResult instead of IOutcomeSettlement.Result (obsolete)
Fix: competitor references for seasons
Fix: failing API requests on some configurations (2/18/2020)
Added State to the Competitor
Added State to the Venue
Extended ISportInfoProvider.DeleteSportEventFromCache with option to delete sport event status
Improved logging for connection errors
Improved fetching fixtures for Replay environment
Fix: calling variant endpoint only if user requests market data
Fix: NullPointerException in ReplayManager (1/15/2020)
Fix: DI error for FeedRecoveryManager (1/14/2020)
Added new Replay API endpoints (FEEDSDK-1316)
Updated DemoProject to use ILoggerFactory
Added metrics to SpecificEntityWriter in DemoProject
Fix: fetching outcome mappings for special markets that exists only on dynamic variant endpoint (FEEDSDK-1314) (1/6/2020)
Port of UF SDK to .NET Standard 2.1
Replaced Metrics.NET with App.Metrics
Replaced Code.Contracts with Dawn.Guard conditions
Replaced Common.Logging with Microsoft.Extensions.Logging
Upgraded RabbitMQ.Client to v5.1.2
Upgraded Newtonsoft.Json to v12.0.3
Upgraded Unity to 5.11.3
Removed obsolete methods and properties
Merged V1, V2, ... extended interfaces into base one