Esempio n. 1
0
        /// <summary>
        /// Downloads the settings file asynchronously.
        /// </summary>
        public async Task DownloadSettingsFileAsync()
        {
            if (m_queryPending)
            {
                return;
            }

            m_queryPending = true;

            EveMonClient.Trace("Initiated");

            SerializableAPIResult <CloudStorageServiceAPIFile> result = await DownloadFileAsync().ConfigureAwait(false);

            FileDownloaded?.ThreadSafeInvoke(this, new CloudStorageServiceProviderEventArgs(result.Error?.ErrorMessage));
            m_queryPending = false;

            string resultText = result.HasError ? "Failed" : "Completed";

            EveMonClient.Trace($"CloudStorageServiceProvider.DownloadSettingsFileAsync - {resultText}", printMethod: false);

            if (!result.HasError)
            {
                Dispatcher.Invoke(() => SaveSettingsFile(result.Result));
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Downloads the settings file.
        /// </summary>
        /// <returns></returns>
        public CloudStorageServiceAPIFile DownloadSettingsFile()
        {
            if (!CloudStorageServiceSettings.Default.DownloadAlways || !HasCredentialsStored)
            {
                return(null);
            }

            if (!IsAuthenticated && !CheckAPIAuthIsValid())
            {
                MessageBox.Show($"The {Name} API credentials could not be authenticated.",
                                $"{Name} API Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                return(null);
            }

            EveMonClient.Trace("Initiated");

            SerializableAPIResult <CloudStorageServiceAPIFile> result = DownloadFileAsync().Result;

            FileDownloaded?.ThreadSafeInvoke(this, new CloudStorageServiceProviderEventArgs(result.Error?.ErrorMessage));

            if (CloudStorageServiceSettings.Default.UseImmediately)
            {
                if (result.HasError)
                {
                    MessageBox.Show($"File could not be downloaded.\n\nThe error was:\n{result.Error?.ErrorMessage}",
                                    $"{Name} API Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    EveMonClient.Trace("Completed");
                    return(result.Result);
                }
            }
            else
            {
                var resultText = result.HasError ? "Failed" : "Completed";
                EveMonClient.Trace(resultText);

                if (!result.HasError)
                {
                    SaveSettingsFile(result.Result);
                }
            }

            return(null);
        }