StarryEyes.ViewModels.Timelines.Statuses.StatusViewModel.OpenNthLink C# (CSharp) Method

OpenNthLink() public method

public OpenNthLink ( string index ) : void
index string
return void
        public void OpenNthLink(string index)
        {
            int value;
            if (!int.TryParse(index, out value)) value = 0;
            var links = Status.Entities
                            .Guard()
                            .Distinct(e => e.StartIndex) // ignore extended_entities
                            .OrderBy(e => e.StartIndex)
                            .Select(e =>
                            {
                                switch (e.EntityType)
                                {
                                    case EntityType.Media:
                                    case EntityType.Urls:
                                        return e.OriginalUrl;
                                    case EntityType.UserMentions:
                                        return TextBlockStylizer.UserNavigation + e.DisplayText;
                                    case EntityType.Hashtags:
                                        return TextBlockStylizer.HashtagNavigation + e.DisplayText;
                                    default:
                                        throw new ArgumentOutOfRangeException();
                                }
                            })
                            .ToArray();
            if (value < 0 || links.Length <= value) return;
            OpenLink(links[value]);
        }