public static void ProcessAttachEndPoint(IBlockWeb containerWeb, IConnector connector, XmlElement endpointElement, string blockId) { string endpointKey = null; if (endpointElement.Name == "valueEndPoint") { if (!TemplateProcessor.ProcessTemplateFile(endpointElement, containerWeb, blockId, connector)) { object value = ObjectReader.ReadObject(endpointElement); endpointKey = connector.AttachEndPoint(value); } } else if (endpointElement.Name == "serviceEndPoint") { if (!TemplateProcessor.ProcessTemplateFile(endpointElement, containerWeb, blockId, connector)) { string endpointBlockId = endpointElement.GetAttribute("blockId"); string endpointService = endpointElement.GetAttribute("service"); if (!endpointElement.HasAttribute("blockId")) endpointBlockId = blockId; endpointKey = connector.AttachEndPoint(endpointBlockId, endpointService); } } else if (endpointElement.Name == "connectorEndPoint") { if (!TemplateProcessor.ProcessTemplateFile(endpointElement, containerWeb, blockId, connector)) { string endpointBlockId = endpointElement.GetAttribute("blockId"); string endPointConnectorKey = endpointElement.GetAttribute("connectorKey"); if (!endpointElement.HasAttribute("blockId")) endpointBlockId = blockId; endpointKey = connector.AttachConnectorEndPoint(endpointBlockId, endPointConnectorKey); } } else { throw new InvalidOperationException(); } //now process fixed args XmlElement fixedArgsElement = endpointElement.SelectSingleNode("fixedArgs") as XmlElement; if (fixedArgsElement != null && endpointKey != null) { List<Connector.EndPoint> fixedArgs = EndPointExtractor.ExtractArguments(fixedArgsElement, containerWeb); foreach (Connector.EndPoint endPoint in fixedArgs) { connector.AddFixedArg(endpointKey, endPoint); } } }
public void Attach(IConnector connector, IBlockWeb context) { string epKey = null; if (value != null) { epKey = connector.AttachEndPoint(value); } else if (serviceName != null) { epKey = connector.AttachEndPoint(blockId, serviceName); } else { epKey = connector.AttachConnectorEndPoint(blockId, connectorKey); } foreach (EndPointDescriptor ep in FixedArgs) { connector.AddFixedArg(epKey, ep.GetEndPoint(context)); } }
public void AttachToConnector(IConnector connector) { if (address != null) { if (addressIsConnector == false) { connector.AttachEndPoint(address.GetBlockId(), address.GetServiceName()); } else { connector.AttachConnectorEndPoint(address.GetBlockId(), address.GetConnectorKey()); } } else if (epObject != null) { connector.AttachEndPoint(epObject.Value); } else { connector.AttachEndPoint(epIdentifier.Value); } }