101 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System.Collections;
 | |
| using System.Diagnostics;
 | |
| using Avalonia;
 | |
| using Avalonia.Controls;
 | |
| using Avalonia.Interactivity;
 | |
| using Avalonia.Markup.Xaml;
 | |
| using DeskHubSharpRevised.BLL;
 | |
| using DeskHubSharpRevised.Models;
 | |
| 
 | |
| namespace DeskHubSharpRevised;
 | |
| 
 | |
| public partial class DetailWindow : Window
 | |
| {
 | |
|     // Private members
 | |
|     private readonly RepoDetail _repoDetail;
 | |
|     private readonly ComboBox? _cmbbox_branches_items;
 | |
|     private TextBlock? _txtblk_language_text;
 | |
|     private Label? _lbl_reponame_content;
 | |
|     private TextBlock? _txtblk_watchers_text;
 | |
|     private TextBlock? _txtblk_stargazers_text;
 | |
|     private TextBlock? _txtblk_forks_text;
 | |
|     private Request _request;
 | |
|     private Owner _owner;
 | |
|     
 | |
|     public DetailWindow()
 | |
|     {
 | |
|         InitializeComponent();
 | |
|         DataContext = this;
 | |
| #if DEBUG
 | |
|         this.AttachDevTools();
 | |
| #endif
 | |
|     }
 | |
| 
 | |
|     private void InitializeComponent()
 | |
|     {
 | |
|         AvaloniaXamlLoader.Load(this);
 | |
|     }
 | |
| 
 | |
|     public DetailWindow(RepoDetail repoDetail)
 | |
|     {
 | |
|         InitializeComponent();
 | |
| 
 | |
|         _repoDetail = repoDetail;
 | |
|         _request = new Request(_repoDetail.name);
 | |
|         _owner = new Owner();
 | |
|         _cmbbox_branches_items = this.Find<ComboBox>("cmbbox_branches");
 | |
|         _txtblk_language_text = this.Find<TextBlock>("txtblk_language");
 | |
|         _txtblk_watchers_text = this.Find<TextBlock>("txtblk_watchers");
 | |
|         _txtblk_stargazers_text = this.Find<TextBlock>("txtblk_stargazers");
 | |
|         _txtblk_forks_text = this.Find<TextBlock>("txtblk_forks");
 | |
|         _lbl_reponame_content = this.Find<Label>("lbl_reponame");
 | |
|         RepoInfo info = new RepoInfo();
 | |
| 
 | |
|         _request.PerformBranchRequest();
 | |
|         var stuff = info.GetBranchNameComboBox();
 | |
|         
 | |
|         _cmbbox_branches_items.Items = stuff;
 | |
| 
 | |
|         if (_repoDetail.language != null)
 | |
|         {
 | |
|             _txtblk_language_text.Text = $"This repo is mostly {_repoDetail.language} code.";
 | |
|         }
 | |
|         else
 | |
|         {
 | |
|             _txtblk_language_text.Text = "This repo doesn't have any code.";
 | |
|         }
 | |
| 
 | |
|         _lbl_reponame_content.Content = _repoDetail.full_name;
 | |
|         _txtblk_stargazers_text.Text = $"This repo has {_repoDetail.stargazers_count} stargazers.";
 | |
|         _txtblk_watchers_text.Text = $"This repo has {_repoDetail.watchers_count} watchers.";
 | |
|         _txtblk_forks_text.Text = $"This repo has {_repoDetail.forks_count} forks.";
 | |
|     }
 | |
| 
 | |
|     private void btn_close_Click(object sender, RoutedEventArgs e)
 | |
|     {
 | |
|         this.Close();
 | |
|     }
 | |
| 
 | |
|     private void btn_clone_Click(object sender, RoutedEventArgs e)
 | |
|     {
 | |
|         if (cmbbox_branches.SelectedItem.ToString() == "")
 | |
|         {
 | |
|             ErrorWindow err = new ErrorWindow();
 | |
|             err.txtblk_error.Text = "Please select a branch to clone.";
 | |
|             err.Show();
 | |
|         }
 | |
|         else
 | |
|         {
 | |
|             _owner = new Owner();
 | |
|             string link = "https://github.com/" + _owner.login + "/" + _repoDetail.name + "/archive/" + cmbbox_branches.SelectedItem + ".zip";
 | |
| 
 | |
|             Process.Start(link);
 | |
|         }
 | |
| 
 | |
|     }
 | |
| 
 | |
|     private void btn_page_Click(object sender, RoutedEventArgs e)
 | |
|     {
 | |
|         Process.Start($"{_repoDetail.html_url}");
 | |
|     }
 | |
| } |