/// <summary>
        /// Merges the specified <see cref="PlayerCompetitorDTO"/> into instance
        /// </summary>
        /// <param name="playerCompetitor">The <see cref="PlayerCompetitorDTO"/> used to merge into instance</param>
        /// <param name="competitorId">The competitor id this player belongs to</param>
        /// <param name="culture">The culture of the <see cref="PlayerCompetitorDTO"/> used to merge</param>
        internal void Merge(PlayerCompetitorDTO playerCompetitor, URN competitorId, CultureInfo culture)
        {
            Guard.Argument(playerCompetitor, nameof(playerCompetitor)).NotNull();
            Guard.Argument(culture, nameof(culture)).NotNull();

            Names[culture]          = playerCompetitor.Name;
            _nationalities[culture] = playerCompetitor.Nationality;
            _abbreviation           = string.IsNullOrEmpty(playerCompetitor.Abbreviation)
                ? SdkInfo.GetAbbreviationFromName(playerCompetitor.Name)
                : playerCompetitor.Abbreviation;

            if (competitorId != null)
            {
                _competitorId = competitorId;
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="PlayerProfileCI"/> class
        /// </summary>
        /// <param name="playerCompetitor">The <see cref="PlayerCompetitorDTO"/> used to create instance</param>
        /// <param name="competitorId">The competitor id this player belongs to</param>
        /// <param name="culture">The culture of the <see cref="PlayerCompetitorDTO"/> used to create new instance</param>
        /// <param name="dataRouterManager">The <see cref="IDataRouterManager"/> used to fetch <see cref="PlayerCompetitorDTO"/></param>
        internal PlayerProfileCI(PlayerCompetitorDTO playerCompetitor, URN competitorId, CultureInfo culture, IDataRouterManager dataRouterManager)
            : base(playerCompetitor)
        {
            Guard.Argument(playerCompetitor, nameof(playerCompetitor)).NotNull();
            Guard.Argument(culture, nameof(culture)).NotNull();
            Guard.Argument(dataRouterManager, nameof(dataRouterManager)).NotNull();

            _fetchedCultures = new List <CultureInfo>();
            _primaryCulture  = culture;

            _dataRouterManager = dataRouterManager;

            Names          = new Dictionary <CultureInfo, string>();
            _nationalities = new Dictionary <CultureInfo, string>();
            Merge(playerCompetitor, competitorId, culture);
        }
Пример #3
0
        public void PlayerCompetitorNewCultureTest()
        {
            var playerCompetitorDTO = new PlayerCompetitorDTO(_defaultPlayerCompetitor);

            Assert.IsNotNull(playerCompetitorDTO);

            var playerProfileCI = new PlayerProfileCI(playerCompetitorDTO, _competitorId, _cultureFirst, _dataRouterManager);

            Assert.IsNotNull(playerProfileCI);

            Assert.AreEqual(_defaultPlayerCompetitor.id, playerProfileCI.Id.ToString());
            Assert.AreEqual(_defaultPlayerCompetitor.name, playerProfileCI.GetName(_cultureFirst));
            Assert.AreEqual(_defaultPlayerCompetitor.nationality, playerProfileCI.GetNationality(_cultureFirst));
            Assert.AreEqual(_defaultPlayerCompetitor.abbreviation, playerProfileCI.Abbreviation);

            Assert.IsNull(playerProfileCI.GetName(_cultureSecond));
            Assert.IsNull(playerProfileCI.GetNationality(_cultureSecond));
        }
Пример #4
0
        public void PlayerCompetitorExportImportTest()
        {
            var playerCompetitorDTO = new PlayerCompetitorDTO(_defaultPlayerCompetitor);
            var playerProfileCI     = new PlayerProfileCI(playerCompetitorDTO, _competitorId, _cultureFirst, _dataRouterManager);

            var exportable = playerProfileCI.ExportAsync().Result;

            Assert.IsNotNull(exportable);
            var json = JsonConvert.SerializeObject(exportable, new JsonSerializerSettings {
                TypeNameHandling = TypeNameHandling.All
            });
            var importable       = JsonConvert.DeserializeObject <ExportablePlayerProfileCI>(json);
            var playerProfileCI2 = new PlayerProfileCI(importable, _dataRouterManager);

            Assert.IsNotNull(playerProfileCI2);

            Compare(playerProfileCI, playerProfileCI2);
        }
Пример #5
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="CompetitorCI" /> class
        /// </summary>
        /// <param name="playerCompetitor">A <see cref="PlayerCompetitorDTO" /> containing information about the competitor</param>
        /// <param name="culture">A <see cref="CultureInfo" /> specifying the language of the passed <code>dto</code></param>
        /// <param name="dataRouterManager">
        ///     The <see cref="IDataRouterManager" /> used to fetch <see cref="CompetitorDTO" />
        /// </param>
        internal CompetitorCI(PlayerCompetitorDTO playerCompetitor, CultureInfo culture,
                              IDataRouterManager dataRouterManager)
            : base(playerCompetitor)
        {
            Contract.Requires(playerCompetitor != null);
            Contract.Requires(culture != null);
            Contract.Requires(dataRouterManager != null);

            _fetchedCultures = new List <CultureInfo>();
            _primaryCulture  = culture;

            _dataRouterManager = dataRouterManager;

            Names                = new Dictionary <CultureInfo, string>();
            _countryNames        = new Dictionary <CultureInfo, string>();
            _abbreviations       = new Dictionary <CultureInfo, string>();
            _associatedPlayerIds = new List <URN>();
            _jerseys             = new List <JerseyCI>();
            Merge(playerCompetitor, culture);
        }
Пример #6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CompetitorCI"/> class
        /// </summary>
        /// <param name="playerCompetitor">A <see cref="PlayerCompetitorDTO"/> containing information about the competitor</param>
        /// <param name="culture">A <see cref="CultureInfo"/> specifying the language of the passed <code>dto</code></param>
        /// <param name="dataRouterManager">The <see cref="IDataRouterManager"/> used to fetch <see cref="CompetitorDTO"/></param>
        internal CompetitorCI(PlayerCompetitorDTO playerCompetitor, CultureInfo culture, IDataRouterManager dataRouterManager)
            : base(playerCompetitor)
        {
            Guard.Argument(playerCompetitor, nameof(playerCompetitor)).NotNull();
            Guard.Argument(culture, nameof(culture)).NotNull();
            Guard.Argument(dataRouterManager, nameof(dataRouterManager)).NotNull();

            _fetchedCultures = new List <CultureInfo>();
            _primaryCulture  = culture;

            _dataRouterManager = dataRouterManager;

            Names                = new Dictionary <CultureInfo, string>();
            _countryNames        = new Dictionary <CultureInfo, string>();
            _abbreviations       = new Dictionary <CultureInfo, string>();
            _associatedPlayerIds = new List <URN>();
            _jerseys             = new List <JerseyCI>();
            _lastTimeCompetitorProfileFetched = DateTime.MinValue;
            _cultureCompetitorProfileFetched  = new List <CultureInfo>();
            Merge(playerCompetitor, culture);
        }