public ICashOutProbabilities <T> MapCashOutProbabilities <T>(cashout message, IEnumerable <CultureInfo> cultures, byte[] rawMessage) where T : ISportEvent { Contract.Requires(message != null); Contract.Ensures(Contract.Result <ICashOutProbabilities <T> >() != null); return(Contract.Result <ICashOutProbabilities <T> >()); }
/// <summary> /// Maps (converts) the provided <see cref="cashout" /> instance to the <see cref="ICashOutProbabilities{T}" /> instance /// </summary> /// <typeparam name="T"></typeparam> /// <param name="message">A <see cref="cashout" /> instance to be mapped (converted)</param> /// <param name="cultures">A <see cref="IEnumerable{CultureInfo}" /> specifying the languages to which the mapped message will be translated</param> /// <param name="rawMessage">The raw message</param> /// <returns>A <see cref="ICashOutProbabilities{T}" /> instance constructed from information in the provided <see cref="cashout" /></returns> public ICashOutProbabilities <T> MapCashOutProbabilities <T>(cashout message, IEnumerable <CultureInfo> cultures, byte[] rawMessage) where T : ISportEvent { Guard.Argument(message, nameof(message)).NotNull(); var culturesList = cultures as List <CultureInfo> ?? cultures.ToList(); var eventId = URN.Parse(message.event_id); var sportId = URN.Parse("sr:sport:1"); var epochTime = SdkInfo.ToEpochTime(DateTime.Now); return(new CashOutProbabilities <T>(new MessageTimestamp(message.GeneratedAt, message.SentAt, epochTime, epochTime), _producerManager.Get(message.product), GetEventForMessage <T>(eventId, sportId, culturesList), message.odds != null && message.odds.betstop_reasonSpecified ? (int?)message.odds.betstop_reason : null, message.odds != null && message.odds.betting_statusSpecified ? (int?)message.odds.betting_status : null, message.odds?.market?.Select(m => GetMarketWithProbabilities(GetEventForNameProvider <T>(eventId, sportId, culturesList), m, message.product, sportId, culturesList)).ToList(), _namedValuesProvider, rawMessage)); }