UpgradePackage.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Security.Cryptography;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace PackingPress.Common
  8. {
  9. class UpgradePackage
  10. {
  11. public PackagePlatform Platform { get; }
  12. public PackageType Type { get; }
  13. public Version Version { get; }
  14. public string Description { get; }
  15. public byte[] FileData { get; }
  16. public byte[] FileMD5 { get; }
  17. public UpgradePackage(PackagePlatform platform, PackageType type, Version version, string description, byte[] fileData, byte[] fileMd5 = null)
  18. {
  19. Platform = platform;
  20. Type = type;
  21. Version = version;
  22. FileData = fileData;
  23. if (fileMd5 != null && fileMd5.Length > 0)
  24. {
  25. FileMD5 = fileMd5;
  26. }
  27. else
  28. {
  29. if (fileData != null && fileData.Length > 0)
  30. {
  31. FileMD5 = MD5.GetHash(fileData);
  32. }
  33. }
  34. Description = description;
  35. }
  36. public override string ToString()
  37. {
  38. var fileSize = 0;
  39. string fileSizeStr;
  40. if (FileData != null)
  41. {
  42. fileSize = FileData.Length;
  43. }
  44. if (fileSize > 1048576)
  45. {
  46. fileSizeStr = $"{(double)fileSize / 1048576:F}MB";
  47. }
  48. else if (fileSize > 1024)
  49. {
  50. fileSizeStr = $"{(double)fileSize / 1024:F}MB";
  51. }
  52. else
  53. {
  54. fileSizeStr = $"{fileSize}B";
  55. }
  56. return $"[{Platform} - {Type}]: {Version} - Size: {fileSizeStr}";
  57. }
  58. }
  59. }