public static IEnumerable <string> Get_ElasticSearchFields(IModelElasticSearchField elasticSearchField)
 {
     if (elasticSearchField != null)
     {
         var modelElasticSearchFieldList = elasticSearchField.Parent as IModelElasticSearchFieldList;
         if (modelElasticSearchFieldList != null)
         {
             var modelElasticSearchFieldsItem = modelElasticSearchFieldList.Parent as IModelElasticSearchFieldsItem;
             if (modelElasticSearchFieldsItem != null)
             {
                 var typeInfo = modelElasticSearchFieldsItem.TypeInfo;
                 if (typeInfo != null && typeInfo.Type != null)
                 {
                     var esFields = new HashSet <string>();
                     foreach (var ti in typeInfo.DescendantsAndSelf(t => t.Descendants))
                     {
                         esFields.UnionWith(ElasticSearchClient.ElasticSearchFields(ti.Type, true));
                     }
                     return(esFields);
                 }
             }
         }
     }
     return(Enumerable.Empty <string>());
 }
コード例 #2
0
 /// <summary>
 /// Returns an Enumeration of potential ElasticSearch Field Names
 /// </summary>
 /// <param name="suggestContext">IModelMemberElasticSearchSuggestContext instance</param>
 /// <returns>Enumeration of potential ElasticSearch Field Names</returns>
 public static IEnumerable <string> Get_ElasticSearchFields(IModelMemberElasticSearchSuggestContext suggestContext)
 {
     if (suggestContext?.Parent?.Parent is IModelElasticSearchFieldProperties esProperties)
     {
         if (!(esProperties.Parent is IModelMember member))
         {
             var fields = esProperties.Parent as IModelMemberElasticSearchFields;
             member = fields?.Parent?.Parent as IModelMember;
         }
         if (member?.ModelClass?.TypeInfo?.Type != null)
         {
             var esFields = new HashSet <string>();
             foreach (var ti in member.ModelClass.TypeInfo.DescendantsAndSelf(t => t.Descendants))
             {
                 esFields.UnionWith(ElasticSearchClient.ElasticSearchFields(ti.Type, false));
             }
             return(esFields);
         }
     }
     return(Enumerable.Empty <string>());
 }