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); }
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; } }