comparison Source/Data/Linq/Builder/SqlInfo.cs @ 0:f990fcb411a9

Копия текущей версии из github
author cin
date Thu, 27 Mar 2014 21:46:09 +0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:f990fcb411a9
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Reflection;
5 using BLToolkit.Reflection;
6
7 namespace BLToolkit.Data.Linq.Builder
8 {
9 using Data.Sql;
10
11 public class SqlInfo
12 {
13 public ISqlExpression Sql;
14 public SqlQuery Query;
15 public int Index = -1;
16 public List<MemberInfo> Members = new List<MemberInfo>();
17
18 public SqlInfo()
19 {
20 }
21
22 public SqlInfo(MemberInfo mi)
23 {
24 Members.Add(mi);
25 }
26
27 public SqlInfo(IEnumerable<MemberInfo> mi)
28 {
29 Members.AddRange(mi);
30 }
31
32 public SqlInfo Clone()
33 {
34 return new SqlInfo(Members) { Sql = Sql, Query = Query, Index = Index };
35 }
36
37 public SqlInfo Clone(MemberInfo mi)
38 {
39 var info = Clone();
40 if (Members.Count == 0 || Members[0] != mi)
41 info.Members.Insert(0, mi);
42 else
43 {
44
45 }
46 return info;
47 }
48
49 public bool CompareMembers(SqlInfo info)
50 {
51 return Members.Count == info.Members.Count && !Members.Where((t, i) => !TypeHelper.Equals(t, info.Members[i])).Any();
52 }
53
54 public bool CompareLastMember(SqlInfo info)
55 {
56 return
57 Members.Count > 0 && info.Members.Count > 0 &&
58 TypeHelper.Equals(Members[Members.Count - 1], info.Members[info.Members.Count - 1]);
59 }
60 }
61 }