/// <summary>
        /// Initializes a new instance of the <see cref="MarketWithOdds"/> class
        /// </summary>
        /// <param name="id">a <see cref="int"/> value specifying the market type</param>
        /// <param name="specifiers">a <see cref="IReadOnlyDictionary{String, String}"/> containing market specifiers.</param>
        /// <param name="additionalInfo">a <see cref="IReadOnlyDictionary{String, String}"/> containing additional market info.</param>
        /// <param name="nameProvider">A <see cref="INameProvider"/> instance used to generate the market name(s) </param>
        /// <param name="mappingProvider">A <see cref="IMarketMappingProvider"/> instance used for providing mapped ids of markets and outcomes</param>
        /// <param name="status">a <see cref="MarketStatus"/> enum member specifying the status of the market associated with the current <see cref="IMarketWithOdds"/> instance</param>
        /// <param name="cashoutStatus">A <see cref="CashoutStatus"/> to be set</param>
        /// <param name="isFavorite">Gets a value indicating whether the market associated with the current <see cref="IMarketWithOdds"/> instance is the most
        ///     balanced market.</param>
        /// <param name="outcomeOdds">a <see cref="IEnumerable{IOutcomeOdds}"/> where each <see cref="IOutcomeOdds"/> instance specifies the odds
        ///     for one outcome associated with the current <see cref="IMarketWithOdds"/> instance</param>
        /// <param name="marketMetadata">A <see cref="IMarketMetadata"/> to be set</param>
        /// <param name="marketDefinition">The associated market definition</param>
        /// <param name="cultures">A <see cref="IEnumerable{CultureInfo}"/> specifying languages the current instance supports</param>
        internal MarketWithOdds(int id,
                                IReadOnlyDictionary <string, string> specifiers,
                                IReadOnlyDictionary <string, string> additionalInfo,
                                INameProvider nameProvider,
                                IMarketMappingProvider mappingProvider,
                                MarketStatus status,
                                CashoutStatus?cashoutStatus,
                                bool isFavorite,
                                IEnumerable <IOutcomeOdds> outcomeOdds,
                                IMarketMetadata marketMetadata,
                                IMarketDefinition marketDefinition,
                                IEnumerable <CultureInfo> cultures)
            : base(id, specifiers, additionalInfo, nameProvider, mappingProvider, marketDefinition, cultures)
        {
            Status        = status;
            CashoutStatus = cashoutStatus;

            if (outcomeOdds != null)
            {
                OutcomeOdds = outcomeOdds as ReadOnlyCollection <IOutcomeOdds> ?? new ReadOnlyCollection <IOutcomeOdds>(outcomeOdds.ToList());
            }
            IsFavorite = isFavorite;

            MarketMetadata = marketMetadata;
        }
