using System; using System.Collections.ObjectModel; using System.Linq; using Avalonia.Controls; using Avalonia.Interactivity; using DeskHubSharpRevised.BLL; using DeskHubSharpRevised.Models; namespace DeskHubSharpRevised { public partial class MainWindow : Window { private ObservableCollection _repoDetail; private User _user; private Request _request; public MainWindow() { InitializeComponent(); } private void btn_detail_Click(object sender, RoutedEventArgs e) { try { RepoDetail repo = _repoDetail[ListBox.SelectedIndex]; DetailWindow detail = new DetailWindow(repo); detail.Show(); } catch (IndexOutOfRangeException) { ShowErrorMessage("Please pick a repository!"); } catch (NullReferenceException) { ShowErrorMessage("Please search for a user with the Search button!"); } catch (ArgumentOutOfRangeException) { ShowErrorMessage("Please search for a user with the Search button!"); } } private void btn_exit_Click(object sender, RoutedEventArgs e) { this.Close(); Environment.Exit(0); } private void btn_about_Click(object sender, RoutedEventArgs e) { AboutWindow about = new AboutWindow(); about.Show(); } private void btn_feedback_Click(object sender, RoutedEventArgs e) { FeedbackWindow feedback = new FeedbackWindow(); feedback.Show(); } private void btn_help_Click(object sender, RoutedEventArgs e) { HelpWindow help = new HelpWindow(); help.Show(); } private async void btn_search_Click(object sender, RoutedEventArgs e) { this.cmbbox_sort = this.Find("cmbbox_sort"); SearchWindow search = new SearchWindow(); await search.ShowDialog(this); _repoDetail = RequestList.repoDetail; RepoInfo info = new RepoInfo(); var stuff = info.GetRepoInfoList(); if (stuff == null) { txtblk_username.Text = txtblk_username.Text; txtblk_url.Text = txtblk_url.Text; txtblk_bio.Text = txtblk_bio.Text; txtblk_email.Text = txtblk_email.Text; txtblk_realname.Text = txtblk_realname.Text; } else { _user = RequestList.userDetail; ListBox.Items = stuff; txtblk_username.Text = _user.login; txtblk_url.Text = _user.html_url; txtblk_bio.Text = _user.bio; txtblk_email.Text = _user.blog; txtblk_realname.Text = _user.name; txtblk_repocount.Text = $"{_user.login} has {_user.public_repos} public repositories."; _request = new Request(); cmbbox_sort.Items = _request.PerformGetSort(); } } public void ShowErrorMessage(string message) { ErrorWindow err = new ErrorWindow(); err.lbl_title = err.Find