/// <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); } }
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); } } } }
/// <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); } } }
/// <summary> /// Add a link to another node. /// </summary> /// <param name="node"></param> internal void LinkToNode(Node node) { LinkedNodes.Add(node); }
public void ExpandNodes() { LinkedNodes.ForEach(x => x.ParentNode = this); Open = false; }
public void AddLinkedNode(Node node, int linkWeight) { Link link = new Link(node, linkWeight); LinkedNodes.Add(link); }