UpdatePackageInfoWindowViewModel.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Windows;
  6. using vCloud.GeneratePackages.Entitys;
  7. using vCloud.GeneratePackages.Utilities;
  8. using Vinno.IUS.Common.Utilities;
  9. namespace vCloud.GeneratePackages.Tool.ViewModels
  10. {
  11. /// <summary>
  12. /// 所用语言
  13. /// </summary>
  14. public enum SupportLanguage
  15. {
  16. Chinese,
  17. English,
  18. Portuguese,
  19. Romanian
  20. }
  21. public class UpdatePackageInfoWindowViewModel : ViewModel
  22. {
  23. /// <summary>
  24. /// Package infos
  25. /// </summary>
  26. public IList<PackageInfoViewModel> PackageInfos { get; set; }
  27. public UpdatePackageInfoWindowViewModel()
  28. {
  29. PackageInfos = new List<PackageInfoViewModel>();
  30. var server = new PackageInfoViewModel() { PackageType = GeneratePackagePlatform.Server};
  31. server.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.Chinese });
  32. server.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.English });
  33. server.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.Portuguese });
  34. server.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.Romanian });
  35. PackageInfos.Add(server);
  36. var pc = new PackageInfoViewModel() { PackageType = GeneratePackagePlatform.PC };
  37. pc.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.Chinese });
  38. pc.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.English });
  39. pc.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.Portuguese });
  40. pc.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.Romanian });
  41. PackageInfos.Add(pc);
  42. var ad = new PackageInfoViewModel() { PackageType = GeneratePackagePlatform.Android };
  43. ad.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.Chinese });
  44. ad.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.English });
  45. ad.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.Portuguese });
  46. ad.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.Romanian });
  47. PackageInfos.Add(ad);
  48. var sonopost = new PackageInfoViewModel() { PackageType = GeneratePackagePlatform.Sonopost };
  49. sonopost.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.Chinese });
  50. sonopost.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.English });
  51. sonopost.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.Portuguese });
  52. sonopost.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.Romanian });
  53. PackageInfos.Add(sonopost);
  54. var winSonopost = new PackageInfoViewModel() { PackageType = GeneratePackagePlatform.WindowsSonopost };
  55. winSonopost.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.Chinese });
  56. winSonopost.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.English });
  57. winSonopost.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.Portuguese });
  58. winSonopost.LanguageInfos.Add(new LanguageInfoViewModel() { Language = SupportLanguage.Romanian });
  59. PackageInfos.Add(winSonopost);
  60. }
  61. public override string ToString()
  62. {
  63. var packageinfo = string.Empty;
  64. foreach (var packageInfoViewModel in PackageInfos)
  65. {
  66. if (packageInfoViewModel.IsPublic)
  67. {
  68. packageinfo += packageInfoViewModel.ToString();
  69. }
  70. }
  71. return packageinfo;
  72. }
  73. }
  74. public class PackageInfoViewModel : ViewModel
  75. {
  76. private bool _isPublic;
  77. /// <summary>
  78. /// package type
  79. /// </summary>
  80. public GeneratePackagePlatform PackageType { get; set; }
  81. /// <summary>
  82. /// Language infos
  83. /// </summary>
  84. public IList<LanguageInfoViewModel> LanguageInfos { get; }
  85. /// <summary>
  86. /// is public
  87. /// </summary>
  88. public bool IsPublic
  89. {
  90. get => _isPublic;
  91. set
  92. {
  93. if (_isPublic != value)
  94. {
  95. _isPublic = value;
  96. OnPropertyChanged(() => IsPublic);
  97. }
  98. }
  99. }
  100. public PackageInfoViewModel()
  101. {
  102. LanguageInfos = new List<LanguageInfoViewModel>();
  103. IsPublic = true;
  104. }
  105. public override string ToString()
  106. {
  107. if (LanguageInfos.Count <= 0)
  108. {
  109. return string.Empty;
  110. }
  111. var languageInfo = string.Empty;
  112. foreach (var languageInfoViewModel in LanguageInfos)
  113. {
  114. languageInfo += languageInfoViewModel.ToString() + ",";
  115. }
  116. return "[" + languageInfo.TrimEnd(',') + "]";
  117. }
  118. }
  119. public class LanguageInfoViewModel : ViewModel
  120. {
  121. private string _text;
  122. /// <summary>
  123. /// language
  124. /// </summary>
  125. public SupportLanguage Language { get; set; }
  126. /// <summary>
  127. /// Text
  128. /// </summary>
  129. public string Text
  130. {
  131. get => _text;
  132. set
  133. {
  134. if (_text != value)
  135. {
  136. _text = value;
  137. OnPropertyChanged(() => Text);
  138. }
  139. }
  140. }
  141. public override string ToString()
  142. {
  143. return "{" + $"\"Language\":\"{Language}\",\"Content\":\"{DesBuilder.Encrypt(Text)}\"" + "}";
  144. }
  145. }
  146. }