internal void Connect(FlowSourceObjectBase src, FlowSourceObjectBase dest, FlowInfo flowInfo) { try { string actualSrcName = flowInfo.SrcName; string actualDestName = flowInfo.DestName; if (src.outProperty.ContainsKey(flowInfo.SrcName) || src.replacedOutPropertyNames.TryGetValue(flowInfo.SrcName, out actualSrcName)) { //property var flowObject = new FlowObject { Source = src, Dest = dest, SourcePropertyName = actualSrcName, SourceType = src.outProperty[actualSrcName].MemberInfo.PropertyType, DestPropertyName = flowInfo.DestName }; dest.ConnectProperty(flowObject, out actualDestName); flowObject.DestPropertyName = actualDestName; flowObject.DestType = dest.inProperty[actualDestName].MemberInfo.PropertyType; } else { //event ConnectMethod(flowInfo.SrcName, dest, flowInfo.DestName, out actualSrcName, out actualDestName); } src.outIsConnected[actualSrcName] = true; dest.inIsConnected[actualDestName] = true; } catch (Exception e) { throw new ConnectErrorException(e, src.Name, dest.Name, flowInfo.SrcName, flowInfo.DestName); } }
private void ReadFlows(XmlReader reader, FlowSourceManager manager) { while (reader.Read()) { switch (reader.Name) { case "Flow": int srcID = int.Parse(reader.GetAttribute("SrcID"), CultureInfo.InvariantCulture), destID = int.Parse(reader.GetAttribute("DestID"), CultureInfo.InvariantCulture); var flowInfo = new FlowInfo { SrcID = srcID, DestID = destID, SrcName = reader.GetAttribute("SrcName"), DestName = reader.GetAttribute("DestName") }; manager.AddFlowInfo(flowInfo); break; } } reader.Close(); }
internal void AddFlowInfo(FlowInfo flowInfo) { flowInfos.Add(flowInfo); }