public void BuildHeader(IHeaderRegion region, string content) { var hasEmptyHeaders = region.Headers?.Any(value => !string.IsNullOrEmpty(value.Name)) ?? false; if (hasEmptyHeaders) { return; } var isValidJson = content?.IsValidJson() ?? false; if (isValidJson) { var jsonHeader = new NameValue(GlobalConstants.ContentType, GlobalConstants.ApplicationJsonHeader); SetupHeader(region, jsonHeader); } else { var isValidXml = content.IsValidXml(); if (isValidXml) { var jsonHeader = new NameValue(GlobalConstants.ContentType, GlobalConstants.ApplicationXmlHeader); SetupHeader(region, jsonHeader); } } }
public void BuildHeader(IHeaderRegion region, string content) { var hasEmptyHeaders = region.Headers?.Any(value => !string.IsNullOrEmpty(value.Name)) ?? false; if (hasEmptyHeaders) { return; } var isValidJson = content?.IsValidJson() ?? false; if (isValidJson && !(content == "{}")) { var jsonHeader = new NameValue(GlobalConstants.ContentType, GlobalConstants.ApplicationJsonHeader); region.Headers = new ObservableCollection <INameValue> { jsonHeader, new NameValue() }; } else { var isValidXml = content.IsValidXml(); if (isValidXml) { var jsonHeader = new NameValue(GlobalConstants.ContentType, GlobalConstants.ApplicationXmlHeader); region.Headers = new ObservableCollection <INameValue> { jsonHeader, new NameValue() }; } } }
static void SetupHeader(IHeaderRegion region, NameValue jsonHeader) { if (region.Headers == null || region.Headers.All(value => string.IsNullOrEmpty(value.Value) && string.IsNullOrEmpty(value.Name))) { region.Headers = new ObservableCollection <INameValue> { jsonHeader, new NameValue() }; } else { bool ExistingHeaders(INameValue value) => value.Name.Equals(jsonHeader.Name, StringComparison.InvariantCultureIgnoreCase) && value.Value.Equals(jsonHeader.Value, StringComparison.InvariantCultureIgnoreCase); var emptyHeader = region.Headers.FirstOrDefault(value => string.IsNullOrEmpty(value.Name) && string.IsNullOrEmpty(value.Value)); region.Headers.Remove(emptyHeader); if (!region.Headers.Any(ExistingHeaders)) { region.Headers.Add(jsonHeader); } region.Headers.Add(emptyHeader); } }