using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using WechatBakTool.Interface;
using WechatBakTool.Model;
using WechatBakTool.ViewModel;
namespace WechatBakTool.Pages
{
///
/// Workspace.xaml 的交互逻辑
///
public partial class Workspace : Page
{
public WXUserReader? UserReader { get; set; }
private WorkspaceViewModel ViewModel { get; set; } = new WorkspaceViewModel();
public Workspace()
{
InitializeComponent();
DataContext = ViewModel;
UserBakConfig? config = Main2.CurrentUserBakConfig;
if (config != null)
{
UserReader = new WXUserReader(config);
if (config.Decrypt)
{
ViewModel.Contacts = UserReader.GetWXContacts();
}
}
}
private void btn_read_Click(object sender, RoutedEventArgs e)
{
if (Main2.CurrentUserBakConfig == null)
{
MessageBox.Show("工作区配置加载失败,请检查配置文件是否正常","错误");
return;
}
}
private void list_users_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ViewModel.WXContact = list_users.SelectedItem as WXContact;
if(ViewModel.WXContact == null || UserReader == null)
{
return;
}
List? msgs = UserReader.GetWXMsgs(ViewModel.WXContact.UserName);
list_msg.ItemsSource = msgs;
}
private void txt_find_user_TextChanged(object sender, TextChangedEventArgs e)
{
if (UserReader == null)
return;
string findName = txt_find_user.Text;
if (txt_find_user.Text == "搜索...")
findName = "";
ViewModel.Contacts = UserReader.GetWXContacts(findName);
}
private void txt_find_user_GotFocus(object sender, RoutedEventArgs e)
{
if (txt_find_user.Text == "搜索...")
txt_find_user.Text = "";
Debug.WriteLine(ViewModel.SearchString);
}
private void btn_export_Click(object sender, RoutedEventArgs e)
{
if(ViewModel.WXContact == null || UserReader == null)
{
MessageBox.Show("请选择联系人", "错误");
return;
}
IExport export = new HtmlExport();
export.InitTemplate(ViewModel.WXContact);
export.SetMsg(UserReader, ViewModel.WXContact);
export.SetEnd();
//string path = UserReader.GetSavePath(wXContact);
string path = Path.Combine(Main2.CurrentUserBakConfig!.UserWorkspacePath, ViewModel.WXContact.UserName + ".html");
export.Save(path);
MessageBox.Show("导出完成");
}
private void btn_open_workspace_Click(object sender, RoutedEventArgs e)
{
Process.Start("explorer.exe ", Main2.CurrentUserBakConfig!.UserWorkspacePath);
}
private void btn_analyse_Click(object sender, RoutedEventArgs e)
{
if (UserReader == null || Main2.CurrentUserBakConfig == null)
{
MessageBox.Show("请先读取数据");
return;
}
Analyse analyse = new Analyse(Main2.CurrentUserBakConfig, UserReader);
analyse.Show();
}
}
}