Ejemplo n.º 1
0
 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);
     }
 }
Ejemplo n.º 2
0
 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();
 }
Ejemplo n.º 3
0
 internal void AddFlowInfo(FlowInfo flowInfo)
 {
     flowInfos.Add(flowInfo);
 }