Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ IsConstraintViolated()

override bool System.Data.UniqueConstraint.IsConstraintViolated ( )
inlinepackage

Definition at line 189 of file UniqueConstraint.cs.

190 {
191 bool result = false;
192 Index constraintIndex = ConstraintIndex;
193 if (constraintIndex.HasDuplicates)
194 {
195 object[] uniqueKeyValues = constraintIndex.GetUniqueKeyValues();
196 for (int i = 0; i < uniqueKeyValues.Length; i++)
197 {
198 Range range = constraintIndex.FindRecords((object[])uniqueKeyValues[i]);
199 if (1 >= range.Count)
200 {
201 continue;
202 }
203 DataRow[] rows = constraintIndex.GetRows(range);
204 string text = ExceptionBuilder.UniqueConstraintViolationText(_key.ColumnsReference, (object[])uniqueKeyValues[i]);
205 for (int j = 0; j < rows.Length; j++)
206 {
207 rows[j].RowError = text;
208 DataColumn[] columnsReference = _key.ColumnsReference;
209 foreach (DataColumn column in columnsReference)
210 {
211 rows[j].SetColumnError(column, text);
212 }
213 }
214 result = true;
215 }
216 }
217 return result;
218 }
object[] GetUniqueKeyValues()
Definition Index.cs:408
DataColumn[] ColumnsReference
Definition DataKey.cs:7

References System.Data.UniqueConstraint._key, System.Data.DataKey.ColumnsReference, System.Data.UniqueConstraint.ConstraintIndex, System.Data.Range.Count, System.Data.Index.FindRecords(), System.Data.Index.GetRows(), System.Data.Index.GetUniqueKeyValues(), System.Data.Index.HasDuplicates, System.Data.DataRow.RowError, System.Data.DataRow.SetColumnError(), System.text, and System.Data.ExceptionBuilder.UniqueConstraintViolationText().