public override FactBaseQuery GetQuery(Taxonomy taxonomy, Hierarchy <XbrlIdentifiable> currentfilter, FactBaseQuery parent) { //Console.WriteLine(String.Format("TypedDimensionFilter.GetQuery( {0} ) ", currentfilter.Item)); var query = new FactBaseQuery(); var factparts = taxonomy.FactParts; var typeddomain = taxonomy.FindDimensionDomain(this.Dimension.QName.Content); // var td = taxonomy.TypedDimensions.FirstOrDefault(i => i.Key.EndsWith(":" + this.Dimension.QName.Value)); var domainpart = typeddomain.Namespace + ":" + typeddomain.Name; var tag = String.Format("[{0}:{1}]{2}", this.Dimension.QName.Domain, this.Dimension.QName.Value, domainpart); if (!Complement) { //var tag = String.Format(":{0}]", this.Dimension.QName.Value); query.TrueFilters = query.TrueFilters + String.Format("{0}, ", tag); if (factparts.ContainsKey(tag)) { query.DictFilterIndexes.Add(factparts[tag]); } } else { //var tag = String.Format(":{0}]", this.Dimension.QName.Value); query.FalseFilters = query.FalseFilters + String.Format("{0} ", tag); if (factparts.ContainsKey(tag)) { query.NegativeDictFilterIndexes.Add(factparts[tag]); } } SetCover(query); return(query); }