/// <summary>
        /// Returns true if ModelFlowChartEdge instances are equal
        /// </summary>
        /// <param name="other">Instance of ModelFlowChartEdge to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(ModelFlowChartEdge other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     Id == other.Id ||
                     Id != null &&
                     Id.Equals(other.Id)
                     ) &&
                 (
                     FixedConfig == other.FixedConfig ||
                     FixedConfig != null &&
                     FixedConfig.Equals(other.FixedConfig)
                 ) &&
                 (
                     LinkedNodes == other.LinkedNodes ||
                     LinkedNodes != null &&
                     LinkedNodes.SequenceEqual(other.LinkedNodes)
                 ) &&
                 (
                     Scripts == other.Scripts ||
                     Scripts != null &&
                     Scripts.Equals(other.Scripts)
                 ));
        }
 /// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (Id != null)
         {
             hashCode = hashCode * 59 + Id.GetHashCode();
         }
         if (FixedConfig != null)
         {
             hashCode = hashCode * 59 + FixedConfig.GetHashCode();
         }
         if (LinkedNodes != null)
         {
             hashCode = hashCode * 59 + LinkedNodes.GetHashCode();
         }
         if (Scripts != null)
         {
             hashCode = hashCode * 59 + Scripts.GetHashCode();
         }
         return(hashCode);
     }
 }
Esempio n. 3
0
 public void LinkTo(params Node[] nodes)
 {
     foreach (var node in nodes)
     {
         if (node != null && node != this)
         {
             Open = true;
             if (!LinkedNodes.Any(x => x == node))
             {
                 LinkedNodes.Add(node);
             }
         }
     }
 }
Esempio n. 4
0
 /// <summary>
 /// Add a link to the node
 /// </summary>
 public void AddLink(GraphLink link)
 {
     // Add the link
     if (!ConnectedLinks.Contains(link))
     {
         ConnectedLinks.Add(link);
     }
     // Add the linked node
     if (link.ConnectedNodes.Item1 != this)
     {
         if (!LinkedNodes.Contains(link.ConnectedNodes.Item1))
         {
             LinkedNodes.Add(link.ConnectedNodes.Item1);
         }
     }
     else
     {
         if (!LinkedNodes.Contains(link.ConnectedNodes.Item2))
         {
             LinkedNodes.Add(link.ConnectedNodes.Item2);
         }
     }
 }
Esempio n. 5
0
 /// <summary>
 /// Add a link to another node.
 /// </summary>
 /// <param name="node"></param>
 internal void LinkToNode(Node node)
 {
     LinkedNodes.Add(node);
 }
Esempio n. 6
0
 public void ExpandNodes()
 {
     LinkedNodes.ForEach(x => x.ParentNode = this);
     Open = false;
 }
Esempio n. 7
0
        public void AddLinkedNode(Node node, int linkWeight)
        {
            Link link = new Link(node, linkWeight);

            LinkedNodes.Add(link);
        }