// Add the given parameter to the list. Remove if date is null. private void SetDate(string parameter, DateTimeOffset?date) { NameValueHeaderValue dateParameter = NameValueHeaderValue.Find(_parameters, parameter); if (date == null) { // Remove parameter. if (dateParameter != null) { _parameters.Remove(dateParameter); } } else { // Must always be quoted. string dateString = "\"" + HttpRuleParser.DateToString(date.Value) + "\""; if (dateParameter != null) { dateParameter.Value = dateString; } else { Parameters.Add(new NameValueHeaderValue(parameter, dateString)); } } }
internal static void SetQuality(ObjectCollection <NameValueHeaderValue> parameters, double?value) { Debug.Assert(parameters != null); NameValueHeaderValue qualityParameter = NameValueHeaderValue.Find(parameters, qualityName); if (value.HasValue) { // Note that even if we check the value here, we can't prevent a user from adding an invalid quality // value using Parameters.Add(). Even if we would prevent the user from adding an invalid value // using Parameters.Add() he could always add invalid values using HttpHeaders.AddWithoutValidation(). // So this check is really for convenience to show users that they're trying to add an invalid // value. if ((value < 0) || (value > 1)) { throw new ArgumentOutOfRangeException(nameof(value)); } string qualityString = ((double)value).ToString("0.0##", NumberFormatInfo.InvariantInfo); if (qualityParameter != null) { qualityParameter.Value = qualityString; } else { parameters.Add(new NameValueHeaderValue(qualityName, qualityString)); } } else { // Remove quality parameter if (qualityParameter != null) { parameters.Remove(qualityParameter); } } }