/// <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); }
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)); }
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); }
/// <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); }
/// <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); }