/// <summary>
        /// Occurs when provider's API credentials get reset.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="CloudStorageServiceProviderEventArgs"/> instance containing the event data.</param>
        private void CloudStorageServiceProvider_SettingsReset(object sender, CloudStorageServiceProviderEventArgs e)
        {
            throbber.State   = ThrobberState.Stopped;
            throbber.Visible = false;

            UpdateControlsVisibility();
        }
        /// <summary>
        /// Occurs when the file has been uploaded to the cloud storage service provider.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="CloudStorageServiceProviderEventArgs"/> instance containing the event data.</param>
        private void CloudStorageServiceProvider_FileUploaded(object sender, CloudStorageServiceProviderEventArgs e)
        {
            s_queryPending = false;

            throbber.State   = ThrobberState.Stopped;
            throbber.Visible = false;

            apiResponseLabel.ForeColor = e.HasError ? Color.Red : Color.Green;
            apiResponseLabel.Text      = e.HasError ? e.ErrorMessage : @"File uploaded successfully";
        }
        /// <summary>
        /// Occurs when the file has been dwloaded from the cloud storage service provider.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="CloudStorageServiceProviderEventArgs"/> instance containing the event data.</param>
        private void CloudStorageServiceProvider_FileDownloaded(object sender, CloudStorageServiceProviderEventArgs e)
        {
            s_queryPending = false;

            throbber.State   = ThrobberState.Stopped;
            throbber.Visible = false;

            if (!e.HasError)
            {
                return;
            }

            apiResponseLabel.ForeColor = Color.Red;
            apiResponseLabel.Text      = e.ErrorMessage;
        }
        /// <summary>
        /// Occurs when provider's API credentials get checked, informing the user.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="CloudStorageServiceProviderEventArgs"/> instance containing the event data.</param>
        private void CloudStorageServiceProvider_CheckCredentials(object sender, CloudStorageServiceProviderEventArgs e)
        {
            throbber.State   = ThrobberState.Stopped;
            throbber.Visible = false;

            apiResponseLabel.ForeColor = e.HasError ? Color.Red : Color.Green;
            apiResponseLabel.Text      = e.HasError
                ? e.ErrorMessage
                : CloudStorageServiceProvider.IsAuthenticated
                    ? @"Authenticated"
                    : string.Empty;

            if (!e.HasError && (Provider.AuthSteps != AuthenticationSteps.One) && m_authCodeRequested &&
                CloudStorageServiceProvider.IsAuthenticated)
            {
                m_authCodeRequested = false;
            }

            UpdateControlsVisibility();
        }
        /// <summary>
        /// Occurs when the cloud storage service provider credentials get authenticated.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        private void CloudStorageServiceProvider_SettingsReset(object sender, CloudStorageServiceProviderEventArgs e)
        {
            ResetTextAndColor();

            Enabled = Provider != null && Provider.HasCredentialsStored;
        }
        /// <summary>
        /// Occurs when the cloud storage service provider credentials get authenticated.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        private void CloudStorageServiceProvider_CredentialsChecked(object sender, CloudStorageServiceProviderEventArgs e)
        {
            ResetTextAndColor();

            Enabled = Provider != null && Provider.HasCredentialsStored && CloudStorageServiceProvider.IsAuthenticated;
        }