public virtual bool TryLoad(IAnchorDataProvider dataProvider, StoreObjectId id, Action <IAnchorStoreObject> streamAction) { AnchorUtil.ThrowOnNullArgument(dataProvider, "dataProvider"); AnchorUtil.ThrowOnNullArgument(id, "id"); bool success = true; AnchorUtil.RunTimedOperation(dataProvider.AnchorContext, delegate() { using (IAnchorStoreObject anchorStoreObject = this.FindStoreObject(dataProvider, id, this.PropertyDefinitions)) { if (anchorStoreObject.GetValueOrDefault <string>(MigrationBatchMessageSchema.MigrationPersistableDictionary, null) == null) { success = false; } else { anchorStoreObject.Load(this.PropertyDefinitions); if (!this.ReadFromMessageItem(anchorStoreObject)) { success = false; } else { if (streamAction != null) { streamAction(anchorStoreObject); } this.LoadLinkedStoredObjects(anchorStoreObject, dataProvider); } } } }, this); return(success); }