Example #1
0
        private void SetLinkTargetValues <TInclude>(
            TLinkedSource linkedSource,
            Func <TLink, TInclude> getInclude,
            Func <TLink, TInclude, int, TAbstractLinkTarget> getLinkTargetValue)
        {
            var links = GetLinks(linkedSource);

            _linkTarget.LazyInit(linkedSource, links.Count);

            for (var linkIndex = 0; linkIndex < links.Count; linkIndex++)
            {
                var link = links[linkIndex];
                if (link == null)
                {
                    continue;
                }

                var include = getInclude(link);
                if (include == null)
                {
                    continue;
                }

                _linkTarget.SetLinkTargetValue(
                    linkedSource,
                    getLinkTargetValue(link, include, linkIndex),
                    linkIndex
                    );
            }
        }
Example #2
0
        private void SetLinkTargetValue(TLinkedSource linkedSource, int linkIndex, Func <int, TAbstractLinkTarget> getLinkTargetValueForIndex)
        {
            if (HasLinkTargetValue(linkedSource, linkIndex))
            {
                return;
            }

            var value = getLinkTargetValueForIndex(linkIndex);

            if ((object)value == null)
            {
                return;
            }

            _linkTarget.SetLinkTargetValue(
                linkedSource,
                value,
                linkIndex
                );
        }