using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; namespace PackingPress.Common { class UpgradePackage { public PackagePlatform Platform { get; } public PackageType Type { get; } public Version Version { get; } public string Description { get; } public byte[] FileData { get; } public byte[] FileMD5 { get; } public UpgradePackage(PackagePlatform platform, PackageType type, Version version, string description, byte[] fileData, byte[] fileMd5 = null) { Platform = platform; Type = type; Version = version; FileData = fileData; if (fileMd5 != null && fileMd5.Length > 0) { FileMD5 = fileMd5; } else { if (fileData != null && fileData.Length > 0) { FileMD5 = MD5.GetHash(fileData); } } Description = description; } public override string ToString() { var fileSize = 0; string fileSizeStr; if (FileData != null) { fileSize = FileData.Length; } if (fileSize > 1048576) { fileSizeStr = $"{(double)fileSize / 1048576:F}MB"; } else if (fileSize > 1024) { fileSizeStr = $"{(double)fileSize / 1024:F}MB"; } else { fileSizeStr = $"{fileSize}B"; } return $"[{Platform} - {Type}]: {Version} - Size: {fileSizeStr}"; } } }