/// <summary> /// Initializes a new instance of the <see cref="VirtualLinkInfo"/> class. /// </summary> /// <param name="dataModel"> /// The data model. /// </param> /// <param name="infoAreaId"> /// The information area identifier. /// </param> /// <param name="targetInfoAreaId"> /// The target information area identifier. /// </param> /// <param name="linkId"> /// The link identifier. /// </param> /// <param name="moveLinks"> /// The move links. /// </param> /// <param name="intermediateInfoAreaId"> /// The intermediate information area identifier. /// </param> /// <param name="sourceLinkId"> /// The source link identifier. /// </param> /// <param name="targetLinkId"> /// The target link identifier. /// </param> public VirtualLinkInfo( DataModel dataModel, string infoAreaId, string targetInfoAreaId, int linkId, VirtualLinkType moveLinks, string intermediateInfoAreaId, int sourceLinkId, int targetLinkId) { this.InfoAreaId = infoAreaId; this.TargetInfoAreaId = targetInfoAreaId; this.IntermediateInfoAreaId = intermediateInfoAreaId; this.LinkId = linkId < 0 ? 0 : linkId; this.MoveLinks = moveLinks; this.SourceLinkId = sourceLinkId; this.TargetLinkId = targetLinkId; if (dataModel != null) { var tableInfo = dataModel.InternalGetTableInfo(intermediateInfoAreaId); if (tableInfo != null) { this.LinkToSource = tableInfo.GetLink(infoAreaId, sourceLinkId); this.LinkToTarget = tableInfo.GetLink(targetInfoAreaId, targetLinkId); } else { this.LinkToSource = this.LinkToTarget = null; } } this.IsValid = this.LinkToSource != null && this.LinkToTarget != null && this.LinkToTarget.HasColumn && this.LinkToSource.HasColumn; }
/// <summary> /// Initializes a new instance of the <see cref="VirtualLinkInfo"/> class. /// </summary> /// <param name="sourceLink"> /// The source link. /// </param> /// <param name="targetLink"> /// The target link. /// </param> /// <param name="linkId"> /// The link identifier. /// </param> /// <param name="moveLinks"> /// The move links. /// </param> public VirtualLinkInfo(LinkInfo sourceLink, LinkInfo targetLink, int linkId, VirtualLinkType moveLinks) { this.MoveLinks = moveLinks; this.LinkToSource = sourceLink; this.LinkToTarget = targetLink; this.LinkId = linkId; if (this.LinkToSource != null) { this.InfoAreaId = this.LinkToSource.TargetInfoAreaId; this.IntermediateInfoAreaId = this.LinkToSource.InfoAreaId; this.SourceLinkId = this.LinkToSource.LinkId; if (this.LinkToTarget != null && !Equals(this.IntermediateInfoAreaId, this.LinkToTarget.InfoAreaId)) { this.TargetInfoAreaId = this.LinkToTarget.TargetInfoAreaId; this.TargetLinkId = this.LinkToTarget.LinkId; } } this.IsValid = this.LinkToSource != null && this.LinkToTarget != null && this.LinkToTarget.HasColumn && this.LinkToSource.HasColumn; }