private async void Markdown_LinkClicked(object sender, Microsoft.Toolkit.Uwp.UI.Controls.Quarrel.LinkClickedEventArgs e) { if (e.Link[0] == '@') { if (e.Link[1] == '&') { string roleId = e.Link.Remove(0, 2); } else { string userId; if (e.Link[1] == '!') { userId = e.Link.Remove(0, 2); } else { userId = e.Link.Remove(0, 1); } var guildsService = SimpleIoc.Default.GetInstance <IGuildsService>(); BindableGuildMember member = guildsService.GetGuildMember(userId, guildsService.CurrentGuild.Model.Id); if (member != null) { Flyout flyout = new Flyout() { Content = new MemberFlyoutTemplate() { DataContext = member }, FlyoutPresenterStyle = App.Current.Resources["GenericFlyoutStyle"] as Style, }; flyout.ShowAt(sender as FrameworkElement); } } } else if (e.Link[0] == '#') { string channelId = e.Link.Remove(0, 1); var channel = SimpleIoc.Default.GetInstance <IChannelsService>().GetChannel(channelId); if (channel != null) { SimpleIoc.Default.GetInstance <MainViewModel>().CurrentChannel = channel; } } else { Uri uri; if (Uri.TryCreate(e.Link, UriKind.Absolute, out uri)) { await Launcher.LaunchUriAsync(uri); } } }
/// <summary> /// Initializes a new instance of the <see cref="UserProfilePageViewModel"/> class. /// </summary> /// <param name="user">The user to load.</param> public UserProfilePageViewModel(BindableGuildMember user) { User = user; LoadProfile(); }
/// <summary> /// Initializes a new instance of the <see cref="UserSuggestion"/> class. /// </summary> /// <param name="user">The user recommended for mentioning.</param> public UserSuggestion(BindableGuildMember user) { User = user; }