// Accidentally quadratic, I know. // But n is small and I like the ergonomics of doing it this way. public HttpResponse SetHeader(string name, string value) { int?found = null; if (ExtraHeaders == null) { ExtraHeaders = new List <HttpHeader>(); } else { for (int i = 0; i < ExtraHeaders.Count; i++) { if (ExtraHeaders[i].Name == name) { found = i; break; } } } var header = new HttpHeader { Name = name, Value = value }; if (found.HasValue) { ExtraHeaders[found.Value] = header; } else { ExtraHeaders.Add(header); } return(this); }
public DenialException(HttpStatusCode statusCode, string errorCode, params object[] parameters) : base(errorCode) { ContentValue = new ExceptionContent { ErrorCode = errorCode, Parameters = parameters }; StatusCode = statusCode; ExtraHeaders.Add("Status-Reason", "validation-failed"); }
/// <summary> /// Adds a header. Note that this will not override the header if it was already set - both /// instances will be sent. Therefore, you should use this only for headers that may be /// duplicated (according to HTTP) and SetHeader() for everything else. /// </summary> /// <param name="name">The header name.</param> /// <param name="value">The header value.</param> /// <returns>The modified HttpResponse.</returns> public HttpResponse AddHeader(string name, string value) { if (ExtraHeaders == null) { ExtraHeaders = new List <HttpHeader>(); } ExtraHeaders.Add(new HttpHeader { Name = name, Value = value }); return(this); }