From c666f92e359061c0a4c133ba090832a059298782 Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Fri, 22 Sep 2017 15:33:09 -0700 Subject: new startup process UI for Windows --- windows/WinUI/OnboardProcess/CreateOrJoin.xaml.cs | 98 +++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 windows/WinUI/OnboardProcess/CreateOrJoin.xaml.cs (limited to 'windows/WinUI/OnboardProcess/CreateOrJoin.xaml.cs') 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 +{ + /// + /// Interaction logic for CreateOrJoin.xaml + /// + public partial class CreateOrJoin : UserControl, ISwitchable + { + private List networkList = new List(); + + public CreateOrJoin() + { + InitializeComponent(); + listViewDataBinding.ItemsSource = networkList; + + GetAvailableNetworks(); + } + + public void UtilizeState(object state) + { + throw new NotImplementedException(); + } + + private async void GetAvailableNetworks() + { + CentralAPI api = CentralAPI.Instance; + + List 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 + { + + } + } + } +} -- cgit v1.2.3