コード例 #1
0
ファイル: DefaultCursor.cs プロジェクト: anlei-fu/Jasmine
        private List <ResolveItem> createResolveItems(QueryResultContext context, TableMetaData table)
        {
            var ls = new List <ResolveItem>();

            // iterate all column in result table
            foreach (var item in context.ResultTable.Columns.Values)
            {
                var segs = item.Name.Splite1WithCount("_");
                //may be self column or join table 's column
                if (segs.Count == 1)
                {
                    //self
                    if (table.Columns.ContainsKey(item.Name))
                    {
                        ls.Add(new ResolveItem()
                        {
                            Parent       = "",
                            PropertyName = table.Columns[item.Name].PorpertyName,
                            Setter       = table.Columns[item.Name].Setter,
                            PropertyType = table.Columns[item.Name].RelatedType,
                            ColumnIndex  = item.Index
                        });
                    }
                    //search join table
                    else
                    {
                        var result = resolveJoinTable(item, table, "");

                        if (result != null)
                        {
                            ls.Add(result);
                        }
                    }
                }
                else
                {
                    //search self join columns
                    var result = resolveJoinColumn(item, table, segs.ToArray(), "");

                    if (result != null)
                    {
                        ls.Add(result);

                        continue;
                    }

                    // search join table  join column
                    result = resolveJoinTableJoinColumn(item, table, segs.ToArray(), "");

                    if (ls != null)
                    {
                        ls.Add(result);
                    }
                }
            }

            return(ls);
        }
コード例 #2
0
ファイル: DefaultCursor.cs プロジェクト: anlei-fu/Jasmine
 internal DefaultCursor(QueryResultContext context)
 {
     _context = context;
 }
コード例 #3
0
 public SearchContext(TypeContext typeContext, PagedSearchRequest request, QueryContext queryContext, QueryResultContext queryResultContext)
 {
     this.TargetTypeContext  = typeContext;
     this.Request            = request;
     this.QueryContext       = queryContext;
     this.QueryResultContext = queryResultContext;
 }