public static void QueryUpdateServer (UpdateInfo[] updateInfos, UpdateLevel level, Action<UpdateResult> callback) { if (updateInfos == null || updateInfos.Length == 0) { string error = GettextCatalog.GetString ("No updatable products detected"); callback (new UpdateResult (null, level, error, null)); return; } var query = new StringBuilder ("http://go-mono.com/macupdate/update?v="); query.Append (formatVersion); foreach (var info in updateInfos) query.AppendFormat ("&{0}={1}", info.AppId, info.VersionId); if (!string.IsNullOrEmpty (Environment.GetEnvironmentVariable ("MONODEVELOP_UPDATER_TEST"))) level = UpdateLevel.Test; if (level != UpdateLevel.Stable) { query.Append ("&level="); query.Append (level.ToString ().ToLower ()); } if (Directory.Exists ("/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk")) { query.Append ("&env=iphsdk4.0"); } var request = (HttpWebRequest) WebRequest.Create (query.ToString ()); //FIXME: use IfModifiedSince //request.IfModifiedSince = somevalue; request.BeginGetResponse (delegate (IAsyncResult ar) { ReceivedResponse (request, ar, level, callback); }, null); }
public static void RunCheckDialog (UpdateInfo[] updateInfos, bool automatic) { return; // Disable updates if (updateInfos == null || updateInfos.Length == 0 || (automatic && !CheckAutomatically)) return; if (!automatic) { ShowUpdateDialog (); QueryUpdateServer (updateInfos, UpdateLevel, delegate (UpdateResult result) { ShowUpdateResult (result); }); } else { QueryUpdateServer (updateInfos, UpdateLevel, delegate (UpdateResult result) { if (result.HasError || !result.HasUpdates) return; ShowUpdateDialog (); ShowUpdateResult (result); }); } }