private string ApplyHttpHeaderRules(string httpHeader, HttpHeaderType headerType, string httpRequestVerb, string lineBreak) { try { var availableRules = (from o in _route.HttpHeaderRules.List where (o.HeaderType == headerType || o.HeaderType == HttpHeaderType.Any) && (o.Verb.ToString().ToUpper() == httpRequestVerb.ToUpper() || o.Verb == HttpVerb.Any) && o.Enabled == true select o).ToList(); foreach (var rule in availableRules) { if (rule.Action == HttpHeaderAction.Upsert) { httpHeader = HttpUtility.UpsertHttpHostHeaderValue(httpHeader, rule.Name, rule.Value, lineBreak); } else if (rule.Action == HttpHeaderAction.Update) { httpHeader = HttpUtility.UpdateHttpHostHeaderValue(httpHeader, rule.Name, rule.Value, lineBreak); } else if (rule.Action == HttpHeaderAction.Insert) { httpHeader = HttpUtility.InsertHttpHostHeaderValue(httpHeader, rule.Name, rule.Value, lineBreak); } else if (rule.Action == HttpHeaderAction.Delete) { httpHeader = HttpUtility.DeleteHttpHostHeaderValue(httpHeader, rule.Name, lineBreak); } else { throw new NotImplementedException(); } } } catch (Exception ex) { Singletons.EventLog.WriteEvent(new EventLogging.EventPayload { Severity = EventLogging.Severity.Error, CustomText = "Failed to process HTTP Header rules.", Exception = ex }); } return(httpHeader); }