コード例 #1
0
        void OnSelectProviderCompleted(Object stepControl)
        {
            // get reference to panel
            WeblogConfigurationWizardPanelSelectProvider panelSelectProvider = stepControl as WeblogConfigurationWizardPanelSelectProvider;

            // record the provider and blog info
            IBlogProviderDescription provider = panelSelectProvider.SelectedBlogProvider;

            _temporarySettings.SetProvider(provider.Id, provider.Name, provider.PostApiUrl, provider.ClientType);
            _temporarySettings.HostBlogId = String.Empty;
            if (panelSelectProvider.TargetBlog != null)
            {
                _temporarySettings.SetBlogInfo(panelSelectProvider.TargetBlog);
            }
            _temporarySettings.HostBlogs = panelSelectProvider.UsersBlogs;

            // If we don't yet have a HostBlogId then the user needs to choose from
            // among available weblogs
            if (_temporarySettings.HostBlogId == String.Empty)
            {
                PerformSelectBlogSubStep();
            }
            else
            {
                // if we have not downloaded an editing template yet for this
                // weblog then execute this now
                PerformSettingsAutoDetectionSubStepIfNecessary();
            }
        }
        public override bool ValidatePanel()
        {
            // validate we have select a provider
            if (comboBoxSelectProvider.SelectedItem == BlogProviderDescriptionProxy.SelectProvider)
            {
                DisplayMessage.Show(MessageId.RequiredFieldOmitted, FindForm(), Res.Get(StringId.CWSelectProviderWeblogProvider));
                comboBoxSelectProvider.Focus();
                return(false);
            }
            // validate that we have a post api url
            else if (textBoxServerApiUrl.Text.Trim() == String.Empty)
            {
                DisplayMessage.Show(MessageId.RequiredFieldOmitted, FindForm(), Res.Get(StringId.CWSelectProviderApiUrl));
                textBoxServerApiUrl.Focus();
                return(false);
            }
            else if (!ValidateNoParameters(textBoxServerApiUrl))
            {
                return(false);
            }
            else
            {
                using (new WaitCursor())
                {
                    IBlogProviderDescription provider            = SelectedBlogProvider;
                    BlogAccountDetector      blogAccountDetector = new BlogAccountDetector(
                        provider.ClientType, provider.PostApiUrl, new BlogCredentialsAccessor(_accountId, _credentials));

                    if (blogAccountDetector.ValidateService())
                    {
                        BlogInfo blogInfo = blogAccountDetector.DetectAccount(_homepageUrl, null);
                        if (blogInfo != null)
                        {
                            _targetBlog = blogInfo;
                        }
                        _usersBlogs = blogAccountDetector.UsersBlogs;
                        return(true);
                    }
                    else
                    {
                        if (blogAccountDetector.ErrorMessageType != MessageId.None)
                        {
                            DisplayMessage.Show(blogAccountDetector.ErrorMessageType, FindForm(), blogAccountDetector.ErrorMessageParams);
                        }
                        textBoxServerApiUrl.Focus();
                        return(false);
                    }
                }
            }
        }
        public void ShowPanel(string defaultServiceName, string homepageUrl, string accountId, IBlogCredentials credentials)
        {
            // save reference to settings
            _homepageUrl = homepageUrl;
            _accountId   = accountId;
            _credentials = credentials;

            // find provider and select it (add it to the combo if necessary)
            IBlogProviderDescription provider = BlogProviderManager.FindProviderByName(defaultServiceName);

            if (provider != null)
            {
                BlogProviderDescriptionProxy providerProxy = new BlogProviderDescriptionProxy(provider);

                if (!comboBoxSelectProvider.Items.Contains(providerProxy))
                {
                    comboBoxSelectProvider.Items.Add(providerProxy);
                }

                comboBoxSelectProvider.SelectedItem = providerProxy;
            }
            else
            {
                // add the special 'select provider' entry and select it
                if (!comboBoxSelectProvider.Items.Contains(BlogProviderDescriptionProxy.SelectProvider))
                {
                    comboBoxSelectProvider.Items.Add(BlogProviderDescriptionProxy.SelectProvider);
                }

                comboBoxSelectProvider.SelectedItem = BlogProviderDescriptionProxy.SelectProvider;
            }

            // reset results
            _targetBlog = null;
            _usersBlogs = new BlogInfo[] { };
        }
 public BlogProviderDescriptionProxy(IBlogProviderDescription provider, string postApiUrl)
 {
     _provider = provider;
     _postApiUrl = postApiUrl;
 }
 public BlogProviderDescriptionProxy(IBlogProviderDescription provider)
     : this(provider, null)
 {
 }
 public BlogProviderDescriptionProxy(IBlogProviderDescription provider, string postApiUrl)
 {
     _provider   = provider;
     _postApiUrl = postApiUrl;
 }
 public BlogProviderDescriptionProxy(IBlogProviderDescription provider)
     : this(provider, null)
 {
 }