mirror of
https://github.com/ZeroTier/ZeroTierOne
synced 2025-08-14 02:27:38 -07:00
new startup process UI for Windows
This commit is contained in:
parent
eb42ef68ee
commit
c666f92e35
29 changed files with 1443 additions and 14 deletions
98
windows/WinUI/OnboardProcess/CreateOrJoin.xaml.cs
Normal file
98
windows/WinUI/OnboardProcess/CreateOrJoin.xaml.cs
Normal file
|
@ -0,0 +1,98 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace WinUI.OnboardProcess
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for CreateOrJoin.xaml
|
||||
/// </summary>
|
||||
public partial class CreateOrJoin : UserControl, ISwitchable
|
||||
{
|
||||
private List<CentralNetwork> networkList = new List<CentralNetwork>();
|
||||
|
||||
public CreateOrJoin()
|
||||
{
|
||||
InitializeComponent();
|
||||
listViewDataBinding.ItemsSource = networkList;
|
||||
|
||||
GetAvailableNetworks();
|
||||
}
|
||||
|
||||
public void UtilizeState(object state)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
private async void GetAvailableNetworks()
|
||||
{
|
||||
CentralAPI api = CentralAPI.Instance;
|
||||
|
||||
List<CentralNetwork> networks = await api.GetNetworkList();
|
||||
|
||||
foreach (CentralNetwork n in networks)
|
||||
{
|
||||
networkList.Add(n);
|
||||
}
|
||||
|
||||
listViewDataBinding.Items.Refresh();
|
||||
}
|
||||
|
||||
public void OnJoinButtonClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Button button = sender as Button;
|
||||
string networkId = button.Tag as string;
|
||||
|
||||
APIHandler handler = APIHandler.Instance;
|
||||
|
||||
handler.JoinNetwork(this.Dispatcher, networkId);
|
||||
|
||||
AuthorizeNetworkMember(networkId);
|
||||
}
|
||||
|
||||
public void OnCreateButtonClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
CreateNewNetwork();
|
||||
}
|
||||
|
||||
private async void CreateNewNetwork()
|
||||
{
|
||||
CentralAPI api = CentralAPI.Instance;
|
||||
|
||||
CentralNetwork newNetwork = await api.CreateNewNetwork();
|
||||
|
||||
APIHandler handler = APIHandler.Instance;
|
||||
|
||||
handler.JoinNetwork(this.Dispatcher, newNetwork.Id);
|
||||
|
||||
AuthorizeNetworkMember(newNetwork.Id);
|
||||
}
|
||||
|
||||
private async void AuthorizeNetworkMember(string networkId)
|
||||
{
|
||||
string nodeId = APIHandler.Instance.NodeAddress();
|
||||
|
||||
bool authorized = await CentralAPI.Instance.AuthorizeNode(nodeId, networkId);
|
||||
|
||||
if (authorized)
|
||||
{
|
||||
Switcher.Switch(new Finished());
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue