public override void WriteJson(JsonWriter writer, LeaguePlayer?value, JsonSerializer serializer)
        {
            if (value == null)
            {
                return;
            }

            var retrievalConfiguration = LgoLeaguePlayerRetrievalConfiguration.GetCurrentOrDefault();

            writer.WriteStartObject();

            base.WriteJson(writer, value, serializer);

            if (retrievalConfiguration.IncludeSummonerName)
            {
                writer.WritePropertyName(JsonSerializationHelper.GetPropertyName(value.GetType(), nameof(value.SummonerName)));
                serializer.Serialize(writer, value.SummonerName);
            }

            if (retrievalConfiguration.IncludeTeam)
            {
                writer.WritePropertyName(JsonSerializationHelper.GetPropertyName(value.GetType(), nameof(value.Team)));
                serializer.Serialize(writer, value.Team);
            }

            if (retrievalConfiguration.IncludeChampion)
            {
                writer.WritePropertyName(JsonSerializationHelper.GetPropertyName(value.GetType(), nameof(value.Champion)));
                serializer.Serialize(writer, value.Champion);
            }

            if (retrievalConfiguration.IncludeItems)
            {
                writer.WritePropertyName(JsonSerializationHelper.GetPropertyName(value.GetType(), nameof(value.Items)));
                serializer.Serialize(writer, value.Items);
            }

            writer.WriteEndObject();
        }
 public Builder With(LgoLeaguePlayerRetrievalConfiguration configuration)
 {
     _context.AddOrUpdateProperty(LgoLeaguePlayerRetrievalConfiguration.RequestExecutionContextPropertyName, _ => configuration, (_, _) => configuration);
     return(this);
 }