private async Task Check(string appcastUrl, bool showDebuggingWindow = false, bool forceCheck = false) { _logger.Log(string.Format("Starting fetching remote appcast content from address: {0}", appcastUrl)); try { var data = await RemoteContentDownloader.DownloadStringContent(appcastUrl).ConfigureAwait(true); var appcast = ParseAppcast(data); OnRemoteAppcastAvailableEvent(new SingleEventArgs <RemoteAppcast>(appcast)); if (UpdateDecider.ShouldUpdate(appcast, forceCheck)) { ShowUpdateWindow(appcast); } else if (forceCheck) { ShowNoUpdatesWindow(); } } catch (Exception ex) { _logger.Log(string.Format("Error parsing remote appcast: {0}", ex.Message)); } finally { _logger.Log("Finished fetching remote appcast content"); } }