Interaction logic for PublishGistDialog.xaml
상속: System.Windows.Window
예제 #1
0
        /// <summary>
        /// This function is the callback used to execute the command when the menu item is clicked.
        /// See the constructor to see how the menu item is associated with this function using
        /// OleMenuCommandService service and MenuCommand class.
        /// </summary>
        /// <param name="sender">Event sender.</param>
        /// <param name="e">Event args.</param>
        private async void MenuItemCallback(object sender, EventArgs e)
        {
            var gistClient = new GistsApi.GistClient(Properties.APIKeys.GistClientID,
                                                     Properties.APIKeys.GistClientSecret,
                                                     "GistsForVisualStudio/1.0");

            var authDialog = new AuthDialog();

            authDialog.webBrowser.Navigate(gistClient.AuthorizeUrl);
            authDialog.ShowDialog();
            if (authDialog.DialogResult == true)
            {
                await gistClient.Authorize(authDialog.authCode);

                var viewHost = GetCurrentViewHost();
                var filename = Path.GetFileName(GetCurrentFilename(viewHost));

                var publishDialog = new PublishGistDialog()
                {
                    Filename = Path.GetFileName(filename)
                };
                if (publishDialog.ShowDialog() == true)
                {
                    string codeToPublish;
                    if (publishDialog.PublishOnlySelection)
                    {
                        codeToPublish = GetSelectedTextFromEditor(viewHost);
                    }
                    else
                    {
                        codeToPublish = GetAllTextFromEditor(viewHost);
                    }


                    var gistFiles = new[] { Tuple.Create(filename, codeToPublish) };

                    var result = await gistClient.CreateAGist(publishDialog.Description, publishDialog.IsPublic, gistFiles);

                    var successDialog = new SuccessDialog()
                    {
                        Hyperlink = new Uri(result.html_url)
                    };
                    successDialog.ShowDialog();
                }
            }
        }
예제 #2
0
파일: CreateGist.cs 프로젝트: rprouse/Gists
        /// <summary>
        /// This function is the callback used to execute the command when the menu item is clicked.
        /// See the constructor to see how the menu item is associated with this function using
        /// OleMenuCommandService service and MenuCommand class.
        /// </summary>
        /// <param name="sender">Event sender.</param>
        /// <param name="e">Event args.</param>
        private async void MenuItemCallback(object sender, EventArgs e)
        {
            var gistClient = new GistsApi.GistClient(Properties.Settings.Default.ClientID,
                                                     Properties.Settings.Default.ClientSecret,
                                                     "GistsForVisualStudio/1.0");

            var authDialog = new AuthDialog();
            authDialog.webBrowser.Navigate(gistClient.AuthorizeUrl);
            authDialog.ShowDialog();
            if (authDialog.DialogResult == true)
            {
                await gistClient.Authorize(authDialog.authCode);

                var viewHost = GetCurrentViewHost();
                var filename = Path.GetFileName(GetCurrentFilename(viewHost));

                var publishDialog = new PublishGistDialog();
                publishDialog.Filename = Path.GetFileName(filename);

                if (publishDialog.ShowDialog() == true)
                {
                    string codeToPublish;
                    if (publishDialog.PublishOnlySelection)
                    {
                        codeToPublish = GetSelectedTextFromEditor(viewHost);
                    }
                    else
                    {
                        codeToPublish = GetAllTextFromEditor(viewHost);
                    }


                    var gistFiles = new[] { Tuple.Create(filename, codeToPublish) };

                    var result = await gistClient.CreateAGist(publishDialog.Description, publishDialog.IsPublic, gistFiles);

                    var successDialog = new SuccessDialog();
                    successDialog.Hyperlink = new Uri(result.html_url);

                    successDialog.ShowDialog();
                }
            }
        }