コード例 #1
0
        /// <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;
        }
コード例 #2
0
        /// <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;
        }