private Dictionary <string, object> MapAndFilterResponseValues(ResponseValues responseValues) { var values = _settings.ResponseLogFields.Response.GetType().GetProperties() .Where(p => (bool)p.GetValue(_settings.ResponseLogFields.Response, null)) .ToDictionary( p => PrefixResponseField(p.Name), p => responseValues.GetType().GetProperty(p.Name)?.GetValue(responseValues, null) ); return(values); }
private Dictionary <string, object> CreateResponseLogScope( RequestValues requestValues, ResponseValues responseValues) { var mappedRequestValues = MapAndFilterResponseValues(requestValues); var namespacedRequestValues = NamespaceValues(mappedRequestValues, _settings.RequestFieldsNamespace); var mappedResponseValues = MapAndFilterResponseValues(responseValues); var namespacedResponseValues = NamespaceValues(mappedResponseValues, _settings.ResponseFieldsNamespace); var mergedValues = namespacedRequestValues .Union(namespacedResponseValues) .ToDictionary(x => x.Key, x => x.Value); var responseLogScope = NamespaceValues(mergedValues, _settings.AllFieldsNamespace); return(responseLogScope); }