public void RemoveIdentityFromSequence(Sequence sequence, Identity identity, int position, DataServiceTransaction dataServiceTransaction) { if (position == -1) { return; } lock (_objLock) { IDictionary sequenceIdMap = _itemIdToSequenceIdMapHash[identity] as IDictionary; if (sequenceIdMap != null) { sequenceIdMap.Remove(sequence.Id); //Release the item if it does'n occur in any sequence if (sequenceIdMap.Count == 0) { _itemIdToItemHash.Remove(identity); _itemIdToSequenceIdMapHash.Remove(identity); } if (sequence[position].Equals(identity)) { sequence.RemoveAt(position); } else { sequence.Remove(identity); } if (dataServiceTransaction != null) { dataServiceTransaction.GenerateUpdateCollectionMessage(UpdateCollectionRange.DeleteFromCollection, _dataDestination, sequence, position, identity); } } else { _itemIdToItemHash.Remove(identity); sequence.Remove(identity); } } }
public void RemoveIdentityFromSequence(Sequence sequence, Identity identity, int position, DataServiceTransaction dataServiceTransaction) { if (position != -1) { lock (_objLock) { IDictionary dictionary = this._itemIdToSequenceIdMapHash[identity] as IDictionary; if (dictionary != null) { dictionary.Remove(sequence.Id); if (dictionary.Count == 0) { this._itemIdToItemHash.Remove(identity); this._itemIdToSequenceIdMapHash.Remove(identity); } if (sequence[position].Equals(identity)) { sequence.RemoveAt(position); } else { sequence.Remove(identity); } if (dataServiceTransaction != null) { dataServiceTransaction.GenerateUpdateCollectionMessage(1, this._dataDestination, sequence, position, identity); } } else { this._itemIdToItemHash.Remove(identity); sequence.Remove(identity); } } } }
public void RemoveIdentityFromSequence(Sequence sequence, Identity identity, int position, DataServiceTransaction dataServiceTransaction) { if( position == -1 ) return; lock(_objLock) { IDictionary sequenceIdMap = _itemIdToSequenceIdMapHash[identity] as IDictionary; if (sequenceIdMap != null) { sequenceIdMap.Remove(sequence.Id); //Release the item if it does'n occur in any sequence if (sequenceIdMap.Count == 0) { _itemIdToItemHash.Remove(identity); _itemIdToSequenceIdMapHash.Remove(identity); } if (sequence[position].Equals(identity)) sequence.RemoveAt(position); else sequence.Remove(identity); if (dataServiceTransaction != null) dataServiceTransaction.GenerateUpdateCollectionMessage(UpdateCollectionRange.DeleteFromCollection, _dataDestination, sequence, position, identity); } else { _itemIdToItemHash.Remove(identity); sequence.Remove(identity); } } }