mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 22:11:48 +08:00
78 lines
2.6 KiB
C#
78 lines
2.6 KiB
C#
using System;
|
|
|
|
// ReSharper disable UnusedAutoPropertyAccessor.Local
|
|
|
|
namespace mRemoteNG.App.Update
|
|
{
|
|
public class UpdateInfo
|
|
{
|
|
public bool IsValid { get; private set; }
|
|
public Version Version { get; private set; }
|
|
public Uri DownloadAddress { get; private set; }
|
|
public string UpdateFilePath { get; set; }
|
|
public Uri ChangeLogAddress { get; private set; }
|
|
public Uri ImageAddress { get; private set; }
|
|
public Uri ImageLinkAddress { get; private set; }
|
|
#if !PORTABLE
|
|
public string CertificateThumbprint { get; private set; }
|
|
#endif
|
|
// ReSharper disable once MemberCanBePrivate.Global
|
|
public string FileName { get; set; }
|
|
public string Checksum { get; private set; }
|
|
|
|
public static UpdateInfo FromString(string input)
|
|
{
|
|
var newInfo = new UpdateInfo();
|
|
if (string.IsNullOrEmpty(input))
|
|
{
|
|
newInfo.IsValid = false;
|
|
}
|
|
else
|
|
{
|
|
var updateFile = new UpdateFile(input);
|
|
newInfo.Version = updateFile.GetVersion();
|
|
newInfo.DownloadAddress = updateFile.GetUri("dURL");
|
|
newInfo.ChangeLogAddress = updateFile.GetUri("clURL");
|
|
#if false
|
|
newInfo.ImageAddress = updateFile.GetUri("imgURL");
|
|
newInfo.ImageLinkAddress = updateFile.GetUri("imgURLLink");
|
|
#endif
|
|
#if !PORTABLE
|
|
newInfo.CertificateThumbprint = updateFile.GetThumbprint();
|
|
#endif
|
|
newInfo.FileName = updateFile.GetFileName();
|
|
newInfo.Checksum = updateFile.GetChecksum();
|
|
newInfo.IsValid = newInfo.CheckIfValid();
|
|
}
|
|
|
|
return newInfo;
|
|
}
|
|
|
|
public bool CheckIfValid()
|
|
{
|
|
if (string.IsNullOrEmpty(Version.ToString()))
|
|
return false;
|
|
if (string.IsNullOrEmpty(DownloadAddress.AbsoluteUri))
|
|
return false;
|
|
if (string.IsNullOrEmpty(ChangeLogAddress.AbsoluteUri))
|
|
return false;
|
|
#if false
|
|
if (string.IsNullOrEmpty(ImageAddress.AbsoluteUri))
|
|
return false;
|
|
if (string.IsNullOrEmpty(ImageLinkAddress.AbsoluteUri))
|
|
return false;
|
|
#endif
|
|
#if !PORTABLE
|
|
if (string.IsNullOrEmpty(CertificateThumbprint))
|
|
return false;
|
|
#endif
|
|
if (string.IsNullOrEmpty(FileName))
|
|
return false;
|
|
// ReSharper disable once ConvertIfStatementToReturnStatement
|
|
if (string.IsNullOrEmpty(Checksum))
|
|
return false;
|
|
|
|
return true;
|
|
}
|
|
}
|
|
} |