internal static ICollection FromApiEntities()

in src/YouTrackSharp/Issues/Link.cs [18:48]


        internal static ICollection<Link> FromApiEntities(ICollection<IssueLink> entities, string requesterIssueId)
        {
            
            var links = new List<Link>();
            
            foreach (var linkType in entities)
            {
                var both = linkType.LinkType.LocalizedSourceToTarget
                           ?? linkType.LinkType.LocalizedTargetToSource
                           ?? linkType.LinkType.SourceToTarget;
                var inward = linkType.Direction == IssueLinkDirection.BOTH
                    ? both
                    : linkType.LinkType.LocalizedTargetToSource ?? linkType.LinkType.TargetToSource;
                var outward = linkType.Direction == IssueLinkDirection.BOTH
                    ? both
                    : (linkType.LinkType.LocalizedSourceToTarget ?? linkType.LinkType.SourceToTarget);
                
                var linksPack = linkType.Issues.Select(issue => new Link()
                {
                    InwardType = inward,
                    OutwardType = outward,
                    TypeName = linkType.LinkType.Name,
                    Source = linkType.Direction == IssueLinkDirection.INWARD ? issue.IdReadable : requesterIssueId,
                    Target = linkType.Direction == IssueLinkDirection.INWARD ? requesterIssueId : issue.IdReadable
                });
                
                links.AddRange(linksPack.ToList());
            }

            return links;
        }