namespace Lantean.QBitTorrentClient { public class FormUrlEncodedBuilder { private readonly IList> _parameters; public FormUrlEncodedBuilder() { _parameters = []; } public FormUrlEncodedBuilder(IList> parameters) { _parameters = parameters; } public FormUrlEncodedBuilder Add(string key, string value) { _parameters.Add(new KeyValuePair(key, value)); return this; } public FormUrlEncodedBuilder AddIfNotNullOrEmpty(string key, string? value) { if (!string.IsNullOrEmpty(value)) { _parameters.Add(new KeyValuePair(key, value)); } return this; } public FormUrlEncodedBuilder AddIfNotNullOrEmpty(string key, T? value) where T : struct { if (value.HasValue) { _parameters.Add(new KeyValuePair(key, value.ToString()!)); } return this; } public FormUrlEncodedContent ToFormUrlEncodedContent() { return new FormUrlEncodedContent(_parameters); } } }