Bend.RecordData.applyUpdate C# (CSharp) Метод

applyUpdate() публичный Метод

public applyUpdate ( RecordUpdate update ) : RecordDataUpdateResult
update RecordUpdate
Результат RecordDataUpdateResult
        public RecordDataUpdateResult applyUpdate(RecordUpdate update)
        {
            if ((state == RecordDataState.FULL) || (state == RecordDataState.DELETED)) {
                // throw new Exception("applyUpdate() called on fully populated record!");
                Debug.WriteLine("warn: applyUpdate() called on fully populated record. ignoring.");
                return RecordDataUpdateResult.FINAL;
            }
            switch (update.type) {
                case RecordUpdateTypes.DELETION_TOMBSTONE:
                    this.state = RecordDataState.DELETED;
                    return RecordDataUpdateResult.FINAL;

                case RecordUpdateTypes.FULL:
                    this.state = RecordDataState.FULL;
                    this.data = update.data;
                    return RecordDataUpdateResult.FINAL;

                case RecordUpdateTypes.NONE:
                    return RecordDataUpdateResult.SUCCESS;

                case RecordUpdateTypes.PARTIAL:
                    throw new Exception("partial update not implemented");

                default:
                    throw new Exception("unknown update type");

            }
        }

Usage Example

Пример #1
0
        public void T04_RecordTombstones()
        {
            RecordData data = new RecordData(RecordDataState.NOT_PROVIDED, new RecordKey());
            Assert.AreEqual(RecordDataState.NOT_PROVIDED, data.State, "empty rec 1");

            RecordDataUpdateResult result = data.applyUpdate(RecordUpdate.DeletionTombstone());
            Assert.AreEqual(RecordDataUpdateResult.FINAL,result, "tomb result 1");
            Assert.AreEqual(RecordDataState.DELETED, data.State, "tomb state 1");

            /* NOT ANYMORE
            bool err = false;
            try {
                data.applyUpdate(RecordUpdate.WithPayload("2"));
                data.applyUpdate(RecordUpdate.DeletionTombstone());
            } catch {
                err = true;
            }
             * Assert.AreEqual(err, true);
             */
            // data after a tombstone should be ignored
            Assert.AreEqual(RecordDataUpdateResult.FINAL, data.applyUpdate(RecordUpdate.WithPayload("1")));
            Assert.AreEqual(RecordDataState.DELETED, data.State, "still empty 1");
        }
All Usage Examples Of Bend.RecordData::applyUpdate