public void Remove(IMetadataSet metadataSet) { List <TransactionFramework.ISoapTransactionLink> linksToRemove = new List <TransactionFramework.ISoapTransactionLink>(); foreach (KeyValuePair <TransactionFramework.ISoapTransactionLink, FacadeMetadataSet> metadataSetPair in InProcessMetadata) { if (metadataSetPair.Value == metadataSet) { linksToRemove.Add(metadataSetPair.Key); } } foreach (TransactionFramework.ISoapTransactionLink keyToRemove in linksToRemove) { InProcessMetadata.Remove(keyToRemove); } List <Guid> idsToRemove = new List <Guid>(); foreach (KeyValuePair <Guid, IMetadataSet> metadataSetPair in Metadata) { if (metadataSetPair.Value == metadataSet) { idsToRemove.Add(metadataSetPair.Key); } } foreach (Guid keyToRemove in idsToRemove) { Metadata.Remove(keyToRemove); } }
//public IMetadataSet GetMetadata(Guid metadataId, string name, string value, INode node, IRelationship relationship, ConnectionType connectionType) //{ // Soap.SoapMetadataSet newMetadatSet = new Soap.SoapMetadataSet(MapManager); // newMetadatSet.Id = metadataId; // newMetadatSet.Name = name; // newMetadatSet.Value = value; // newMetadatSet.Node = node; // newMetadatSet.Relationship = relationship; // newMetadatSet.ConnectionType = connectionType; // Metadata[metadataId] = newMetadatSet; // return newMetadatSet; //} public void UpgradeFacade(TransactionFramework.ISoapTransactionLink link, ServerObjects.Metadata serviceMetadata) { if (!InProcessMetadata.ContainsKey(link)) { return; } FacadeMetadataSet facadeMetadataSet = InProcessMetadata[link]; InProcess.InProcessMetadata inProcessMetadata = facadeMetadataSet.BaseMetadata as InProcess.InProcessMetadata; if (inProcessMetadata == null) { return; } Soap.SoapMetadataSet soapMetadataSet = new Soap.SoapMetadataSet(inProcessMetadata, serviceMetadata); IMetadataSetManager soapMetadataSetManager = soapMetadataSet as IMetadataSetManager; IMetadataSetManager inProcessMetadataSetManager = inProcessMetadata as IMetadataSetManager; if (soapMetadataSetManager != null && inProcessMetadataSetManager != null) { soapMetadataSetManager.Container = inProcessMetadataSetManager.Container; } facadeMetadataSet.BaseMetadata = soapMetadataSet; Metadata[soapMetadataSet.Id] = soapMetadataSet; InProcessMetadata.Remove(link); }