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"); } }
public MagpieService(AppInfo appInfo, IDebuggingInfoLogger debuggingInfoLogger = null) { _appInfo = appInfo; _logger = debuggingInfoLogger ?? new DebuggingWindowViewModel(); RemoteContentDownloader = new DefaultRemoteContentDownloader(); UpdateDecider = new UpdateDecider(_logger); }
public MagpieUpdater(AppInfo appInfo, IDebuggingInfoLogger debuggingInfoLogger = null, IAnalyticsLogger analyticsLogger = null) { _appInfo = appInfo; _logger = debuggingInfoLogger ?? new DebuggingWindowViewModel(); _analyticsLogger = analyticsLogger ?? new AnalyticsLogger(); RemoteContentDownloader = new DefaultRemoteContentDownloader(); UpdateDecider = new UpdateDecider(_logger); }