void FetchValuesFromView() { // Using a dictionary here, because I don't have a 'hash set' available. var usedLinkValues = new com.magicsoftware.util.MgHashSet <FieldValue>(); displayValues = new List <string>(); linkValues = new List <string>(); nullValueFlags = new List <bool>(); linkType = StorageAttribute.NONE; DbPos pos = new DbPos(true); view.OpenCursor(false, pos, BoudariesFlags.Range); while (view.CursorFetch().Success) { linkType = (StorageAttribute)valueField.Attr; FieldValue linkValue = view.GetFieldValue(valueField); // According to Online and RC-non-offline behavior, null link values should not // be added to the data control. The server does not send them at all. if (!linkValue.IsNull && !usedLinkValues.Contains(linkValue)) { nullValueFlags.Add(false); linkValues.Add(linkValue.Value.ToString()); displayValues.Add(ConvertToDisplayValue(view.GetFieldValue(displayField))); usedLinkValues.Add(linkValue.Clone()); } } view.CloseCursor(); }
public void CloneWithId() { FieldValue fieldValue = new FieldValue("Field", "Value", 100); FieldValue clone = fieldValue.Clone(); Assert.That(clone, Is.Not.Null); Assert.That(clone.Name, Is.EqualTo(fieldValue.Name)); Assert.That(clone.Value, Is.EqualTo(fieldValue.Value)); Assert.That(clone.Id, Is.EqualTo(fieldValue.Id)); }