Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }