ChatGPTAIRewritingContentViewModel.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. using PDF_Master.Helper;
  2. using PDF_Master.Model;
  3. using PDF_Master.Properties;
  4. using Prism.Commands;
  5. using Prism.Mvvm;
  6. using Prism.Regions;
  7. using Prism.Services.Dialogs;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. using System.Threading.Tasks;
  12. using System.Windows;
  13. using System.Windows.Forms;
  14. using System.Windows.Threading;
  15. namespace PDF_Master.ViewModels.HomePanel.ChatGPTAI
  16. {
  17. public class ChatGPTAIRewritingContentViewModel : BindableBase, INavigationAware
  18. {
  19. #region 参数和属性
  20. public HomeContentViewModel homeContentViewModel = null;
  21. private string inputText;
  22. public string InputText
  23. {
  24. get { return inputText; }
  25. set
  26. {
  27. SetProperty(ref inputText, value);
  28. }
  29. }
  30. private string rewriteText;
  31. public string RewriteText
  32. {
  33. get { return rewriteText; }
  34. set
  35. {
  36. SetProperty(ref rewriteText, value);
  37. }
  38. }
  39. private Visibility showTip = Visibility.Collapsed;
  40. public Visibility ShowTip
  41. {
  42. get
  43. {
  44. return showTip;
  45. }
  46. set
  47. {
  48. SetProperty(ref showTip, value);
  49. }
  50. }
  51. private string errorTipText;
  52. public string ErrorTipText
  53. {
  54. get { return errorTipText; }
  55. set
  56. {
  57. SetProperty(ref errorTipText, value);
  58. }
  59. }
  60. private Visibility errorVisible = Visibility.Collapsed;
  61. public Visibility ErrorVisible
  62. {
  63. get
  64. {
  65. return errorVisible;
  66. }
  67. set
  68. {
  69. SetProperty(ref errorVisible, value);
  70. }
  71. }
  72. #endregion
  73. #region 委托声明
  74. public DelegateCommand CopyCommand { get; set; }
  75. public DelegateCommand RewriteCommand { get; set; }
  76. #endregion
  77. public ChatGPTAIRewritingContentViewModel()
  78. {
  79. CopyCommand = new DelegateCommand(copy);
  80. RewriteCommand = new DelegateCommand(rewrite);
  81. }
  82. #region 逻辑函数
  83. /// <summary>
  84. /// 复制到剪切板
  85. /// </summary>
  86. public void copy()
  87. {
  88. try
  89. {
  90. System.Windows.Forms.Clipboard.SetText(RewriteText);
  91. //Copy成功显示
  92. ShowTip=Visibility.Visible;
  93. }
  94. catch { }
  95. }
  96. /// <summary>
  97. /// 重写逻辑
  98. /// </summary>
  99. public async void rewrite()
  100. {
  101. //添加付费拦截锁
  102. if (!ServiceHelper.IAPBeforeFunction())
  103. {
  104. return;
  105. }
  106. if (Settings.Default.UserDate.subscribestatus != 1)
  107. {
  108. App.mainWindowViewModel.dialogs.ShowDialog(DialogNames.IAPCompareDialog);
  109. return;
  110. }
  111. ErrorVisible = Visibility.Collapsed;
  112. await Task.Run(async delegate
  113. {
  114. RewriteText = await ChatGTPAIHelper.Rewrite(InputText);
  115. });
  116. if (ChatGTPAIHelper.Code != "200")
  117. {
  118. //错误码文案,报错样式
  119. ErrorTipText = ChatGTPAIHelper.Code;
  120. ErrorVisible = Visibility.Visible;
  121. }
  122. }
  123. #endregion
  124. #region 构架行为
  125. public void OnNavigatedTo(NavigationContext navigationContext)
  126. {
  127. navigationContext.Parameters.TryGetValue<HomeContentViewModel>(ParameterNames.HomeContentViewModel, out homeContentViewModel);
  128. }
  129. public bool IsNavigationTarget(NavigationContext navigationContext)
  130. {
  131. return true;
  132. }
  133. public void OnNavigatedFrom(NavigationContext navigationContext)
  134. {
  135. }
  136. #endregion
  137. }
  138. }