using PDF_Master.Helper;
using PDF_Master.Model;
using PDF_Master.Properties;
using Prism.Commands;
using Prism.Mvvm;
using Prism.Regions;
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Forms;
using System.Windows.Threading;
namespace PDF_Master.ViewModels.HomePanel.ChatGPTAI
{
public class ChatGPTAIRewritingContentViewModel : BindableBase, INavigationAware
{
#region 参数和属性
public HomeContentViewModel homeContentViewModel = null;
private string inputText;
public string InputText
{
get { return inputText; }
set
{
SetProperty(ref inputText, value);
}
}
private string rewriteText;
public string RewriteText
{
get { return rewriteText; }
set
{
SetProperty(ref rewriteText, value);
}
}
private Visibility showTip = Visibility.Collapsed;
public Visibility ShowTip
{
get
{
return showTip;
}
set
{
SetProperty(ref showTip, value);
}
}
private string errorTipText;
public string ErrorTipText
{
get { return errorTipText; }
set
{
SetProperty(ref errorTipText, value);
}
}
private Visibility errorVisible = Visibility.Collapsed;
public Visibility ErrorVisible
{
get
{
return errorVisible;
}
set
{
SetProperty(ref errorVisible, value);
}
}
#endregion
#region 委托声明
public DelegateCommand CopyCommand { get; set; }
public DelegateCommand RewriteCommand { get; set; }
#endregion
public ChatGPTAIRewritingContentViewModel()
{
CopyCommand = new DelegateCommand(copy);
RewriteCommand = new DelegateCommand(rewrite);
}
#region 逻辑函数
///
/// 复制到剪切板
///
public void copy()
{
try
{
System.Windows.Forms.Clipboard.SetText(RewriteText);
//Copy成功显示
ShowTip=Visibility.Visible;
}
catch { }
}
///
/// 重写逻辑
///
public async void rewrite()
{
//添加付费拦截锁
if (!ServiceHelper.IAPBeforeFunction())
{
return;
}
if (Settings.Default.UserDate.subscribestatus != 1)
{
App.mainWindowViewModel.dialogs.ShowDialog(DialogNames.IAPCompareDialog);
return;
}
ErrorVisible = Visibility.Collapsed;
await Task.Run(async delegate
{
RewriteText = await ChatGTPAIHelper.Rewrite(InputText);
});
if (ChatGTPAIHelper.Code != "200")
{
//错误码文案,报错样式
ErrorTipText = ChatGTPAIHelper.Code;
ErrorVisible = Visibility.Visible;
}
}
#endregion
#region 构架行为
public void OnNavigatedTo(NavigationContext navigationContext)
{
navigationContext.Parameters.TryGetValue(ParameterNames.HomeContentViewModel, out homeContentViewModel);
}
public bool IsNavigationTarget(NavigationContext navigationContext)
{
return true;
}
public void OnNavigatedFrom(NavigationContext navigationContext)
{
}
#endregion
}
}