Esempio n. 1
0
        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));
        }