Beispiel #1
0
        public IMultiLink GetLinked(IMultiLink unlinkedLink)
        {
            var       id = unlinkedLink.TargetId;
            IRootLink rootLink;

            if (RootLinks.TryGetValue(id, out rootLink))
            {
                return(new EntryMultiLink(rootLink));
            }
            IEntryLink entryLink;

            if (EntryLinks.TryGetValue(id, out entryLink))
            {
                return(new EntryMultiLink(entryLink));
            }
            IGroupLink groupLink;

            if (GroupLinks.TryGetValue(id, out groupLink))
            {
                return(new GroupMultiLink(groupLink));
            }
            IProfileLink profileLink;

            if (ProfileLinks.TryGetValue(id, out profileLink))
            {
                return(new ProfileMultiLink(profileLink));
            }
            IRuleLink ruleLink;

            if (RuleLinks.TryGetValue(id, out ruleLink))
            {
                return(new RuleMultiLink(ruleLink));
            }
            throw new ArgumentException(
                      $"Link target not found. {nameof(unlinkedLink.TargetId)}='{unlinkedLink.TargetId}'",
                      nameof(unlinkedLink));
        }