diff options
| author | Grant Limberg <grant.limberg@zerotier.com> | 2017-09-22 15:33:09 -0700 |
|---|---|---|
| committer | Grant Limberg <grant.limberg@zerotier.com> | 2017-09-22 15:33:09 -0700 |
| commit | c666f92e359061c0a4c133ba090832a059298782 (patch) | |
| tree | 43ab48c8673781f2437dbf326509b1f37e827c4e /windows/WinUI/OnboardProcess/CreateOrJoin.xaml.cs | |
| parent | eb42ef68eeb7a19a9b841cd9f3fe67ffb999c827 (diff) | |
| download | infinitytier-c666f92e359061c0a4c133ba090832a059298782.tar.gz infinitytier-c666f92e359061c0a4c133ba090832a059298782.zip | |
new startup process UI for Windows
Diffstat (limited to 'windows/WinUI/OnboardProcess/CreateOrJoin.xaml.cs')
| -rw-r--r-- | windows/WinUI/OnboardProcess/CreateOrJoin.xaml.cs | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/windows/WinUI/OnboardProcess/CreateOrJoin.xaml.cs b/windows/WinUI/OnboardProcess/CreateOrJoin.xaml.cs new file mode 100644 index 00000000..91330540 --- /dev/null +++ b/windows/WinUI/OnboardProcess/CreateOrJoin.xaml.cs @@ -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 + { + + } + } + } +} |
