Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DataTableMapping.cs
Go to the documentation of this file.
6
7namespace System.Data.Common;
8
9[TypeConverter(typeof(DataTableMappingConverter))]
11{
13 {
14 public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
15 {
16 if (typeof(InstanceDescriptor) == destinationType)
17 {
18 return true;
19 }
20 return base.CanConvertTo(context, destinationType);
21 }
22
23 public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
24 {
25 if (null == destinationType)
26 {
27 throw ADP.ArgumentNull("destinationType");
28 }
29 if (typeof(InstanceDescriptor) == destinationType && value is DataTableMapping)
30 {
31 DataTableMapping dataTableMapping = (DataTableMapping)value;
33 dataTableMapping.ColumnMappings.CopyTo(array, 0);
34 object[] arguments = new object[3] { dataTableMapping.SourceTable, dataTableMapping.DataSetTable, array };
35 Type[] types = new Type[3]
36 {
37 typeof(string),
38 typeof(string),
39 typeof(DataColumnMapping[])
40 };
41 ConstructorInfo constructor = typeof(DataTableMapping).GetConstructor(types);
42 return new InstanceDescriptor(constructor, arguments);
43 }
44 return base.ConvertTo(context, culture, value, destinationType);
45 }
46 }
47
49
51
52 private string _dataSetTableName;
53
54 private string _sourceTableName;
55
56 IColumnMappingCollection ITableMapping.ColumnMappings => ColumnMappings;
57
60 {
61 get
62 {
63 DataColumnMappingCollection dataColumnMappingCollection = _columnMappings;
64 if (dataColumnMappingCollection == null)
65 {
66 dataColumnMappingCollection = (_columnMappings = new DataColumnMappingCollection());
67 }
68 return dataColumnMappingCollection;
69 }
70 }
71
72 [DefaultValue("")]
73 public string DataSetTable
74 {
75 get
76 {
77 return _dataSetTableName ?? string.Empty;
78 }
79 [param: AllowNull]
80 set
81 {
83 }
84 }
85
87 {
88 get
89 {
90 return _parent;
91 }
92 set
93 {
94 _parent = value;
95 }
96 }
97
98 [DefaultValue("")]
99 public string SourceTable
100 {
101 get
102 {
103 return _sourceTableName ?? string.Empty;
104 }
105 [param: AllowNull]
106 set
107 {
108 if (Parent != null && ADP.SrcCompare(_sourceTableName, value) != 0)
109 {
111 }
113 }
114 }
115
117 {
118 }
119
120 public DataTableMapping(string? sourceTable, string? dataSetTable)
121 {
122 SourceTable = sourceTable;
123 DataSetTable = dataSetTable;
124 }
125
126 public DataTableMapping(string? sourceTable, string? dataSetTable, DataColumnMapping[]? columnMappings)
127 {
128 SourceTable = sourceTable;
129 DataSetTable = dataSetTable;
130 if (columnMappings != null && columnMappings.Length != 0)
131 {
132 ColumnMappings.AddRange(columnMappings);
133 }
134 }
135
137 {
138 DataTableMapping dataTableMapping = new DataTableMapping();
139 dataTableMapping._dataSetTableName = _dataSetTableName;
140 dataTableMapping._sourceTableName = _sourceTableName;
141 if (_columnMappings != null && 0 < ColumnMappings.Count)
142 {
143 DataColumnMappingCollection columnMappings = dataTableMapping.ColumnMappings;
144 foreach (ICloneable columnMapping in ColumnMappings)
145 {
146 columnMappings.Add(columnMapping.Clone());
147 }
148 }
149 return dataTableMapping;
150 }
151
152 [EditorBrowsable(EditorBrowsableState.Advanced)]
153 public DataColumn? GetDataColumn(string sourceColumn, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.PublicProperties)] Type? dataType, DataTable dataTable, MissingMappingAction mappingAction, MissingSchemaAction schemaAction)
154 {
155 return DataColumnMappingCollection.GetDataColumn(_columnMappings, sourceColumn, dataType, dataTable, mappingAction, schemaAction);
156 }
157
158 [EditorBrowsable(EditorBrowsableState.Advanced)]
160 {
162 }
163
164 [EditorBrowsable(EditorBrowsableState.Advanced)]
166 {
167 if (dataSet == null)
168 {
169 throw ADP.ArgumentNull("dataSet");
170 }
171 string dataSetTable = DataSetTable;
172 if (string.IsNullOrEmpty(dataSetTable))
173 {
174 return null;
175 }
176 DataTableCollection tables = dataSet.Tables;
177 int num = tables.IndexOf(dataSetTable);
178 if (0 <= num && num < tables.Count)
179 {
180 return tables[num];
181 }
182 switch (schemaAction)
183 {
185 case MissingSchemaAction.AddWithKey:
186 return new DataTable(dataSetTable);
187 case MissingSchemaAction.Ignore:
188 return null;
189 case MissingSchemaAction.Error:
190 throw ADP.MissingTableSchema(dataSetTable, SourceTable);
191 default:
192 throw ADP.InvalidMissingSchemaAction(schemaAction);
193 }
194 }
195
196 public override string ToString()
197 {
198 return SourceTable;
199 }
200}
static ArgumentNullException ArgumentNull(string parameter)
Definition ADP.cs:699
static int SrcCompare(string strA, string strB)
Definition ADP.cs:651
static InvalidOperationException MissingTableSchema(string cacheTable, string srcTable)
Definition ADP.cs:218
static ArgumentOutOfRangeException InvalidMissingSchemaAction(MissingSchemaAction value)
Definition ADP.cs:134
static ? DataColumn GetDataColumn(DataColumnMappingCollection? columnMappings, string sourceColumn, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields|DynamicallyAccessedMemberTypes.PublicProperties)] Type? dataType, DataTable dataTable, MissingMappingAction mappingAction, MissingSchemaAction schemaAction)
static ? DataColumnMapping GetColumnMappingBySchemaAction(DataColumnMappingCollection? columnMappings, string sourceColumn, MissingMappingAction mappingAction)
override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
DataTable? GetDataTableBySchemaAction(DataSet dataSet, MissingSchemaAction schemaAction)
DataColumn? GetDataColumn(string sourceColumn, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields|DynamicallyAccessedMemberTypes.PublicProperties)] Type? dataType, DataTable dataTable, MissingMappingAction mappingAction, MissingSchemaAction schemaAction)
DataTableMappingCollection _parent
IColumnMappingCollection ITableMapping. ColumnMappings
DataTableMappingCollection? Parent
DataColumnMappingCollection _columnMappings
DataColumnMapping? GetColumnMappingBySchemaAction(string sourceColumn, MissingMappingAction mappingAction)
DataTableMapping(string? sourceTable, string? dataSetTable, DataColumnMapping[]? columnMappings)
DataTableMapping(string? sourceTable, string? dataSetTable)
DataTableCollection Tables
Definition DataSet.cs:396
void CopyTo(Array array, int index)
IColumnMapping Add(string sourceColumnName, string dataSetColumnName)