public void Reset() { _onCompletedBound = false; _domainParameter = null; _rootMapParameter = null; _nodeParameter = null; _relationshipParameter = null; if (MetadataSet != null) { FacadeMetadataSet metadataSet = MetadataSet as FacadeMetadataSet; if (metadataSet != null) { metadataSet.ResetToFacade(); } } ResponseParameter = null; TransactionStatus = ServerStatus.ProcessingClient; if (_firstLink != null) { ISoapTransactionLinkExecutor executor = _firstLink as ISoapTransactionLinkExecutor; executor.TransactionFailed -= OnTransactionFailed; executor.TransactionCompleted -= OnTransactionCompleted; } if (ServiceProxy != null) { ServiceProxy.BOCCompleted -= OnSubmitBulkOperationCompleted; ServiceProxy.MACompleted -= OnAddMetadataCompleted; } }
/// <summary> /// TODO: I don't like how this is public. /// </summary> public void ProcessDelayedActions() { if (InProcessNode != null) { TransactionFramework.TransactionChain chain = new TransactionFramework.TransactionChain(); InProcessNode.DelayedActions.CreateTransactions(ref chain); foreach (IMetadataSet metadataSet in Metadata) { FacadeMetadataSet facadeMetadataSet = metadataSet as FacadeMetadataSet; if (facadeMetadataSet != null) { SoapMetadataSet soapMetadataSet = facadeMetadataSet.BaseMetadata as SoapMetadataSet; if (soapMetadataSet != null) { soapMetadataSet.ProcessDelayedActions(ref chain); } } } MapManager.ExecuteTransaction(chain); } }
DependencyCollection ISoapTransactionLinkExecutor.UpdateDependencies() { ISoapTransactionLinkExecutor executor = (ISoapTransactionLinkExecutor)this; IFacade iFacadeMetadata = Metadata as IFacade; if (iFacadeMetadata != null) { if (!iFacadeMetadata.IsConcrete) { FacadeMetadataSet facadeMetadata = iFacadeMetadata as FacadeMetadataSet; InProcess.InProcessMetadata inProcessMetadata = facadeMetadata.BaseMetadata as InProcess.InProcessMetadata; if (inProcessMetadata != null && inProcessMetadata.OriginLink != null && inProcessMetadata.OriginLink.OriginChain != OriginChain) { executor.Dependencies.AddFacade(iFacadeMetadata); } } } return(executor.Dependencies); }
public IMetadataSet GetMetadata(ISoapTransactionLink link, Guid domainId, Guid rootMapId, string name, string value, INode node, IRelationship relationship, ConnectionType connectionType) { /// Return a FacadeNode containing an InProcessMetadataSet InProcess.InProcessMetadata newMetadataSet = new InProcess.InProcessMetadata(MapManager); newMetadataSet.OriginLink = link; newMetadataSet.Id = Guid.Empty; newMetadataSet.DomainId = domainId; newMetadataSet.RootMapId = rootMapId; newMetadataSet.Name = name; newMetadataSet.Value = value; newMetadataSet.Node = node; newMetadataSet.Relationship = relationship; newMetadataSet.ConnectionType = connectionType; FacadeMetadataSet facadeMetadataSet = new FacadeMetadataSet(); facadeMetadataSet.BaseMetadata = newMetadataSet; newMetadataSet.Facade = facadeMetadataSet; InProcessMetadata[link] = facadeMetadataSet; return facadeMetadataSet; }