Example #1
0
        private async Task AddInfoAsync(Dictionary <string, ExtendedModInfo> infos, string modName)
        {
            if (!infos.TryGetValue(modName, out var info))
            {
                try
                {
                    info = await ModWebsite.GetExtendedInfoAsync(modName);

                    infos.Add(modName, info);
                }
                catch (WebException ex)
                {
                    if (ex.Status == WebExceptionStatus.ProtocolError)
                    {
                        var response = ex.Response as HttpWebResponse;
                        if ((response != null) && (response.StatusCode == HttpStatusCode.NotFound))
                        {
                            return;
                        }
                    }

                    throw;
                }
            }
        }
        private async Task DownloadDependency(ModDependencyInfo dependency, IProgress <double> progress, CancellationToken cancellationToken, string token)
        {
            var info = await ModWebsite.GetExtendedInfoAsync(dependency.Name);

            var latestRelease = info.GetLatestRelease(dependency.FactorioVersion);

            if ((dependency.Version != null) && (latestRelease.Version < dependency.Version))
            {
                MessageBox.Show(Window,
                                string.Format(App.Instance.GetLocalizedMessage("DependencyUnavailable", MessageType.Information), dependency.Name, dependency.Version),
                                App.Instance.GetLocalizedMessageTitle("DependencyUnavailable", MessageType.Information),
                                MessageBoxButton.OK, MessageBoxImage.Information);
            }
            else
            {
                await ModWebsite.DownloadReleaseAsync(latestRelease, GlobalCredentials.Instance.Username, token, progress, cancellationToken, Mods, Modpacks);
            }
        }
        private async Task <ExtendedModInfo> GetModInfo(ModExportTemplate modTemplate)
        {
            ExtendedModInfo info = null;

            try
            {
                info = await ModWebsite.GetExtendedInfoAsync(modTemplate.Name);
            }
            catch (WebException ex)
            {
                if (ex.Status != WebExceptionStatus.ProtocolError)
                {
                    throw;
                }
            }

            return(info);
        }
Example #4
0
        private async Task <ExtendedModInfo> GetModInfoAsync(Dictionary <string, ExtendedModInfo> infos, string modName)
        {
            ExtendedModInfo info;

            if (!infos.TryGetValue(modName, out info))
            {
                try
                {
                    info = await ModWebsite.GetExtendedInfoAsync(modName);
                }
                catch (WebException ex) when(ex.Status == WebExceptionStatus.ProtocolError)
                {
                    info = null;
                }

                infos.Add(modName, info);
            }

            return(info);
        }
        private async Task LoadExtendedModInfoAsync(ModInfo mod, int operationIndex)
        {
            ExtendedModInfo extendedInfo;

            try
            {
                extendedInfo = await ModWebsite.GetExtendedInfoAsync(mod);
            }
            catch (WebException)
            {
                MessageBox.Show(Window,
                                App.Instance.GetLocalizedMessage("InternetConnection", MessageType.Error),
                                App.Instance.GetLocalizedMessageTitle("InternetConnection", MessageType.Error),
                                MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            if (operationIndex == asyncFetchExtendedInfoIndex)
            {
                ExtendedInfo = extendedInfo;
            }
        }