2
0

Main2.xaml.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. using Newtonsoft.Json;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Collections.ObjectModel;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows;
  10. using System.Windows.Controls;
  11. using System.Windows.Data;
  12. using System.Windows.Documents;
  13. using System.Windows.Input;
  14. using System.Windows.Media;
  15. using System.Windows.Media.Imaging;
  16. using WechatBakTool.Model;
  17. namespace WechatBakTool
  18. {
  19. /// <summary>
  20. /// Main2.xaml 的交互逻辑
  21. /// </summary>
  22. public partial class Main2 : Window
  23. {
  24. public static UserBakConfig? CurrentUserBakConfig;
  25. private ObservableCollection<UserBakConfig> userBakConfigs = new ObservableCollection<UserBakConfig>();
  26. public Main2()
  27. {
  28. InitializeComponent();
  29. // 获取文件版本
  30. lab_version.Content += $" {Application.ResourceAssembly.GetName().Version}";
  31. //加载工作区
  32. LoadWorkspace();
  33. }
  34. private void img_btn_close_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
  35. {
  36. Application.Current.Shutdown();
  37. }
  38. public void LoadWorkspace()
  39. {
  40. userBakConfigs.Clear();
  41. // 根目录worksapce读工作区
  42. string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "workspace");
  43. if (Directory.Exists(path))
  44. {
  45. string[] files = Directory.GetFiles(path);
  46. //目录内json文件为各工作区配置文件
  47. foreach (string file in files)
  48. {
  49. string type = file.Substring(file.Length - 5, 5);
  50. if (type == ".json")
  51. {
  52. string jsonString = File.ReadAllText(file);
  53. UserBakConfig? userBakConfig = null;
  54. try
  55. {
  56. userBakConfig = JsonConvert.DeserializeObject<UserBakConfig>(jsonString);
  57. }
  58. catch
  59. {
  60. MessageBox.Show("读取到异常工作区文件,请确认备份数据是否正常\r\n文件路径:" + file, "错误");
  61. }
  62. if (userBakConfig != null)
  63. {
  64. userBakConfigs.Add(userBakConfig);
  65. }
  66. }
  67. }
  68. }
  69. list_workspace.ItemsSource = userBakConfigs;
  70. }
  71. private void list_workspace_SelectionChanged(object sender, SelectionChangedEventArgs e)
  72. {
  73. UserBakConfig? config = list_workspace.SelectedItem as UserBakConfig;
  74. if(config == null)
  75. {
  76. MainFrame.Navigate(new Uri("pack://application:,,,/Pages/Welcome.xaml?datatime=" + DateTime.Now.Ticks));
  77. return;
  78. }
  79. CurrentUserBakConfig = config;
  80. if (!config.Decrypt)
  81. {
  82. MessageBox.Show("请先到创建工作区进行解密");
  83. MainFrame.Navigate(new Uri("pack://application:,,,/Pages/CreateWork.xaml?datatime=" + DateTime.Now.Ticks));
  84. return;
  85. }
  86. MainFrame.Navigate(new Uri("pack://application:,,,/Pages/Workspace.xaml?datatime=" + DateTime.Now.Ticks));
  87. }
  88. private void new_workspace_fill_MouseDown(object sender, MouseButtonEventArgs e)
  89. {
  90. list_workspace.SelectedItem = null;
  91. MainFrame.Navigate(new Uri("pack://application:,,,/Pages/CreateWork.xaml?datatime=" + DateTime.Now.Ticks));
  92. }
  93. private void img_btn_min_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
  94. {
  95. WindowState = WindowState.Minimized;
  96. }
  97. private void Grid_MouseDown(object sender, MouseButtonEventArgs e)
  98. {
  99. if (e.LeftButton == MouseButtonState.Pressed)
  100. {
  101. DragMove();
  102. }
  103. }
  104. private void MenuItem_Click(object sender, RoutedEventArgs e)
  105. {
  106. MainFrame.Navigate(new Uri("pack://application:,,,/Pages/Workspace.xaml?datatime=" + DateTime.Now.Ticks));
  107. }
  108. private void MenuItem_Click_1(object sender, RoutedEventArgs e)
  109. {
  110. MainFrame.Navigate(new Uri("pack://application:,,,/Pages/Manager.xaml?datatime=" + DateTime.Now.Ticks));
  111. }
  112. }
  113. }