public ExistingRecordData(ListItemId listItemId, object primaryKey, bool hasSeparateDisplayValue, object displayValue) { ListItemId = listItemId; _pkValue = primaryKey; _displayValue = displayValue ?? _pkValue; _hasSeparateDisplayValue = hasSeparateDisplayValue; }
public ListData AddRow(IDictionary <string, object> values, out ListItemId newItemId) { if (_ids.Count == 0) { newItemId = new ListItemId(1); } else { newItemId = new ListItemId(_ids[_ids.Count - 1].IntValue + 1); } var newIds = ImmutableList.ValueOf(_ids.Concat(new[] { newItemId })); return(ChangeProp(ImClone(this), im => { var newColumns = new List <ColumnData>(); for (int iCol = 0; iCol < ListDef.Properties.Count; iCol++) { object value; values.TryGetValue(ListDef.Properties[iCol].Name, out value); newColumns.Add(Columns[iCol].AddRow(value)); } im.Columns = ImmutableList.ValueOf(newColumns); im._ids = newIds; im.RebuildIndex(); })); }
public int RowIndexOf(ListItemId listItemId) { if (_ids == null) { if (listItemId.IntValue < 0 || listItemId.IntValue >= RowCount) { return(-1); } } int index = CollectionUtil.BinarySearch(_ids, listItemId); if (index < 0) { return(-1); } return(index); }
public static ListItem ExistingRecord(ListData listData, ListItemId id) { var itemType = ListItemTypes.INSTANCE.GetListItemType(listData.ListName); return(ExistingRecord(itemType, listData, listData.RowIndexOf(id))); }
private ListItem ConstructListItem(ListItemId listItemId) { var listData = ((SkylineDataSchema)DataSchema).Document.Settings.DataSettings.FindList(ListName); return(ListItem.ExistingRecord(listData, listItemId)); }
protected override TItem ConstructItem(ListItemId key) { var listData = DataSchema.Document.Settings.DataSettings.FindList(ListName); return((TItem)ListItem.ExistingRecord(listData, key)); }