private static bool HandleEndEnlist(IAsyncResult result)
            {
                PersistenceContext.AssociateKeysAsyncResult asyncState = (PersistenceContext.AssociateKeysAsyncResult)result.AsyncState;
                bool flag = false;

                if (!asyncState.persistenceContext.directory.TryAddAssociations(asyncState.persistenceContext, asyncState.keysToAssociate, asyncState.persistenceContext.keysToAssociate, asyncState.applicationKeys ? asyncState.persistenceContext.keysToDisassociate : null))
                {
                    lock (asyncState.persistenceContext.ThisLock)
                    {
                        asyncState.persistenceContext.ThrowIfDisposedOrNotOpen();
                    }
                    throw Fx.AssertAndThrow("Should only fail to add keys in a race with abort.");
                }
                if (asyncState.persistenceContext.directory.ConsistencyScope == DurableConsistencyScope.Global)
                {
                    if ((asyncState.persistenceContext.keysToAssociate.Count == 0) && ((asyncState.persistenceContext.keysToDisassociate.Count == 0) || !asyncState.applicationKeys))
                    {
                        return(asyncState.AfterUpdate());
                    }
                    if (asyncState.persistenceContext.store == null)
                    {
                        return(flag);
                    }
                    SaveWorkflowCommand command = new SaveWorkflowCommand();
                    foreach (InstanceKey key in asyncState.persistenceContext.keysToAssociate)
                    {
                        command.InstanceKeysToAssociate.Add(key.Value, key.Metadata);
                    }
                    if (asyncState.applicationKeys)
                    {
                        foreach (InstanceKey key2 in asyncState.persistenceContext.keysToDisassociate)
                        {
                            command.InstanceKeysToFree.Add(key2.Value);
                        }
                    }
                    IAsyncResult result3 = null;
                    using (asyncState.PrepareTransactionalCall(asyncState.transaction))
                    {
                        result3 = asyncState.persistenceContext.store.BeginExecute(asyncState.persistenceContext.handle, command, asyncState.timeoutHelper.RemainingTime(), asyncState.PrepareAsyncCompletion(handleEndExecute), asyncState);
                    }
                    return(asyncState.SyncContinue(result3));
                }
                return(asyncState.AfterUpdate());
            }
 private static bool HandleEndExecute(IAsyncResult result)
 {
     PersistenceContext.AssociateKeysAsyncResult asyncState = (PersistenceContext.AssociateKeysAsyncResult)result.AsyncState;
     asyncState.persistenceContext.store.EndExecute(result);
     return(asyncState.AfterUpdate());
 }