示例#1
0
        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            Debug.Assert(client != null);
            var button = (Button)e.OriginalSource;
            var tag    = button.Tag as string;

            button.IsEnabled = false;

            if (tag == "go")
            {
                var settings = client.Settings;
                var result   = await Op.TryAsync(Op.UsingAsync(new StreamWriter(settingsPath, false, Encoding.UTF8), settings.SaveAsync));

                if (result.IsError)
                {
                    MessageBox.Show(result.UnwrapError().Message, "Error while saving settings", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                await client.StartAsync();

                App.CurrentClient = client;
                var entrance = new Entrance();
                entrance.Show();
                Close();
            }
            else if (tag == "image")
            {
                var dialog = new Microsoft.Win32.OpenFileDialog()
                {
                    Filter = imageFilter
                };
                if (dialog.ShowDialog(this) == true)
                {
                    await Op.TryAsync(() => client.SetProfileImageAsync(dialog.FileName));
                }
            }

            button.IsEnabled = true;
        }