/// <summary> /// Merges the information from the provided <see cref="CompetitorProfileDTO" /> into the current instance /// </summary> /// <param name="competitorProfile">A <see cref="CompetitorProfileDTO" /> containing information about the competitor</param> /// <param name="culture">A <see cref="CultureInfo" /> specifying the language of the passed <code>dto</code></param> internal void Merge(CompetitorProfileDTO competitorProfile, CultureInfo culture) { Contract.Requires(competitorProfile != null); Contract.Requires(competitorProfile.Competitor != null); _isVirtual = competitorProfile.Competitor.IsVirtual; Names[culture] = competitorProfile.Competitor.Name; _countryNames[culture] = competitorProfile.Competitor.CountryName; _abbreviations[culture] = string.IsNullOrEmpty(competitorProfile.Competitor.Abbreviation) ? SdkInfo.GetAbbreviationFromName(competitorProfile.Competitor.Name) : competitorProfile.Competitor.Abbreviation; ReferenceId = UpdateReferenceIds(competitorProfile.Competitor.Id, competitorProfile.Competitor.ReferenceIds); _countryCode = competitorProfile.Competitor.CountryCode; if (competitorProfile.Players != null && competitorProfile.Players.Any()) { _associatedPlayerIds.Clear(); _associatedPlayerIds.AddRange(competitorProfile.Players.Select(s => s.Id)); } if (competitorProfile.Jerseys != null && competitorProfile.Jerseys.Any()) { _jerseys.Clear(); _jerseys.AddRange(competitorProfile.Jerseys.Select(s => new JerseyCI(s))); } if (competitorProfile.Manager != null) { if (_manager == null) { _manager = new ManagerCI(competitorProfile.Manager, culture); } else { _manager.Merge(competitorProfile.Manager, culture); } } if (competitorProfile.Venue != null) { if (_venue == null) { _venue = new VenueCI(competitorProfile.Venue, culture); } else { _venue.Merge(competitorProfile.Venue, culture); } } if (!string.IsNullOrEmpty(competitorProfile.Competitor.Gender)) { _gender = competitorProfile.Competitor.Gender; } ((List <CultureInfo>)_fetchedCultures).Add(culture); }
/// <summary> /// Merges the information from the provided <see cref="CompetitorProfileDTO"/> into the current instance /// </summary> /// <param name="competitorProfile">A <see cref="CompetitorProfileDTO"/> containing information about the competitor</param> /// <param name="culture">A <see cref="CultureInfo"/> specifying the language of the passed <code>dto</code></param> internal void Merge(CompetitorProfileDTO competitorProfile, CultureInfo culture) { Guard.Argument(competitorProfile, nameof(competitorProfile)).NotNull(); Guard.Argument(competitorProfile.Competitor, nameof(competitorProfile.Competitor)).NotNull(); _isVirtual = competitorProfile.Competitor.IsVirtual; Names[culture] = competitorProfile.Competitor.Name; _countryNames[culture] = competitorProfile.Competitor.CountryName; _abbreviations[culture] = string.IsNullOrEmpty(competitorProfile.Competitor.Abbreviation) ? SdkInfo.GetAbbreviationFromName(competitorProfile.Competitor.Name) : competitorProfile.Competitor.Abbreviation; _referenceId = UpdateReferenceIds(competitorProfile.Competitor.Id, competitorProfile.Competitor.ReferenceIds); _countryCode = competitorProfile.Competitor.CountryCode; _state = competitorProfile.Competitor.State; if (competitorProfile.Players != null && competitorProfile.Players.Any()) { _associatedPlayerIds.Clear(); _associatedPlayerIds.AddRange(competitorProfile.Players.Select(s => s.Id)); } if (competitorProfile.Jerseys != null && competitorProfile.Jerseys.Any()) { _jerseys.Clear(); _jerseys.AddRange(competitorProfile.Jerseys.Select(s => new JerseyCI(s))); } if (competitorProfile.Manager != null) { if (_manager == null) { _manager = new ManagerCI(competitorProfile.Manager, culture); } else { _manager.Merge(competitorProfile.Manager, culture); } } if (competitorProfile.Venue != null) { if (_venue == null) { _venue = new VenueCI(competitorProfile.Venue, culture); } else { _venue.Merge(competitorProfile.Venue, culture); } } if (!string.IsNullOrEmpty(competitorProfile.Competitor.Gender)) { _gender = competitorProfile.Competitor.Gender; } if (!string.IsNullOrEmpty(competitorProfile.Competitor.AgeGroup)) { _ageGroup = competitorProfile.Competitor.AgeGroup; } if (competitorProfile.RaceDriverProfile != null) { _raceDriverProfile = new RaceDriverProfileCI(competitorProfile.RaceDriverProfile); } if (competitorProfile.Players != null && competitorProfile.Players.Any()) { _lastTimeCompetitorProfileFetched = DateTime.Now; _cultureCompetitorProfileFetched.Add(culture); } if (competitorProfile.Competitor.SportId != null) { _sportId = competitorProfile.Competitor.SportId; } if (competitorProfile.Competitor.CategoryId != null) { _categoryId = competitorProfile.Competitor.CategoryId; } ((List <CultureInfo>)_fetchedCultures).Add(culture); }