Mercurial > pub > bltoolkit
comparison Source/Mapping/RelationAttribute.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 | |
4 namespace BLToolkit.Mapping | |
5 { | |
6 | |
7 [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, Inherited = true, AllowMultiple = false)] | |
8 public sealed class RelationAttribute : Attribute | |
9 { | |
10 #region Constructors | |
11 | |
12 public RelationAttribute() | |
13 { | |
14 } | |
15 | |
16 public RelationAttribute(Type destination) | |
17 { | |
18 _destination = destination; | |
19 } | |
20 | |
21 public RelationAttribute(string slaveIndex) | |
22 { | |
23 SlaveIndex1 = slaveIndex; | |
24 } | |
25 | |
26 public RelationAttribute(string slaveIndex, string masterIndex) | |
27 : this(slaveIndex) | |
28 { | |
29 MasterIndex1 = masterIndex; | |
30 } | |
31 | |
32 public RelationAttribute(Type destination, string slaveIndex) | |
33 : this(destination) | |
34 { | |
35 SlaveIndex1 = slaveIndex; | |
36 } | |
37 | |
38 public RelationAttribute(Type destination, string slaveIndex, string masterIndex) | |
39 : this(destination) | |
40 { | |
41 SlaveIndex1 = slaveIndex; | |
42 MasterIndex1 = masterIndex; | |
43 } | |
44 | |
45 #endregion | |
46 | |
47 private Type _destination; | |
48 public Type Destination { get { return _destination; } } | |
49 | |
50 private string _masterIndex1; | |
51 public string MasterIndex1 { get { return _masterIndex1; } set { _masterIndex1 = value; } } | |
52 | |
53 private string _masterIndex2; | |
54 public string MasterIndex2 { get { return _masterIndex2; } set { _masterIndex2 = value; } } | |
55 | |
56 private string _masterIndex3; | |
57 public string MasterIndex3 { get { return _masterIndex3; } set { _masterIndex3 = value; } } | |
58 | |
59 private string _slaveIndex1; | |
60 public string SlaveIndex1 { get { return _slaveIndex1; } set { _slaveIndex1 = value; } } | |
61 | |
62 private string _slaveIndex2; | |
63 public string SlaveIndex2 { get { return _slaveIndex2; } set { _slaveIndex2 = value; } } | |
64 | |
65 private string _slaveIndex3; | |
66 public string SlaveIndex3 { get { return _slaveIndex3; } set { _slaveIndex3 = value; } } | |
67 | |
68 public MapIndex MasterIndex | |
69 { | |
70 get | |
71 { | |
72 List<String> index = new List<string>(); | |
73 | |
74 AddIndex(index, MasterIndex1); | |
75 AddIndex(index, MasterIndex2); | |
76 AddIndex(index, MasterIndex3); | |
77 | |
78 if (index.Count == 0) | |
79 return null; | |
80 | |
81 return new MapIndex(index.ToArray()); | |
82 } | |
83 } | |
84 | |
85 public MapIndex SlaveIndex | |
86 { | |
87 get | |
88 { | |
89 List<String> index = new List<string>(); | |
90 | |
91 AddIndex(index, SlaveIndex1); | |
92 AddIndex(index, SlaveIndex2); | |
93 AddIndex(index, SlaveIndex3); | |
94 | |
95 if (index.Count == 0) | |
96 return null; | |
97 | |
98 return new MapIndex(index.ToArray()); | |
99 } | |
100 } | |
101 | |
102 private void AddIndex(List<string> index, string field) | |
103 { | |
104 if (!string.IsNullOrEmpty(field)) | |
105 index.Add(field); | |
106 } | |
107 } | |
108 } |