|
7 | 7 | using Microsoft.Diagnostics.Monitoring.TestCommon;
|
8 | 8 | #endif
|
9 | 9 | using Microsoft.Diagnostics.Monitoring.WebApi;
|
| 10 | +using Microsoft.Diagnostics.Tools.Monitor.CollectionRules.Options; |
10 | 11 | using Microsoft.Extensions.Configuration;
|
11 | 12 | using System;
|
12 | 13 | using System.Collections.Generic;
|
@@ -95,6 +96,7 @@ private static void MapRootOptions(RootOptions obj, string prefix, string separa
|
95 | 96 | {
|
96 | 97 | // TODO: in Tests, it has an additional property. Weird.
|
97 | 98 | MapAuthenticationOptions(obj.Authentication, FormattableString.Invariant($"{prefix}{nameof(obj.Authentication)}"), separator, map);
|
| 99 | + MapCollectionRules(obj.CollectionRules, FormattableString.Invariant($"{prefix}{nameof(obj.CollectionRules)}"), separator, map); |
98 | 100 | // GlobalCounterOptions
|
99 | 101 | MapGlobalCounterOptions(obj.GlobalCounter, FormattableString.Invariant($"{prefix}{nameof(obj.GlobalCounter)}"), separator, map);
|
100 | 102 | // InProcessFeaturesOptions
|
@@ -126,6 +128,49 @@ private static void MapRootOptions(RootOptions obj, string prefix, string separa
|
126 | 128 | // }
|
127 | 129 | // }
|
128 | 130 |
|
| 131 | + private static void MapCollectionRules(IDictionary<string, CollectionRuleOptions>? obj, string valueName, string separator, IDictionary<string, string> map) |
| 132 | + { |
| 133 | + if (null != obj) |
| 134 | + { |
| 135 | + System.Console.WriteLine("MapCollectionRules"); |
| 136 | + var prefix = FormattableString.Invariant($"{valueName}{separator}"); // passed to mapdictionary. |
| 137 | + foreach ((string key, CollectionRuleOptions value) in obj) |
| 138 | + { |
| 139 | + string keyString = ConvertUtils.ToString(key, CultureInfo.InvariantCulture); |
| 140 | + System.Console.WriteLine($"key: {keyString}"); |
| 141 | + MapCollectionRuleOptions(value, FormattableString.Invariant($"{prefix}{keyString}"), separator, map); |
| 142 | + } |
| 143 | + } |
| 144 | + } |
| 145 | + |
| 146 | + private static void MapCollectionRuleOptions(CollectionRuleOptions obj, string valueName, string separator, IDictionary<string, string> map) |
| 147 | + { |
| 148 | + string prefix = FormattableString.Invariant($"{valueName}{separator}"); |
| 149 | + // MapFilters(obj.Filters, FormattableString.Invariant($"{prefix}{nameof(obj.Filters)}"), separator, map); |
| 150 | + // MapTrigger(obj.Trigger, FormattableString.Invariant($"{prefix}{nameof(obj.Trigger)}"), separator, map); |
| 151 | + MapActions(obj.Actions, FormattableString.Invariant($"{prefix}{nameof(obj.Actions)}"), separator, map); |
| 152 | + // MapLimits(obj.Limits, FormattableString.Invariant($"{prefix}{nameof(obj.Limits)}"), separator, map); |
| 153 | + } |
| 154 | + |
| 155 | + private static void MapActions(List<CollectionRuleActionOptions> obj, string valueName, string separator, IDictionary<string, string> map) |
| 156 | + { |
| 157 | + string prefix = FormattableString.Invariant($"{valueName}{separator}"); |
| 158 | + for (int index = 0; index < obj.Count; index++) |
| 159 | + { |
| 160 | + CollectionRuleActionOptions value = obj[index]; |
| 161 | + MapCollectionRuleActionOptions(value, FormattableString.Invariant($"{prefix}{index}"), separator, map); |
| 162 | + } |
| 163 | + } |
| 164 | + |
| 165 | + private static void MapCollectionRuleActionOptions(CollectionRuleActionOptions obj, string valueName, string separator, IDictionary<string, string> map) |
| 166 | + { |
| 167 | + string prefix = FormattableString.Invariant($"{valueName}{separator}"); |
| 168 | + MapString(obj.Name, FormattableString.Invariant($"{prefix}{nameof(obj.Name)}"), map); |
| 169 | + MapString(obj.Type, FormattableString.Invariant($"{prefix}{nameof(obj.Type)}"), map); |
| 170 | + // TODO: map object Settings |
| 171 | + MapBool(obj.WaitForCompletion, FormattableString.Invariant($"{prefix}{nameof(obj.WaitForCompletion)}"), map); |
| 172 | + } |
| 173 | + |
129 | 174 | private static void MapAuthenticationOptions(AuthenticationOptions? obj, string valueName, string separator, IDictionary<string, string> map)
|
130 | 175 | {
|
131 | 176 | if (null != obj)
|
|
0 commit comments