protected static string ExtensionCacheConverter(FilterBase filter, string suggestedAdProperty) { GlobalDebug.WriteLineIf(GlobalDebug.Info, "ADStoreCtx", "ExtensionCacheConverter "); StringBuilder query = new StringBuilder(); if (filter.Value != null) { ExtensionCache ec = (ExtensionCache)filter.Value; foreach (KeyValuePair <string, ExtensionCacheValue> kvp in ec.properties) { Type type = kvp.Value.Type ?? kvp.Value.Value.GetType(); GlobalDebug.WriteLineIf(GlobalDebug.Info, "ADStoreCtx", "ExtensionCacheConverter filter type " + type.ToString()); GlobalDebug.WriteLineIf(GlobalDebug.Info, "ADStoreCtx", "ExtensionCacheConverter match type " + kvp.Value.MatchType.ToString()); if (kvp.Value.Value is ICollection) { GlobalDebug.WriteLineIf(GlobalDebug.Info, "ADStoreCtx", "ExtensionCacheConverter encountered collection."); ICollection collection = (ICollection)kvp.Value.Value; foreach (object o in collection) { GlobalDebug.WriteLineIf(GlobalDebug.Info, "ADStoreCtx", "ExtensionCacheConverter collection filter type " + o.GetType().ToString()); query.Append(ExtensionTypeConverter(kvp.Key, o.GetType(), o, kvp.Value.MatchType)); } } else { query.Append(ExtensionTypeConverter(kvp.Key, type, kvp.Value.Value, kvp.Value.MatchType)); } } } GlobalDebug.WriteLineIf(GlobalDebug.Info, "ADStoreCtx", "ExtensionCacheConverter complete built filter " + query.ToString()); return(query.ToString()); }
protected Principal() { this.guid = null; this.extensionCache = new ExtensionCache(); }