Ejemplo n.º 2
0
        private string WriteMarketDefinition(IMarketDefinition marketDefinition, CultureInfo culture)
        {
            if (marketDefinition == null)
            {
                return(null);
            }

            var attributes = marketDefinition.GetAttributes() == null
                                 ? null
                                 : marketDefinition.GetAttributes().Aggregate(string.Empty, (current, pair) => current + $"{pair.Key}={pair.Value}|");

            return($"OutcomeType: {marketDefinition.GetOutcomeType()}, NameTemplate: {marketDefinition.GetNameTemplate(culture)}, Attributes:[{attributes}], Groups:[{marketDefinition.GetGroups()?.Aggregate(string.Empty, (current, s1) => current + "," + s1)}]");
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MarketWithSettlement" /> class
        /// </summary>
        /// <param name="id">a <see cref="int" /> value specifying the market type</param>
        /// <param name="specifiers">a <see cref="IReadOnlyDictionary{String, String}" /> containing additional market specifiers</param>
        /// <param name="additionalInfo">a <see cref="IReadOnlyDictionary{String, String}"/> containing additional market info</param>
        /// <param name="nameProvider">A <see cref="INameProvider"/> instance used to generate the market name(s)</param>
        /// <param name="mappingProvider">A <see cref="IMarketMappingProvider"/> instance used for providing mapped ids of markets and outcomes</param>
        /// <param name="marketDefinition">The associated market definition</param>
        /// <param name="voidReason">A value specifying the void reason or a null reference</param>
        /// <param name="voidReasonsCache">A <see cref="INamedValueCache"/> used to get void reason descriptions</param>
        /// <param name="cultures">A <see cref="IEnumerable{CultureInfo}"/> specifying languages the current instance supports</param>
        internal MarketCancel(int id,
                              IReadOnlyDictionary <string, string> specifiers,
                              IReadOnlyDictionary <string, string> additionalInfo,
                              INameProvider nameProvider,
                              IMarketMappingProvider mappingProvider,
                              IMarketDefinition marketDefinition,
                              int?voidReason,
                              INamedValueCache voidReasonsCache,
                              IEnumerable <CultureInfo> cultures)
            : base(id, specifiers, additionalInfo, nameProvider, mappingProvider, marketDefinition, cultures)
        {
            Contract.Requires(voidReasonsCache != null);

            _voidReason       = voidReason;
            _voidReasonsCache = voidReasonsCache;
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MarketWithSettlement" /> class
        /// </summary>
        /// <param name="id">a <see cref="int" /> value specifying the market type</param>
        /// <param name="specifiers">a <see cref="IReadOnlyDictionary{String, String}" /> containing additional market specifiers</param>
        /// <param name="additionalInfo">a <see cref="IReadOnlyDictionary{String, String}"/> containing additional market info</param>
        /// <param name="nameProvider">A <see cref="INameProvider"/> instance used to generate the market name(s)</param>
        /// <param name="mappingProvider">A <see cref="IMarketMappingProvider"/> instance used for providing mapped ids of markets and outcomes</param>
        /// <param name="marketDefinition">The associated market definition</param>
        /// <param name="voidReason">A value specifying the void reason or a null reference</param>
        /// <param name="voidReasonsCache">A <see cref="INamedValueCache"/> used to get void reason descriptions</param>
        /// <param name="cultures">A <see cref="IEnumerable{CultureInfo}"/> specifying languages the current instance supports</param>
        internal MarketCancel(int id,
                              IReadOnlyDictionary <string, string> specifiers,
                              IReadOnlyDictionary <string, string> additionalInfo,
                              INameProvider nameProvider,
                              IMarketMappingProvider mappingProvider,
                              IMarketDefinition marketDefinition,
                              int?voidReason,
                              INamedValueCache voidReasonsCache,
                              IEnumerable <CultureInfo> cultures)
            : base(id, specifiers, additionalInfo, nameProvider, mappingProvider, marketDefinition, cultures)
        {
            Guard.Argument(voidReasonsCache, nameof(voidReasonsCache)).NotNull();

            _voidReason       = voidReason;
            _voidReasonsCache = voidReasonsCache;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="MarketWithProbabilities"/> class
        /// </summary>
        /// <param name="id">a <see cref="int"/> value specifying the market type</param>
        /// <param name="specifiers">a <see cref="IReadOnlyDictionary{String, String}"/> containing market specifiers.</param>
        /// <param name="additionalInfo">a <see cref="IReadOnlyDictionary{String, String}"/> containing additional market info.</param>
        /// <param name="nameProvider">A <see cref="INameProvider"/> instance used to generate the market name(s) </param>
        /// <param name="mappingProvider">A <see cref="IMarketMappingProvider"/> instance used for providing mapped ids of markets and outcomes</param>
        /// <param name="status">a <see cref="MarketStatus"/> enum member specifying the status of the market associated with the current <see cref="IMarketWithProbabilities"/> instance</param>
        /// <param name="outcomeProbabilities">a <see cref="IEnumerable{IOutcomeProbabilities}"/> where each <see cref="IOutcomeProbabilities"/> instance specifies the odds
        /// for one outcome associated with the current <see cref="IMarketWithProbabilities"/> instance</param>
        /// <param name="marketDefinition">The associated market definition</param>
        /// <param name="cultures">A <see cref="IEnumerable{CultureInfo}"/> specifying languages the current instance supports</param>
        internal MarketWithProbabilities(int id,
                                         IReadOnlyDictionary <string, string> specifiers,
                                         IReadOnlyDictionary <string, string> additionalInfo,
                                         INameProvider nameProvider,
                                         IMarketMappingProvider mappingProvider,
                                         MarketStatus status,
                                         IEnumerable <IOutcomeProbabilities> outcomeProbabilities,
                                         IMarketDefinition marketDefinition,
                                         IEnumerable <CultureInfo> cultures)
            : base(id, specifiers, additionalInfo, nameProvider, mappingProvider, marketDefinition, cultures)
        {
            Status = status;

            if (outcomeProbabilities != null)
            {
                OutcomeProbabilities = outcomeProbabilities as ReadOnlyCollection <IOutcomeProbabilities> ?? new ReadOnlyCollection <IOutcomeProbabilities>(outcomeProbabilities.ToList());
            }
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Market" /> class
 /// </summary>
 /// <param name="id">a <see cref="int" /> value specifying the market type</param>
 /// <param name="specifiers">a <see cref="IReadOnlyDictionary{String, String}" /> containing market specifiers</param>
 /// <param name="additionalInfo">a <see cref="IReadOnlyDictionary{String, String}" /> containing additional market info</param>
 /// <param name="nameProvider">A <see cref="INameProvider"/> instance used to generate the market name(s) </param>
 /// <param name="mappingProvider">A <see cref="IMarketMappingProvider"/> instance used for providing mapping ids of markets and outcomes</param>
 /// <param name="marketDefinition">The associated market definition</param>
 /// <param name="cultures">A <see cref="IEnumerable{CultureInfo}"/> specifying languages the current instance supports</param>
 internal Market(int id,
                 IReadOnlyDictionary <string, string> specifiers,
                 IReadOnlyDictionary <string, string> additionalInfo,
                 INameProvider nameProvider,
                 IMarketMappingProvider mappingProvider,
                 IMarketDefinition marketDefinition,
                 IEnumerable <CultureInfo> cultures)
 {
     Guard.Argument(nameProvider, nameof(nameProvider)).NotNull();
     Guard.Argument(cultures, nameof(cultures)).NotNull().NotEmpty();
     Id               = id;
     Specifiers       = specifiers;
     AdditionalInfo   = additionalInfo;
     _nameProvider    = nameProvider;
     MappingProvider  = mappingProvider;
     MarketDefinition = marketDefinition;
     _cultures        = cultures;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="MarketWithSettlement" /> class
        /// </summary>
        /// <param name="id">a <see cref="int" /> value specifying the market type</param>
        /// <param name="specifiers">a <see cref="IReadOnlyDictionary{String, String}" /> containing additional market specifiers</param>
        /// <param name="additionalInfo">a <see cref="IReadOnlyDictionary{String, String}"/> containing additional market info</param>
        /// <param name="outcomes">An <see cref="IEnumerable{IOutcomeSettlement}" /> where each <see cref="IOutcomeSettlement" /> instance providing outcome settling information
        /// </param>
        /// <param name="nameProvider">A <see cref="INameProvider"/> instance used to generate the market name(s)</param>
        /// <param name="mappingProvider">A <see cref="IMarketMappingProvider"/> instance used for providing mapped ids of markets and outcomes</param>
        /// <param name="marketDefinition">The associated market definition</param>
        /// <param name="voidReason">A value specifying the void reason or a null reference</param>
        /// <param name="voidReasonsCache">A <see cref="INamedValueCache"/> used to get void reason descriptions</param>
        /// <param name="cultures">A <see cref="IEnumerable{CultureInfo}"/> specifying languages the current instance supports</param>
        internal MarketWithSettlement(int id,
                                      IReadOnlyDictionary <string, string> specifiers,
                                      IReadOnlyDictionary <string, string> additionalInfo,
                                      IEnumerable <IOutcomeSettlement> outcomes,
                                      INameProvider nameProvider,
                                      IMarketMappingProvider mappingProvider,
                                      IMarketDefinition marketDefinition,
                                      int?voidReason,
                                      INamedValueCache voidReasonsCache,
                                      IEnumerable <CultureInfo> cultures)
            : base(id, specifiers, additionalInfo, nameProvider, mappingProvider, marketDefinition, voidReason, voidReasonsCache, cultures)
        {
            Contract.Requires(outcomes != null && outcomes.Any());

            var readonlyOutcomes = outcomes as IReadOnlyCollection <IOutcomeSettlement>;

            OutcomeSettlements = readonlyOutcomes ?? new ReadOnlyCollection <IOutcomeSettlement>(outcomes.ToList());
        }
Ejemplo n.º 8
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="Market" /> class
        /// </summary>
        /// <param name="id">a <see cref="int" /> value specifying the market type</param>
        /// <param name="specifiers">a <see cref="IReadOnlyDictionary{String, String}" /> containing market specifiers</param>
        /// <param name="additionalInfo">a <see cref="IReadOnlyDictionary{String, String}" /> containing additional market info</param>
        /// <param name="nameProvider">A <see cref="INameProvider"/> instance used to generate the market name(s) </param>
        /// <param name="mappingProvider">A <see cref="IMarketMappingProvider"/> instance used for providing mapping ids of markets and outcomes</param>
        /// <param name="marketDefinition">The associated market definition</param>
        /// <param name="cultures">A <see cref="IEnumerable{CultureInfo}"/> specifying languages the current instance supports</param>
        internal Market(int id,
                        IReadOnlyDictionary <string, string> specifiers,
                        IReadOnlyDictionary <string, string> additionalInfo,
                        INameProvider nameProvider,
                        IMarketMappingProvider mappingProvider,
                        IMarketDefinition marketDefinition,
                        IEnumerable <CultureInfo> cultures)
        {
            Contract.Requires(nameProvider != null);
            Contract.Requires(cultures != null);
            Contract.Requires(cultures.Any());

            Id               = id;
            Specifiers       = specifiers;
            AdditionalInfo   = additionalInfo;
            _nameProvider    = nameProvider;
            MappingProvider  = mappingProvider;
            MarketDefinition = marketDefinition;
            _cultures        = cultures;
        }