Example #1
0
    public bool GetLatest(ref Release release)
    {
      string response = (new System.IO.StreamReader(new System.IO.Compression.GZipStream(request.GetResponse().GetResponseStream(), System.IO.Compression.CompressionMode.Decompress))).ReadToEnd();
      List<object> releases = (List<object>)Json.Deserialize(response);
      Dictionary<string, object> latestRelease = (Dictionary<string, object>)releases[0];
      string tag = latestRelease["tag_name"].ToString();
      string strVersion = tag.ToLower();
      if (strVersion[0] == 'v')
      {
        strVersion = strVersion.Substring(1, strVersion.Length - 1);
      }
      Version version = null;
      if (Version.TryParse(strVersion, out version))
      {
        release.Name = latestRelease["name"].ToString();
        release.Notes = latestRelease["body"].ToString();
        release.Version = version;

        List<object> assets = (List<object>)latestRelease["assets"];
        foreach (Dictionary<string, object> asset in assets)
        {
          string name = asset["name"].ToString();
          string contentType = asset["content_type"].ToString();
          Uri url = new Uri(String.Format("https://github.com/{0}/releases/download/{1}/{2}", repo, tag, name));

          release.Files.Add(new Release.File(url, name, contentType, IsUpdate(contentType)));
        }

        return true;
      }
      return false;
    }
Example #2
0
 public static Release GetLatest(IReleaseProvider provider)
 {
   Release release = new Release(); 
   
   provider.GetLatest(ref release);
   
   return release;
 }
Example #3
0
 void DownloadUpdate(Release.File updateFile)
 {
   label1.Text = String.Format("Downloading: {0}", updateFile.FileName);
   downloader.DownloadFileAsync(updateFile.URL, updateLocation);
 }