/// <summary> /// Given a ReleaseChannel and a keyName, attempt to load the corresponding ChannelInfo objecvt /// </summary> /// <param name="releaseChannel">The ReleaseChannel being queried</param> /// <param name="channelInfo">Returns the ChannelInfo here</param> /// <param name="gitHubWrapper">An optional wrapper to the GitHub data</param> /// <param name="keyName">An optional override of the key to use when reading the ChannelInfo data</param> /// <param name="exceptionReporter">An optional IExceptionReporter if you want exception details</param> /// <returns>true if we found data</returns> public static bool TryGetChannelInfo(ReleaseChannel releaseChannel, out ChannelInfo channelInfo, IGitHubWrapper gitHubWrapper, string keyName = "default", IExceptionReporter exceptionReporter = null) { try { IGitHubWrapper wrapper = gitHubWrapper ?? new GitHubWrapper(exceptionReporter); using (Stream stream = new MemoryStream()) { wrapper.LoadChannelInfoIntoStream(releaseChannel, stream); channelInfo = GetChannelFromStream(stream, keyName); return(true); } } #pragma warning disable CA1031 // Do not catch general exception types catch (Exception e) { if (exceptionReporter != null) { exceptionReporter.ReportException(e); } } #pragma warning restore CA1031 // Do not catch general exception types // Default values channelInfo = null; return(false); }
/// <summary> /// ctor /// </summary> /// <param name="gitHubWrapper">Provides access to GitHub</param> /// <param name="exceptionReporter">Provides a way to report exceptions</param> public ProductionChannelInfoProvider(IGitHubWrapper gitHubWrapper, IExceptionReporter exceptionReporter) { _gitHubWrapper = gitHubWrapper; _exceptionReporter = exceptionReporter; }
/// <summary> /// Unit test ctor - allows dependency injection for testing /// </summary> /// <param name="wrapper">Provides GitHub support</param> /// <param name="installedVersionProvider">Where to get the installed version</param> internal AutoUpdate(IGitHubWrapper wrapper, Func <string> installedVersionProvider) { _gitHub = wrapper; _installedVersionProvider = installedVersionProvider; _initTask = Task.Run(() => InitializeWithTimer()); }