public void Add(XtraBinding XtraBinding, object DataSourceItem, XtraBindingStoredItemState State) { object underlyingItem = XtraBinding.ItemAdapter.GetUnderlyingDataSourceItem(DataSourceItem); XtraBindingUpdateSetEntity enty = _entyties.FirstOrDefault(p => p.xtraBinding == XtraBinding); if (enty == null) { enty = new XtraBindingUpdateSetEntity(XtraBinding); _entyties.Add(enty); } XtraBindingStoredItem item = GetStoredItem(enty, underlyingItem); if (item == null) { item = new XtraBindingStoredItem(); enty.StoredItems.Add(item); } item.Update(GetFieldsValues(XtraBinding, underlyingItem), State); item.UpdateDataSourceItem(DataSourceItem); }
private IDictionary<XtraBindingStoredItem, object> GetUnderlyingObjects(XtraBindingUpdateSetEntity UpdateSetEntity, IEnumerable<object> PKS) { IEnumerable<XtraBindingStoredItem> storedItems = UpdateSetEntity.StoredItems.Where(p => PKS.Contains(p.FieldsValues[GetPkFieldName(UpdateSetEntity.xtraBinding)])); return _updateSetDataConverter.GetUnderlyingObjects(UpdateSetEntity.xtraBinding.DataSource, storedItems, false).Select((p, i) => new { p = storedItems.ElementAt(i), s = p }).ToDictionary(k => k.p, v => v.s); }
private XtraBindingStoredItem GetStoredItem(XtraBindingUpdateSetEntity UpdateSetEntity, object UnerlyingItem) { string key = _updateSetDataConverter.GetPrimaryKeyFieldName(UpdateSetEntity.xtraBinding.DataSource); return UpdateSetEntity.StoredItems.Where(p => p.FieldsValues[key].Equals(_updateSetDataConverter.GetValue(UnerlyingItem, key))).FirstOrDefault(); }