public static Boolean ContainsAll(this contentTokenFlag flags, params contentTokenFlag[] tests) { foreach (contentTokenFlag f in tests) { if (flags.HasFlag(f)) { return(false); } } return(true); }
/// <summary> /// Explores the token. /// </summary> /// <param name="query">The query.</param> /// <returns></returns> public override tokenQueryResponse exploreToken(tokenQuery query) { getReady(); tokenQueryResponse response = new tokenQueryResponse(query, tokenQuerySourceEnum.ext_dict); List <DataRow> matches = new List <DataRow>(); String expression = ""; foreach (DataTable dt in namedEntityDataSet.Tables) { expression = ""; if (query.focus == contentTokenFlag.none) { expression = dt.ExtendedProperties.getProperString(tokenResultEnum.query).Replace("".t(tokenResultEnum.needle), query.token); } else { contentTokenFlag table_focus = (contentTokenFlag)dt.ExtendedProperties[tokenResultEnum.tokenFlag]; //.getProperEnum<contentTokenFlag>(contentTokenFlag.namedEntityKnown, ); if (table_focus.HasFlag(query.focus)) { expression = dt.ExtendedProperties.getProperString(tokenResultEnum.query).Replace("".t(tokenResultEnum.needle), query.token); } } if (expression != "") { matches.AddRange(dt.Select(expression)); } } foreach (DataRow dr in matches) { var fl = (contentTokenFlag)dr.Table.ExtendedProperties[tokenResultEnum.tokenFlag]; response.flags.AddInstanceRange(fl.getEnumListFromFlags <contentTokenFlag>()); response.dataRows.Add(dr); foreach (DataColumn dc in dr.Table.Columns) { response.dataTokens.AddRangeUnique(dr[dc].toStringSafe().getTokens()); } } if (response.flags.Count > 0) { response.setResponse("Known entity", "Flags earned: " + response.flags.toCsvInLine(";")); } else { response.setResponse(tokenQueryResultEnum.unknown_token); } return(response); }